<?xml version="1.0" encoding="utf-8"?>
<XDFFORMAT version="1.60">
  <XDFHEADER>
    <flags>0x1</flags>
    <deftitle>P12 Suite - Hummer H3 3.5L P12 (OS 12627884) - RELEASE</deftitle>
    <description>OS ID 12627884 ONLY - addresses do not transfer between P12 operating systems. Big-endian. Table axes on this controller are COMPUTED by the code, so axis labels here are fixed values, not bin data. NO CHECKSUM is defined on purpose: TunerPro cannot express the P12 dual CRC16/sum scheme - after saving run &#x27;python h3suite/run.py p12 repair &lt;bin&gt;&#x27; (or UniversalPatcher) before any flash. Community release: every item is established on all six fields and its function is backed by code or live evidence (ledger ids in each description). Most items are code-validated only; each description says whether it was also checked on the vehicle. Edit in small steps and log. Same-OS calibration edits only - never change the OS ID.</description>
    <BASEOFFSET offset="0" subtract="0" />
    <DEFAULTS datasizeinbits="16" sigdigits="2" outputtype="1" signed="0" lsbfirst="0" float="0" />
    <REGION type="0xFFFFFFFF" startaddress="0x0" size="0x100000" regionflags="0x0" name="Bin" desc="P12 image" />
    <CATEGORY index="0x0" name="Fuel" />
    <CATEGORY index="0x1" name="Spark" />
    <CATEGORY index="0x2" name="Transmission" />
    <CATEGORY index="0x3" name="Airflow" />
    <CATEGORY index="0x4" name="Limits" />
    <CATEGORY index="0x5" name="Idle" />
    <CATEGORY index="0x6" name="Torque" />
    <CATEGORY index="0x7" name="Diagnostics" />
    <CATEGORY index="0x8" name="Speedometer" />
    <CATEGORY index="0x9" name="Sensors" />
    <CATEGORY index="0xA" name="Engine" />
  </XDFHEADER>
  <XDFTABLE uniqueid="0x0" flags="0x30">
    <title>Transient Fuel - Wall Evaporation Fraction vs MAP vs Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fraction of the port wall fuel film that evaporates into the cylinder each update (the wall-wetting time constant), by MAP (rows) and port temperature (columns). Stock 0.10 cold to 0.22 hot at 20 kPa. Effect: raise = wall film dries faster (shorter tip-in/tip-out fuel corrections) Evidence: ledger:E0002, ledger:E0057, ledger:E0213, ledger:E0218, ledger:E0316</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (modelled temp)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-24" />
      <LABEL index="2" value="-8" />
      <LABEL index="3" value="8" />
      <LABEL index="4" value="24" />
      <LABEL index="5" value="40" />
      <LABEL index="6" value="56" />
      <LABEL index="7" value="72" />
      <LABEL index="8" value="88" />
      <LABEL index="9" value="104" />
      <LABEL index="10" value="120" />
      <LABEL index="11" value="136" />
      <LABEL index="12" value="152" />
      <LABEL index="13" value="168" />
      <LABEL index="14" value="184" />
      <LABEL index="15" value="200" />
      <LABEL index="16" value="216" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>kPa (MAP)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="20" />
      <LABEL index="1" value="30" />
      <LABEL index="2" value="40" />
      <LABEL index="3" value="50" />
      <LABEL index="4" value="60" />
      <LABEL index="5" value="70" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="90" />
      <LABEL index="8" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2636A" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction per update</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1" flags="0x30">
    <title>Main Spark Advance - High Octane</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Base spark advance vs cylinder airmass x RPM, high-octane table. The PCM runs High minus (High - Low) x the learned octane scaler: scaler 0 = pure High, 1.0 = pure Low. After a reset or fault the scaler starts at 1.0 (all Low) and octane learn moves it toward High while there is no knock (E0296). Effect: increase = more timing &amp; torque (and more knock risk) Evidence: ledger:E0002, ledger:E0003, ledger:E0004, ledger:E0006, ledger:E0069, ledger:E0071, ledger:E0175, ledger:E0213, ledger:E0257, ledger:E0260, ledger:E0296</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="256" />
      <LABEL index="2" value="512" />
      <LABEL index="3" value="768" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1280" />
      <LABEL index="6" value="1536" />
      <LABEL index="7" value="1792" />
      <LABEL index="8" value="2048" />
      <LABEL index="9" value="2304" />
      <LABEL index="10" value="2560" />
      <LABEL index="11" value="2816" />
      <LABEL index="12" value="3072" />
      <LABEL index="13" value="3328" />
      <LABEL index="14" value="3584" />
      <LABEL index="15" value="3840" />
      <LABEL index="16" value="4096" />
      <LABEL index="17" value="4352" />
      <LABEL index="18" value="4608" />
      <LABEL index="19" value="4864" />
      <LABEL index="20" value="5120" />
      <LABEL index="21" value="5376" />
      <LABEL index="22" value="5632" />
      <LABEL index="23" value="5888" />
      <LABEL index="24" value="6144" />
      <LABEL index="25" value="6400" />
      <LABEL index="26" value="6656" />
      <LABEL index="27" value="6912" />
      <LABEL index="28" value="7168" />
      <LABEL index="29" value="7424" />
      <LABEL index="30" value="7680" />
      <LABEL index="31" value="7936" />
      <LABEL index="32" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>g/cyl</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.08" />
      <LABEL index="1" value="0.12" />
      <LABEL index="2" value="0.16" />
      <LABEL index="3" value="0.2" />
      <LABEL index="4" value="0.24" />
      <LABEL index="5" value="0.28" />
      <LABEL index="6" value="0.32" />
      <LABEL index="7" value="0.36" />
      <LABEL index="8" value="0.4" />
      <LABEL index="9" value="0.44" />
      <LABEL index="10" value="0.48" />
      <LABEL index="11" value="0.52" />
      <LABEL index="12" value="0.56" />
      <LABEL index="13" value="0.6" />
      <LABEL index="14" value="0.64" />
      <LABEL index="15" value="0.68" />
      <LABEL index="16" value="0.72" />
      <LABEL index="17" value="0.76" />
      <LABEL index="18" value="0.8" />
      <LABEL index="19" value="0.84" />
      <LABEL index="20" value="0.88" />
      <LABEL index="21" value="0.92" />
      <LABEL index="22" value="0.96" />
      <LABEL index="23" value="1" />
      <LABEL index="24" value="1.04" />
      <LABEL index="25" value="1.08" />
      <LABEL index="26" value="1.12" />
      <LABEL index="27" value="1.16" />
      <LABEL index="28" value="1.2" />
      <LABEL index="29" value="1.24" />
      <LABEL index="30" value="1.28" />
      <LABEL index="31" value="1.32" />
      <LABEL index="32" value="1.36" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2CB25" mmedelementsizebits="8" mmedrowcount="33" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>1</decimalpl>
      <min>-64.000000</min>
      <max>63.500000</max>
      <MATH equation="X*0.5"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x2" flags="0x30">
    <title>Main Spark Advance - Low Octane</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Base spark advance vs cylinder airmass x RPM, low-octane table. Retarded 0-10.5 deg relative to high octane at mid/high load. The PCM runs High minus (High - Low) x the learned octane scaler: scaler 0 = pure High, 1.0 = pure Low. After a reset or fault the scaler starts at 1.0 (all Low) and octane learn moves it toward High while there is no knock (E0296). Effect: increase = more timing &amp; torque (and more knock risk) Evidence: ledger:E0002, ledger:E0003, ledger:E0005, ledger:E0006, ledger:E0069, ledger:E0071, ledger:E0175, ledger:E0213, ledger:E0257, ledger:E0260, ledger:E0296</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="256" />
      <LABEL index="2" value="512" />
      <LABEL index="3" value="768" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1280" />
      <LABEL index="6" value="1536" />
      <LABEL index="7" value="1792" />
      <LABEL index="8" value="2048" />
      <LABEL index="9" value="2304" />
      <LABEL index="10" value="2560" />
      <LABEL index="11" value="2816" />
      <LABEL index="12" value="3072" />
      <LABEL index="13" value="3328" />
      <LABEL index="14" value="3584" />
      <LABEL index="15" value="3840" />
      <LABEL index="16" value="4096" />
      <LABEL index="17" value="4352" />
      <LABEL index="18" value="4608" />
      <LABEL index="19" value="4864" />
      <LABEL index="20" value="5120" />
      <LABEL index="21" value="5376" />
      <LABEL index="22" value="5632" />
      <LABEL index="23" value="5888" />
      <LABEL index="24" value="6144" />
      <LABEL index="25" value="6400" />
      <LABEL index="26" value="6656" />
      <LABEL index="27" value="6912" />
      <LABEL index="28" value="7168" />
      <LABEL index="29" value="7424" />
      <LABEL index="30" value="7680" />
      <LABEL index="31" value="7936" />
      <LABEL index="32" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>g/cyl</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.08" />
      <LABEL index="1" value="0.12" />
      <LABEL index="2" value="0.16" />
      <LABEL index="3" value="0.2" />
      <LABEL index="4" value="0.24" />
      <LABEL index="5" value="0.28" />
      <LABEL index="6" value="0.32" />
      <LABEL index="7" value="0.36" />
      <LABEL index="8" value="0.4" />
      <LABEL index="9" value="0.44" />
      <LABEL index="10" value="0.48" />
      <LABEL index="11" value="0.52" />
      <LABEL index="12" value="0.56" />
      <LABEL index="13" value="0.6" />
      <LABEL index="14" value="0.64" />
      <LABEL index="15" value="0.68" />
      <LABEL index="16" value="0.72" />
      <LABEL index="17" value="0.76" />
      <LABEL index="18" value="0.8" />
      <LABEL index="19" value="0.84" />
      <LABEL index="20" value="0.88" />
      <LABEL index="21" value="0.92" />
      <LABEL index="22" value="0.96" />
      <LABEL index="23" value="1" />
      <LABEL index="24" value="1.04" />
      <LABEL index="25" value="1.08" />
      <LABEL index="26" value="1.12" />
      <LABEL index="27" value="1.16" />
      <LABEL index="28" value="1.2" />
      <LABEL index="29" value="1.24" />
      <LABEL index="30" value="1.28" />
      <LABEL index="31" value="1.32" />
      <LABEL index="32" value="1.36" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2D05D" mmedelementsizebits="8" mmedrowcount="33" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>1</decimalpl>
      <min>-64.000000</min>
      <max>63.500000</max>
      <MATH equation="X*0.5"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3" flags="0x30">
    <title>Torque Reduction vs Torque vs Shift (Normal / Performance / mode 2 x 1-2, 2-3, 3-4)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is a 1-D byte curve [COUNT=0x11 (17 points)][TYPE (0 -&gt; output = point x256)][17 points]; COUNT and TYPE are structure bytes - never edit them (E0170). Engine torque cut during an upshift, vs engine torque, per shift and shift mode. Formerly mis-identified as &#x27;Pedal Sensitivity&#x27; - it is shift torque management (E0198). Effect: more = softer, slower-feeling shifts; less = firmer shifts and more clutch load Evidence: ledger:E0170, ledger:E0198, ledger:E0215, ledger:E0243</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>19</indexcount>
      <units>COUNT/TYPE + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="TYPE" />
      <LABEL index="2" value="0" />
      <LABEL index="3" value="30" />
      <LABEL index="4" value="59" />
      <LABEL index="5" value="89" />
      <LABEL index="6" value="118" />
      <LABEL index="7" value="148" />
      <LABEL index="8" value="177" />
      <LABEL index="9" value="207" />
      <LABEL index="10" value="236" />
      <LABEL index="11" value="266" />
      <LABEL index="12" value="295" />
      <LABEL index="13" value="325" />
      <LABEL index="14" value="354" />
      <LABEL index="15" value="384" />
      <LABEL index="16" value="413" />
      <LABEL index="17" value="443" />
      <LABEL index="18" value="472" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>mode x shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="Normal 1-2" />
      <LABEL index="1" value="Normal 2-3" />
      <LABEL index="2" value="Normal 3-4" />
      <LABEL index="3" value="Perf 1-2" />
      <LABEL index="4" value="Perf 2-3" />
      <LABEL index="5" value="Perf 3-4" />
      <LABEL index="6" value="Mode2 1-2" />
      <LABEL index="7" value="Mode2 2-3" />
      <LABEL index="8" value="Mode2 3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3F040" mmedelementsizebits="8" mmedrowcount="9" mmedcolcount="19" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>99.609375</max>
      <MATH equation="X/2.56"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4" flags="0x30">
    <title>Power Enrichment EQ vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Commanded fuel mixture during power enrichment, by engine speed (EQ: 1.0 = stoichiometric, higher = richer, lambda = 1 / EQ). This is the only power enrichment mixture table and it has no load or manifold pressure input: under boost every boost level gets the same mixture at a given rpm. The PCM commands the richest of power enrichment, catalyst over-temperature protection and coolant over-temperature enrichment. Stock about 1.20 at 4000 rpm. Effect: raise = richer full-load mixture at that rpm (at every boost level) Evidence: ledger:E0030, ledger:E0041, ledger:E0126, ledger:E0175, ledger:E0257, ledger:E0260, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="256" />
      <LABEL index="2" value="512" />
      <LABEL index="3" value="768" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1280" />
      <LABEL index="6" value="1536" />
      <LABEL index="7" value="1792" />
      <LABEL index="8" value="2048" />
      <LABEL index="9" value="2304" />
      <LABEL index="10" value="2560" />
      <LABEL index="11" value="2816" />
      <LABEL index="12" value="3072" />
      <LABEL index="13" value="3328" />
      <LABEL index="14" value="3584" />
      <LABEL index="15" value="3840" />
      <LABEL index="16" value="4096" />
      <LABEL index="17" value="4352" />
      <LABEL index="18" value="4608" />
      <LABEL index="19" value="4864" />
      <LABEL index="20" value="5120" />
      <LABEL index="21" value="5376" />
      <LABEL index="22" value="5632" />
      <LABEL index="23" value="5888" />
      <LABEL index="24" value="6144" />
      <LABEL index="25" value="6400" />
      <LABEL index="26" value="6656" />
      <LABEL index="27" value="6912" />
      <LABEL index="28" value="7168" />
      <LABEL index="29" value="7424" />
      <LABEL index="30" value="7680" />
      <LABEL index="31" value="7936" />
      <LABEL index="32" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x28894" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>EQ</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5" flags="0x30">
    <title>PE enable throttle vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Throttle opening, by engine speed, at or above which power enrichment is allowed (a barometric adder curve, all zero on the stock calibration, is added to it). Power enrichment also needs manifold pressure at or above the minimum MAP and rpm at or above the minimum rpm. Effect: lower = power enrichment starts at a smaller throttle opening Evidence: ledger:E0032, ledger:E0106, ledger:E0162, ledger:E0197, ledger:E0236, ledger:E0257, ledger:E0260, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x28632" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.003052</max>
      <MATH equation="X/327.67"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x6" flags="0x0">
    <title>PE enable hysteresis</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once power enrichment is active, the throttle threshold drops by this much, so it stays on until the throttle closes this far below the enable value. Effect: raise = power enrichment holds on longer as the throttle closes Evidence: ledger:E0032, ledger:E0147, ledger:E0151, ledger:E0194, ledger:E0197, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x28606" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x7" flags="0x0">
    <title>PE ramp-in rate (Q15 per pass)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How quickly the commanded mixture moves toward the power enrichment target each update when richening. Effect: raise = power enrichment richens faster Evidence: ledger:E0031, ledger:E0145, ledger:E0151, ledger:E0194, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x28616" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction of full PE per pass</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x8" flags="0x0">
    <title>PE ramp-out rate (Q15 per pass)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How quickly the commanded mixture falls back each update when leaving power enrichment or when the target leans out. Effect: raise = the mixture leans out faster after power enrichment Evidence: ledger:E0031, ledger:E0145, ledger:E0151, ledger:E0194, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x28618" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction of full PE per pass</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x9" flags="0x0">
    <title>Stoichiometric AFR</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Evidence: ledger:E0024, ledger:E0143, ledger:E0151</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x26854" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>AFR</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>31.999512</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/2048"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xA" flags="0x0">
    <title>Minimum commanded EQ under lean offset</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Evidence: ledger:E0033, ledger:E0151, ledger:E0195, ledger:E0212</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x26856" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>EQ (fuel/air, 1.0 = stoich; lambda = 1/EQ)</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>63.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xB" flags="0x0">
    <title>Maximum commanded EQ (state 2)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Evidence: ledger:E0033, ledger:E0151, ledger:E0195, ledger:E0212</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x26858" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>EQ (fuel/air, 1.0 = stoich; lambda = 1/EQ)</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>63.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0xC" flags="0x30">
    <title>Misfire Catalyst-Protection EQ</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Commanded EQ used ONLY while the misfire monitor sees &gt; 100 misfires in its test window: lean below ~2560 rpm, rich above, vs MAP x rpm. Normal closed loop commands 1.000 and open loop uses the OL EQ tables. Emissions/catalyst protection - do not tune Effect: fuelling during heavy misfire only (catalyst protection) Evidence: ledger:E0025, ledger:E0098, ledger:E0166, ledger:E0212, ledger:E0213, ledger:E0220, ledger:E0222</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>kPa (MAP)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="20" />
      <LABEL index="1" value="30" />
      <LABEL index="2" value="40" />
      <LABEL index="3" value="50" />
      <LABEL index="4" value="60" />
      <LABEL index="5" value="70" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="90" />
      <LABEL index="8" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x269C6" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>EQ (fuel/air, 1.0 = stoich; lambda = 1/EQ)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xD" flags="0x30">
    <title>Open-loop EQ, in gear</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Evidence: ledger:E0041, ledger:E0043, ledger:E0120, ledger:E0121, ledger:E0164, ledger:E0175, ledger:E0196, ledger:E0211, ledger:E0213, ledger:E0222, ledger:E0257, ledger:E0260, ledger:E0288</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (coolant at start)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>degC (modelled temp)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-32" />
      <LABEL index="2" value="-24" />
      <LABEL index="3" value="-16" />
      <LABEL index="4" value="-8" />
      <LABEL index="5" value="0" />
      <LABEL index="6" value="8" />
      <LABEL index="7" value="16" />
      <LABEL index="8" value="24" />
      <LABEL index="9" value="32" />
      <LABEL index="10" value="40" />
      <LABEL index="11" value="48" />
      <LABEL index="12" value="56" />
      <LABEL index="13" value="64" />
      <LABEL index="14" value="72" />
      <LABEL index="15" value="80" />
      <LABEL index="16" value="88" />
      <LABEL index="17" value="96" />
      <LABEL index="18" value="104" />
      <LABEL index="19" value="112" />
      <LABEL index="20" value="120" />
      <LABEL index="21" value="128" />
      <LABEL index="22" value="136" />
      <LABEL index="23" value="144" />
      <LABEL index="24" value="152" />
      <LABEL index="25" value="160" />
      <LABEL index="26" value="168" />
      <LABEL index="27" value="176" />
      <LABEL index="28" value="184" />
      <LABEL index="29" value="192" />
      <LABEL index="30" value="200" />
      <LABEL index="31" value="208" />
      <LABEL index="32" value="216" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x27CDE" mmedelementsizebits="16" mmedrowcount="33" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>EQ</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xE" flags="0x30">
    <title>Open-loop EQ, park/neutral</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Evidence: ledger:E0041, ledger:E0043, ledger:E0120, ledger:E0121, ledger:E0164, ledger:E0175, ledger:E0196, ledger:E0211, ledger:E0213, ledger:E0222, ledger:E0272, ledger:E0288</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (coolant at start)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>degC (modelled temp)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-32" />
      <LABEL index="2" value="-24" />
      <LABEL index="3" value="-16" />
      <LABEL index="4" value="-8" />
      <LABEL index="5" value="0" />
      <LABEL index="6" value="8" />
      <LABEL index="7" value="16" />
      <LABEL index="8" value="24" />
      <LABEL index="9" value="32" />
      <LABEL index="10" value="40" />
      <LABEL index="11" value="48" />
      <LABEL index="12" value="56" />
      <LABEL index="13" value="64" />
      <LABEL index="14" value="72" />
      <LABEL index="15" value="80" />
      <LABEL index="16" value="88" />
      <LABEL index="17" value="96" />
      <LABEL index="18" value="104" />
      <LABEL index="19" value="112" />
      <LABEL index="20" value="120" />
      <LABEL index="21" value="128" />
      <LABEL index="22" value="136" />
      <LABEL index="23" value="144" />
      <LABEL index="24" value="152" />
      <LABEL index="25" value="160" />
      <LABEL index="26" value="168" />
      <LABEL index="27" value="176" />
      <LABEL index="28" value="184" />
      <LABEL index="29" value="192" />
      <LABEL index="30" value="200" />
      <LABEL index="31" value="208" />
      <LABEL index="32" value="216" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x28146" mmedelementsizebits="16" mmedrowcount="33" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>EQ</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xF" flags="0x30">
    <title>MAF transfer curve (airflow vs output frequency)</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Effect: increase = PCM believes more air is entering (richer fuelling) Evidence: ledger:E0042, ledger:E0110, ledger:E0111, ledger:E0112, ledger:E0113, ledger:E0114, ledger:E0175, ledger:E0219, ledger:E0230, ledger:E0685</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>Hz (MAF output frequency)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1500" />
      <LABEL index="1" value="1800" />
      <LABEL index="2" value="2100" />
      <LABEL index="3" value="2400" />
      <LABEL index="4" value="2700" />
      <LABEL index="5" value="3000" />
      <LABEL index="6" value="3300" />
      <LABEL index="7" value="3600" />
      <LABEL index="8" value="3900" />
      <LABEL index="9" value="4200" />
      <LABEL index="10" value="4500" />
      <LABEL index="11" value="4800" />
      <LABEL index="12" value="5100" />
      <LABEL index="13" value="5400" />
      <LABEL index="14" value="5700" />
      <LABEL index="15" value="6000" />
      <LABEL index="16" value="6300" />
      <LABEL index="17" value="6600" />
      <LABEL index="18" value="6900" />
      <LABEL index="19" value="7200" />
      <LABEL index="20" value="7500" />
      <LABEL index="21" value="7800" />
      <LABEL index="22" value="8100" />
      <LABEL index="23" value="8400" />
      <LABEL index="24" value="8700" />
      <LABEL index="25" value="9000" />
      <LABEL index="26" value="9300" />
      <LABEL index="27" value="9600" />
      <LABEL index="28" value="9900" />
      <LABEL index="29" value="10200" />
      <LABEL index="30" value="10500" />
      <LABEL index="31" value="10800" />
      <LABEL index="32" value="11100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2BF06" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g/s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>511.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x10" flags="0x30">
    <title>Injector flow rate vs kPa vacuum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Evidence: ledger:E0046, ledger:E0101, ledger:E0117, ledger:E0118, ledger:E0166, ledger:E0196, ledger:E0197, ledger:E0236, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>kPa (manifold vacuum)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x260B2" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g/s</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x11" flags="0x30">
    <title>Engine speed limit by gear/P-N state</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Read only in gear: Park/Neutral/Reverse take a separate path (Fuel Cutoff RPM P/N). Cells 1st-4th are the gears; 5th/6th are unused on the 4L60-E (E0271). Evidence: ledger:E0028, ledger:E0043, ledger:E0053, ledger:E0131, ledger:E0211, ledger:E0271</description>
    <CATEGORYMEM index="0" category="5" />
    <XDFAXIS id="x">
      <indexcount>6</indexcount>
      <units>gear (in-gear trans state 0..5)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1st" />
      <LABEL index="1" value="2nd" />
      <LABEL index="2" value="3rd" />
      <LABEL index="3" value="4th" />
      <LABEL index="4" value="5th" />
      <LABEL index="5" value="6th" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x23382" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="6" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x12" flags="0x30">
    <title>Rev limit ECT modifier (Q15 multiplier on the rev limit)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Evidence: ledger:E0034, ledger:E0109, ledger:E0131, ledger:E0168, ledger:E0260</description>
    <CATEGORYMEM index="0" category="5" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (ECT blended toward IAT when cold)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x23394" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor (0.75 cold .. 1.00 warm)</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x13" flags="0x30">
    <title>Engine speed limiter retard gain by state</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Read only in gear (states 0-5). Cells 1st-4th are the gears; 5th/6th are unused on the 4L60-E (E0271). Evidence: ledger:E0029, ledger:E0195, ledger:E0211, ledger:E0271</description>
    <CATEGORYMEM index="0" category="5" />
    <XDFAXIS id="x">
      <indexcount>6</indexcount>
      <units>gear (in-gear trans state 0..5)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1st" />
      <LABEL index="1" value="2nd" />
      <LABEL index="2" value="3rd" />
      <LABEL index="3" value="4th" />
      <LABEL index="4" value="5th" />
      <LABEL index="5" value="6th" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x233C0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="6" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gain</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>15.999756</max>
      <MATH equation="X/4096"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x14" flags="0x0">
    <title>Over-RPM Status Flag RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine speed at or above which the PCM sets its over-rpm status flag. It is a reported status only: it does not cut fuel, spark or throttle. Stock 6600 rpm. Effect: raise = the over-rpm status sets at a higher rpm Evidence: ledger:E0022, ledger:E0143, ledger:E0151, ledger:E0195, ledger:E0987</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x23380" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x15" flags="0x0">
    <title>Vehicle speed limit - fuel cut CUTOFF</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Evidence: ledger:E0052, ledger:E0129, ledger:E0143, ledger:E0151</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x20090" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x16" flags="0x0">
    <title>Vehicle speed limit - fuel cut RESUME</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Evidence: ledger:E0052, ledger:E0129, ledger:E0143, ledger:E0151</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x2008E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x17" flags="0x0">
    <title>Vehicle speed limiter minimum RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Evidence: ledger:E0052, ledger:E0151, ledger:E0195</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x2008A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x18" flags="0x30">
    <title>Vehicle speed limiter retard gain by gear</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Indexed by transmission state clamped to 5. Cells 1st-4th are the gears; 5th/6th are unused on the 4L60-E (E0271). Evidence: ledger:E0052, ledger:E0195, ledger:E0211, ledger:E0271</description>
    <CATEGORYMEM index="0" category="5" />
    <XDFAXIS id="x">
      <indexcount>6</indexcount>
      <units>gear (in-gear trans state 0..5)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1st" />
      <LABEL index="1" value="2nd" />
      <LABEL index="2" value="3rd" />
      <LABEL index="3" value="4th" />
      <LABEL index="4" value="5th" />
      <LABEL index="5" value="6th" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x31414" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="6" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gain</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x19" flags="0x30">
    <title>Desired idle vs coolant temp - PARK/NEUTRAL</title>
    <description>Target idle speed vs engine coolant temperature in park or neutral. Higher than the in-gear target at 20 and 32 C (850 vs 750 rpm); the two curves are identical above 44 C. Warm-up log matches the part of the curve shared with the other idle curve (186 samples at 47-88 C, mean error 4.7 rpm, E0115). Which curve is Park/Neutral and which is in-gear rests on code (E0123). Evidence: ledger:E0048, ledger:E0115, ledger:E0123, ledger:E0158, ledger:E0223, ledger:E0231</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC coolant</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x29A42" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1A" flags="0x30">
    <title>Desired idle vs coolant temp - IN GEAR</title>
    <description>Target idle speed vs engine coolant temperature with the transmission in gear. Lower than the park/neutral target at the same temperature, which is the expected direction for a GM automatic. Warm-up log matches the part of the curve shared with the other idle curve (186 samples at 47-88 C, mean error 4.7 rpm, E0115). Which curve is Park/Neutral and which is in-gear rests on code (E0123). Evidence: ledger:E0048, ledger:E0115, ledger:E0123, ledger:E0158, ledger:E0231</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC coolant</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x29A1E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x1B" flags="0x0">
    <title>Desired idle ceiling</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Evidence: ledger:E0049, ledger:E0151, ledger:E0195</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29F0A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1C" flags="0x0">
    <title>Octane scaler default (reset/fault)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Octane scaler value after a reset or fault. Stock 1.0 = run the Low Octane spark table until octane learn moves toward High (E0296). Lower it to start closer to High octane. Evidence: ledger:E0007, ledger:E0151, ledger:E0193, ledger:E0296</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A832" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>0..1</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1D" flags="0x0">
    <title>Knock retard threshold for octane learn</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Minimum per-cylinder knock retard for an octane-learn step. Stock 2.0 deg. Evidence: ledger:E0008, ledger:E0151, ledger:E0193, ledger:E0218</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A830" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>deg</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1E" flags="0x0">
    <title>Octane scaler decay gain</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Evidence: ledger:E0009, ledger:E0151, ledger:E0193</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A7EE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>gain</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1F" flags="0x0">
    <title>Max cylinder octane-scaler spread</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Evidence: ledger:E0010, ledger:E0151, ledger:E0193</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A66E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>0..1</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x20" flags="0x30">
    <title>Force motor (PCS) current vs commanded line pressure - used while pressure FALLING</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Evidence: ledger:E0050, ledger:E0059, ledger:E0124, ledger:E0125, ledger:E0135, ledger:E0168, ledger:E0174</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>kPa (commanded line pressure)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="40" />
      <LABEL index="2" value="80" />
      <LABEL index="3" value="120" />
      <LABEL index="4" value="160" />
      <LABEL index="5" value="200" />
      <LABEL index="6" value="240" />
      <LABEL index="7" value="280" />
      <LABEL index="8" value="320" />
      <LABEL index="9" value="360" />
      <LABEL index="10" value="400" />
      <LABEL index="11" value="440" />
      <LABEL index="12" value="480" />
      <LABEL index="13" value="520" />
      <LABEL index="14" value="560" />
      <LABEL index="15" value="600" />
      <LABEL index="16" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>degC (trans fluid)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3E077" mmedelementsizebits="8" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>A</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>1.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x21" flags="0x30">
    <title>ECT Spark Advance Correction - additive</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark advance added by coolant temperature (columns) and cylinder airmass (rows), 0.5 deg per count. Identified from a related GM operating system by code homology and confirmed on the H3 by its index source. Effect: increase = more timing added at that temperature and airmass Evidence: ledger:E0002, ledger:E0071, ledger:E0072, ledger:E0073, ledger:E0137, ledger:E0138, ledger:E0139, ledger:E0140, ledger:E0175, ledger:E0213, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-30" />
      <LABEL index="2" value="-20" />
      <LABEL index="3" value="-10" />
      <LABEL index="4" value="0" />
      <LABEL index="5" value="10" />
      <LABEL index="6" value="20" />
      <LABEL index="7" value="30" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="60" />
      <LABEL index="11" value="70" />
      <LABEL index="12" value="80" />
      <LABEL index="13" value="90" />
      <LABEL index="14" value="100" />
      <LABEL index="15" value="110" />
      <LABEL index="16" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>g/cyl (cylinder airmass)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.08" />
      <LABEL index="1" value="0.12" />
      <LABEL index="2" value="0.16" />
      <LABEL index="3" value="0.2" />
      <LABEL index="4" value="0.24" />
      <LABEL index="5" value="0.28" />
      <LABEL index="6" value="0.32" />
      <LABEL index="7" value="0.36" />
      <LABEL index="8" value="0.4" />
      <LABEL index="9" value="0.44" />
      <LABEL index="10" value="0.48" />
      <LABEL index="11" value="0.52" />
      <LABEL index="12" value="0.56" />
      <LABEL index="13" value="0.6" />
      <LABEL index="14" value="0.64" />
      <LABEL index="15" value="0.68" />
      <LABEL index="16" value="0.72" />
      <LABEL index="17" value="0.76" />
      <LABEL index="18" value="0.8" />
      <LABEL index="19" value="0.84" />
      <LABEL index="20" value="0.88" />
      <LABEL index="21" value="0.92" />
      <LABEL index="22" value="0.96" />
      <LABEL index="23" value="1" />
      <LABEL index="24" value="1.04" />
      <LABEL index="25" value="1.08" />
      <LABEL index="26" value="1.12" />
      <LABEL index="27" value="1.16" />
      <LABEL index="28" value="1.2" />
      <LABEL index="29" value="1.24" />
      <LABEL index="30" value="1.28" />
      <LABEL index="31" value="1.32" />
      <LABEL index="32" value="1.36" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2D66D" mmedelementsizebits="8" mmedrowcount="33" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>1</decimalpl>
      <min>-64.000000</min>
      <max>63.500000</max>
      <MATH equation="X*0.5"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x22" flags="0x30">
    <title>IAT Spark Advance Correction - additive</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark advance added by intake air temperature (columns) and cylinder airmass (rows), 0.5 deg per count. Identified from a related GM operating system by code homology and confirmed on the H3 by its index source. Effect: increase = more timing added at that temperature and airmass Evidence: ledger:E0002, ledger:E0071, ledger:E0072, ledger:E0074, ledger:E0140, ledger:E0213, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-30" />
      <LABEL index="2" value="-20" />
      <LABEL index="3" value="-10" />
      <LABEL index="4" value="0" />
      <LABEL index="5" value="10" />
      <LABEL index="6" value="20" />
      <LABEL index="7" value="30" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="60" />
      <LABEL index="11" value="70" />
      <LABEL index="12" value="80" />
      <LABEL index="13" value="90" />
      <LABEL index="14" value="100" />
      <LABEL index="15" value="110" />
      <LABEL index="16" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>g/cyl (cylinder airmass)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.08" />
      <LABEL index="1" value="0.12" />
      <LABEL index="2" value="0.16" />
      <LABEL index="3" value="0.2" />
      <LABEL index="4" value="0.24" />
      <LABEL index="5" value="0.28" />
      <LABEL index="6" value="0.32" />
      <LABEL index="7" value="0.36" />
      <LABEL index="8" value="0.4" />
      <LABEL index="9" value="0.44" />
      <LABEL index="10" value="0.48" />
      <LABEL index="11" value="0.52" />
      <LABEL index="12" value="0.56" />
      <LABEL index="13" value="0.6" />
      <LABEL index="14" value="0.64" />
      <LABEL index="15" value="0.68" />
      <LABEL index="16" value="0.72" />
      <LABEL index="17" value="0.76" />
      <LABEL index="18" value="0.8" />
      <LABEL index="19" value="0.84" />
      <LABEL index="20" value="0.88" />
      <LABEL index="21" value="0.92" />
      <LABEL index="22" value="0.96" />
      <LABEL index="23" value="1" />
      <LABEL index="24" value="1.04" />
      <LABEL index="25" value="1.08" />
      <LABEL index="26" value="1.12" />
      <LABEL index="27" value="1.16" />
      <LABEL index="28" value="1.2" />
      <LABEL index="29" value="1.24" />
      <LABEL index="30" value="1.28" />
      <LABEL index="31" value="1.32" />
      <LABEL index="32" value="1.36" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2D9CD" mmedelementsizebits="8" mmedrowcount="33" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>1</decimalpl>
      <min>-64.000000</min>
      <max>63.500000</max>
      <MATH equation="X*0.5"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x23" flags="0x30">
    <title>ECT Spark Advance Correction - multiplier</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplier applied alongside the ECT additive spark correction, by coolant temperature and airmass. Stock 0.602 to 0.996. Evidence: ledger:E0002, ledger:E0075, ledger:E0141, ledger:E0160, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>degC (coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-20" />
      <LABEL index="1" value="-10" />
      <LABEL index="2" value="0" />
      <LABEL index="3" value="10" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="30" />
      <LABEL index="6" value="40" />
      <LABEL index="7" value="50" />
      <LABEL index="8" value="60" />
      <LABEL index="9" value="70" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="90" />
      <LABEL index="12" value="100" />
      <LABEL index="13" value="110" />
      <LABEL index="14" value="120" />
      <LABEL index="15" value="130" />
      <LABEL index="16" value="140" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2D8A5" mmedelementsizebits="8" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor (applied to the ECT add correction)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>0.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x24" flags="0x30">
    <title>IAT Spark Advance Correction - multiplier</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplier applied alongside the IAT additive spark correction, by intake air temperature and airmass. Stock 0.602 to 0.996. Evidence: ledger:E0002, ledger:E0076, ledger:E0141, ledger:E0160, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>degC (intake air)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-30" />
      <LABEL index="2" value="-20" />
      <LABEL index="3" value="-10" />
      <LABEL index="4" value="0" />
      <LABEL index="5" value="10" />
      <LABEL index="6" value="20" />
      <LABEL index="7" value="30" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="60" />
      <LABEL index="11" value="70" />
      <LABEL index="12" value="80" />
      <LABEL index="13" value="90" />
      <LABEL index="14" value="100" />
      <LABEL index="15" value="110" />
      <LABEL index="16" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2DC05" mmedelementsizebits="8" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor (applied to the IAT add correction)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>0.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x25" flags="0x30">
    <title>VE / Airflow model at cam phase 0 deg (bank 1 of 5)</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Cam-phase VE bank for 0 deg cam. LIVE on the stock H3 at idle and light load (cam at 0 deg); under load above about 2000 rpm the load-based cam target (9 to 11 desired-cam degrees) would move the model toward banks 4 and 5. Edit THIS bank for VE changes - but steady-state fuelling follows the MAF and a uniform VE change is absorbed by the learned MAF/VE ratio (0.5 to 1.5), so VE shape matters in transients and is the only airflow source in MAF-fault mode 1. Cam axis note: the PCM halves its actual cam reading before comparing it with desired cam, so this axis counts twice as many units per degree as the desired-cam items in this file (the load-based target of 9 to 11 desired-cam degrees sits at about 18 to 22 here). The degree labels on this axis are on the actual-cam scale, most likely crank degrees. | One of five alternates of the volumetric-efficiency / airflow model. 17x17 u...</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>kPa (MAP)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="15" />
      <LABEL index="1" value="20.625" />
      <LABEL index="2" value="26.25" />
      <LABEL index="3" value="31.875" />
      <LABEL index="4" value="37.5" />
      <LABEL index="5" value="43.125" />
      <LABEL index="6" value="48.75" />
      <LABEL index="7" value="54.375" />
      <LABEL index="8" value="60" />
      <LABEL index="9" value="65.625" />
      <LABEL index="10" value="71.25" />
      <LABEL index="11" value="76.875" />
      <LABEL index="12" value="82.5" />
      <LABEL index="13" value="88.125" />
      <LABEL index="14" value="93.75" />
      <LABEL index="15" value="99.375" />
      <LABEL index="16" value="105" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="800" />
      <LABEL index="2" value="1200" />
      <LABEL index="3" value="1600" />
      <LABEL index="4" value="2000" />
      <LABEL index="5" value="2400" />
      <LABEL index="6" value="2800" />
      <LABEL index="7" value="3200" />
      <LABEL index="8" value="3600" />
      <LABEL index="9" value="4000" />
      <LABEL index="10" value="4400" />
      <LABEL index="11" value="4800" />
      <LABEL index="12" value="5200" />
      <LABEL index="13" value="5600" />
      <LABEL index="14" value="6000" />
      <LABEL index="15" value="6400" />
      <LABEL index="16" value="6800" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2ABF2" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mg K/kPa</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x26" flags="0x30">
    <title>VE / Airflow model at cam phase 9 deg (bank 2 of 5)</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Cam-phase VE bank for 9 deg cam. Dormant at idle and light load on the stock H3; probably used under load above about 2000 rpm, where a load-based path commands 9 to 11 desired-cam degrees (between banks 4 and 5 on this axis) (E0358, not yet confirmed on the road). Used when the cam is phased toward 9 deg, Check a loaded log before assuming edits here do nothing. Cam axis note: the PCM halves its actual cam reading before comparing it with desired cam, so this axis counts twice as many units per degree as the desired-cam items in this file (the load-based target of 9 to 11 desired-cam degrees sits at about 18 to 22 here). The degree labels on this axis are on the actual-cam scale, most likely crank degrees. | One of five alternates of the volumetric-efficiency / airflow model. 17x17 uint16. Rows = engine speed 400 to 6800 rpm; columns = MAP 15 to 105 kPa. The lookup output reach...</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>kPa (MAP)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="15" />
      <LABEL index="1" value="20.625" />
      <LABEL index="2" value="26.25" />
      <LABEL index="3" value="31.875" />
      <LABEL index="4" value="37.5" />
      <LABEL index="5" value="43.125" />
      <LABEL index="6" value="48.75" />
      <LABEL index="7" value="54.375" />
      <LABEL index="8" value="60" />
      <LABEL index="9" value="65.625" />
      <LABEL index="10" value="71.25" />
      <LABEL index="11" value="76.875" />
      <LABEL index="12" value="82.5" />
      <LABEL index="13" value="88.125" />
      <LABEL index="14" value="93.75" />
      <LABEL index="15" value="99.375" />
      <LABEL index="16" value="105" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="800" />
      <LABEL index="2" value="1200" />
      <LABEL index="3" value="1600" />
      <LABEL index="4" value="2000" />
      <LABEL index="5" value="2400" />
      <LABEL index="6" value="2800" />
      <LABEL index="7" value="3200" />
      <LABEL index="8" value="3600" />
      <LABEL index="9" value="4000" />
      <LABEL index="10" value="4400" />
      <LABEL index="11" value="4800" />
      <LABEL index="12" value="5200" />
      <LABEL index="13" value="5600" />
      <LABEL index="14" value="6000" />
      <LABEL index="15" value="6400" />
      <LABEL index="16" value="6800" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2AE3A" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mg K/kPa</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x27" flags="0x30">
    <title>VE / Airflow model at cam phase 12 deg (bank 3 of 5)</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Cam-phase VE bank for 12 deg cam. Dormant at idle and light load on the stock H3; probably used under load above about 2000 rpm, where a load-based path commands 9 to 11 desired-cam degrees (between banks 4 and 5 on this axis) (E0358, not yet confirmed on the road). Used when the cam is phased toward 12 deg, Check a loaded log before assuming edits here do nothing. Cam axis note: the PCM halves its actual cam reading before comparing it with desired cam, so this axis counts twice as many units per degree as the desired-cam items in this file (the load-based target of 9 to 11 desired-cam degrees sits at about 18 to 22 here). The degree labels on this axis are on the actual-cam scale, most likely crank degrees. | One of five alternates of the volumetric-efficiency / airflow model. 17x17 uint16. Rows = engine speed 400 to 6800 rpm; columns = MAP 15 to 105 kPa. The lookup output rea...</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>kPa (MAP)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="15" />
      <LABEL index="1" value="20.625" />
      <LABEL index="2" value="26.25" />
      <LABEL index="3" value="31.875" />
      <LABEL index="4" value="37.5" />
      <LABEL index="5" value="43.125" />
      <LABEL index="6" value="48.75" />
      <LABEL index="7" value="54.375" />
      <LABEL index="8" value="60" />
      <LABEL index="9" value="65.625" />
      <LABEL index="10" value="71.25" />
      <LABEL index="11" value="76.875" />
      <LABEL index="12" value="82.5" />
      <LABEL index="13" value="88.125" />
      <LABEL index="14" value="93.75" />
      <LABEL index="15" value="99.375" />
      <LABEL index="16" value="105" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="800" />
      <LABEL index="2" value="1200" />
      <LABEL index="3" value="1600" />
      <LABEL index="4" value="2000" />
      <LABEL index="5" value="2400" />
      <LABEL index="6" value="2800" />
      <LABEL index="7" value="3200" />
      <LABEL index="8" value="3600" />
      <LABEL index="9" value="4000" />
      <LABEL index="10" value="4400" />
      <LABEL index="11" value="4800" />
      <LABEL index="12" value="5200" />
      <LABEL index="13" value="5600" />
      <LABEL index="14" value="6000" />
      <LABEL index="15" value="6400" />
      <LABEL index="16" value="6800" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2B082" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mg K/kPa</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x28" flags="0x30">
    <title>VE / Airflow model at cam phase 16 deg (bank 4 of 5)</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Cam-phase VE bank for 16 deg cam. Dormant at idle and light load on the stock H3; probably used under load above about 2000 rpm, where a load-based path commands 9 to 11 desired-cam degrees (between banks 4 and 5 on this axis) (E0358, not yet confirmed on the road). Used when the cam is phased toward 16 deg, Check a loaded log before assuming edits here do nothing. Cam axis note: the PCM halves its actual cam reading before comparing it with desired cam, so this axis counts twice as many units per degree as the desired-cam items in this file (the load-based target of 9 to 11 desired-cam degrees sits at about 18 to 22 here). The degree labels on this axis are on the actual-cam scale, most likely crank degrees. | One of five alternates of the volumetric-efficiency / airflow model. 17x17 uint16. Rows = engine speed 400 to 6800 rpm; columns = MAP 15 to 105 kPa. The lookup output rea...</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>kPa (MAP)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="15" />
      <LABEL index="1" value="20.625" />
      <LABEL index="2" value="26.25" />
      <LABEL index="3" value="31.875" />
      <LABEL index="4" value="37.5" />
      <LABEL index="5" value="43.125" />
      <LABEL index="6" value="48.75" />
      <LABEL index="7" value="54.375" />
      <LABEL index="8" value="60" />
      <LABEL index="9" value="65.625" />
      <LABEL index="10" value="71.25" />
      <LABEL index="11" value="76.875" />
      <LABEL index="12" value="82.5" />
      <LABEL index="13" value="88.125" />
      <LABEL index="14" value="93.75" />
      <LABEL index="15" value="99.375" />
      <LABEL index="16" value="105" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="800" />
      <LABEL index="2" value="1200" />
      <LABEL index="3" value="1600" />
      <LABEL index="4" value="2000" />
      <LABEL index="5" value="2400" />
      <LABEL index="6" value="2800" />
      <LABEL index="7" value="3200" />
      <LABEL index="8" value="3600" />
      <LABEL index="9" value="4000" />
      <LABEL index="10" value="4400" />
      <LABEL index="11" value="4800" />
      <LABEL index="12" value="5200" />
      <LABEL index="13" value="5600" />
      <LABEL index="14" value="6000" />
      <LABEL index="15" value="6400" />
      <LABEL index="16" value="6800" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2B2CA" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mg K/kPa</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x29" flags="0x30">
    <title>VE / Airflow model at cam phase 25 deg (bank 5 of 5)</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Cam-phase VE bank for 25 deg cam. Dormant at idle and light load on the stock H3; probably used under load above about 2000 rpm, where a load-based path commands 9 to 11 desired-cam degrees (between banks 4 and 5 on this axis) (E0358, not yet confirmed on the road). Used when the cam is phased toward 25 deg, Check a loaded log before assuming edits here do nothing. Cam axis note: the PCM halves its actual cam reading before comparing it with desired cam, so this axis counts twice as many units per degree as the desired-cam items in this file (the load-based target of 9 to 11 desired-cam degrees sits at about 18 to 22 here). The degree labels on this axis are on the actual-cam scale, most likely crank degrees. | One of five alternates of the volumetric-efficiency / airflow model. 17x17 uint16. Rows = engine speed 400 to 6800 rpm; columns = MAP 15 to 105 kPa. The lookup output rea...</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>kPa (MAP)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="15" />
      <LABEL index="1" value="20.625" />
      <LABEL index="2" value="26.25" />
      <LABEL index="3" value="31.875" />
      <LABEL index="4" value="37.5" />
      <LABEL index="5" value="43.125" />
      <LABEL index="6" value="48.75" />
      <LABEL index="7" value="54.375" />
      <LABEL index="8" value="60" />
      <LABEL index="9" value="65.625" />
      <LABEL index="10" value="71.25" />
      <LABEL index="11" value="76.875" />
      <LABEL index="12" value="82.5" />
      <LABEL index="13" value="88.125" />
      <LABEL index="14" value="93.75" />
      <LABEL index="15" value="99.375" />
      <LABEL index="16" value="105" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="800" />
      <LABEL index="2" value="1200" />
      <LABEL index="3" value="1600" />
      <LABEL index="4" value="2000" />
      <LABEL index="5" value="2400" />
      <LABEL index="6" value="2800" />
      <LABEL index="7" value="3200" />
      <LABEL index="8" value="3600" />
      <LABEL index="9" value="4000" />
      <LABEL index="10" value="4400" />
      <LABEL index="11" value="4800" />
      <LABEL index="12" value="5200" />
      <LABEL index="13" value="5600" />
      <LABEL index="14" value="6000" />
      <LABEL index="15" value="6400" />
      <LABEL index="16" value="6800" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2B512" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mg K/kPa</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x2A" flags="0x30">
    <title>VE bank cam-phase axis breakpoints</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The third axis of the VE model: five cam-phase breakpoints, stock 0, 9, 12, 16, 25 on the actual-cam scale. Entry i pairs with VE bank entry i. The PCM clamps the current cam angle between the first and last and interpolates between the bracketing tables. Cam axis note: the PCM halves its actual cam reading before comparing it with desired cam, so this axis counts twice as many units per degree as the desired-cam items in this file (the load-based target of 9 to 11 desired-cam degrees sits at about 18 to 22 here). The degree labels on this axis are on the actual-cam scale, most likely crank degrees. Evidence: ledger:E0081, ledger:E0082, ledger:E0083</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>5</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2AB92" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="5" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>deg</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>511.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x2B" flags="0x0">
    <title>VE Model Mode Switch (DO NOT TUNE)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 1 = the VE airflow model blends its five cam-phase banks. 0 = the PCM uses bank 1 only. Changes which airflow model runs. Effect: DO NOT TUNE (selects the airflow model) Evidence: ledger:E0081, ledger:E0083, ledger:E0151</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22D08" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>flag</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2C" flags="0x0">
    <title>VE Model Cam Axis Source Switch (DO NOT TUNE)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 0 = the VE banks are indexed by the PCM&#x27;s primary actual-cam reading; non-zero switches to its alternate reading. Changes which signal drives the VE blend. Effect: DO NOT TUNE (selects the cam signal) Evidence: ledger:E0081, ledger:E0083, ledger:E0151</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BC10" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>flag</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x2D" flags="0x30">
    <title>Octane-learn DECREASE gain vs A-B spark delta</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Octane-learn gain versus the A-B spark delta, 0 to 30 deg. Evidence: ledger:E0012, ledger:E0169, ledger:E0204</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>31</indexcount>
      <units>deg (high - low octane spark)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A7F2" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="31" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gain</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x2E" flags="0x30">
    <title>Octane-learn INCREASE gain vs per-cylinder knock retard</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Octane-learn gain versus knock retard, 0 to 20 deg; stock flat 0.10. Evidence: ledger:E0013, ledger:E0204, ledger:E0218, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>11</indexcount>
      <units>deg (per-cylinder knock retard)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="2" />
      <LABEL index="2" value="4" />
      <LABEL index="3" value="6" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="10" />
      <LABEL index="6" value="12" />
      <LABEL index="7" value="14" />
      <LABEL index="8" value="16" />
      <LABEL index="9" value="18" />
      <LABEL index="10" value="20" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A7D8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="11" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gain</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x2F" flags="0x30">
    <title>Injector flow-rate modifier (Q14) - vs battery voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Q14 multiplier on injector flow (effective flow = flow x X/16384). Stock: all 1.0 (no correction). Evidence: ledger:E0142, ledger:E0162, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>V (system voltage)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="5" />
      <LABEL index="1" value="6" />
      <LABEL index="2" value="7" />
      <LABEL index="3" value="8" />
      <LABEL index="4" value="9" />
      <LABEL index="5" value="10" />
      <LABEL index="6" value="11" />
      <LABEL index="7" value="12" />
      <LABEL index="8" value="13" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x260D6" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>3.999939</max>
      <MATH equation="X/16384"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x30" flags="0x0">
    <title>Minimum RPM to allow DFCO</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Minimum RPM to allow DFCO Evidence: ledger:E0146, ledger:E0151, ledger:E0236</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2EE66" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x31" flags="0x0">
    <title>Maximum RPM to disable DFCO</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Maximum RPM to disable DFCO Evidence: ledger:E0146, ledger:E0151, ledger:E0236</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2EE68" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x32" flags="0x0">
    <title>Dynamic Airflow MAF-Only - Engine Speed On</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Dynamic airflow MAF-only mode: above the disable engine speed the cylinder airmass comes straight from the MAF (filtered), skipping the airmass predictor and its VE Maximum cap; it switches back below the re-enable engine speed. Below it, the airmass is capped at VE Maximum x barometric pressure / charge temperature, which holds boosted airmass near a naturally aspirated charge, so a boost tune either lowers this engine speed or raises VE Maximum. This is the engine speed at or above which MAF-only mode turns on. Stock 5000 rpm. Effect: lower = MAF-only airmass (no VE Maximum cap) from a lower engine speed; the usual boost change Evidence: ledger:E0146, ledger:E0151, ledger:E0219, ledger:E0865, ledger:E0866</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2AB82" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x33" flags="0x0">
    <title>Dynamic Airflow MAF-Only - Engine Speed Off</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Dynamic airflow MAF-only mode: above the disable engine speed the cylinder airmass comes straight from the MAF (filtered), skipping the airmass predictor and its VE Maximum cap; it switches back below the re-enable engine speed. Below it, the airmass is capped at VE Maximum x barometric pressure / charge temperature, which holds boosted airmass near a naturally aspirated charge, so a boost tune either lowers this engine speed or raises VE Maximum. This is the engine speed below which MAF-only mode turns off again. Stock 4900 rpm. Keep it a little below the on speed. Effect: lower = MAF-only mode holds down to a lower engine speed Evidence: ledger:E0146, ledger:E0151, ledger:E0219, ledger:E0865, ledger:E0866</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2AB84" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x34" flags="0x0">
    <title>Power Enrichment Minimum MAP</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Manifold pressure at or above which power enrichment is allowed (with the throttle and rpm conditions). There is no upper limit, so it stays allowed at any boost level. Stock 55 kPa. Effect: lower = power enrichment allowed at lighter load Evidence: ledger:E0147, ledger:E0151, ledger:E0236, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x28608" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x35" flags="0x0">
    <title>Power Enrichment Minimum MAP Hysteresis</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once power enrichment is active, the minimum manifold pressure drops by this much, so it stays on until pressure falls this far below the minimum. Stock 5 kPa. Effect: raise = power enrichment holds on at lower manifold pressure Evidence: ledger:E0147, ledger:E0151, ledger:E0236, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2860A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x36" flags="0x0">
    <title>Power Enrichment Delay RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Power enrichment delay applies only at or below this engine speed. Stock 8000 rpm, so the delay rules below apply across the whole range. Effect: lower = no power enrichment delay above this rpm Evidence: ledger:E0147, ledger:E0151, ledger:E0236, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x28610" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x37" flags="0x0">
    <title>Power Enrichment minimum RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine speed at or above which power enrichment is allowed. Stock 0 rpm (no rpm limit). Effect: raise = no power enrichment below this rpm Evidence: ledger:E0147, ledger:E0151, ledger:E0194, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x28604" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x38" flags="0x0">
    <title>Power Enrichment minimum RPM hysteresis</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once power enrichment is active, the minimum rpm drops by this much. Stock 0 rpm. Effect: raise = power enrichment holds on to a lower rpm once active Evidence: ledger:E0147, ledger:E0151, ledger:E0194, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x28602" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x39" flags="0x30">
    <title>VE Maximum (Airmass Cap)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Below the dynamic airflow MAF-only engine speed (stock 5000 rpm), the cylinder airmass that spark and fuel use is capped at this maximum VE x barometric pressure / charge temperature x the limit multiplier (and x the learned MAF to VE ratio when that is above 1.0). Barometric pressure, not MAP, so under boost this cap holds the airmass near a naturally aspirated full charge whatever the MAF reads: stock about 0.70 g per cylinder at 2000 rpm and 0.84 g at 5000 rpm (100 kPa, 20 C). Above the MAF-only engine speed the cap is skipped. Same unit as the VE banks: 2439 = 100 % volumetric efficiency on this engine. Raise for boost, or run MAF-only by lowering the dynamic airflow MAF-only engine speed. Effect: raise = higher airmass ceiling below the MAF-only engine speed (needed for boost) Evidence: ledger:E0148, ledger:E0165, ledger:E0175, ledger:E0196, ledger:E0236, ledger:E0257, ledger:E026...</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="800" />
      <LABEL index="2" value="1200" />
      <LABEL index="3" value="1600" />
      <LABEL index="4" value="2000" />
      <LABEL index="5" value="2400" />
      <LABEL index="6" value="2800" />
      <LABEL index="7" value="3200" />
      <LABEL index="8" value="3600" />
      <LABEL index="9" value="4000" />
      <LABEL index="10" value="4400" />
      <LABEL index="11" value="4800" />
      <LABEL index="12" value="5200" />
      <LABEL index="13" value="5600" />
      <LABEL index="14" value="6000" />
      <LABEL index="15" value="6400" />
      <LABEL index="16" value="6800" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2BE22" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mg K/kPa</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X*0.0625"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3A" flags="0x30">
    <title>Cranking FA Mult Stage 1 vs. Cranking Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Located on the H3 by code homology with the Cobalt; scale carried from the Cobalt. Evidence: ledger:E0148, ledger:E0162, ledger:E0163, ledger:E0167, ledger:E0196, ledger:E0213, ledger:E0221, ledger:E0236, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>s (engine-off soak time)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="60" />
      <LABEL index="2" value="120" />
      <LABEL index="3" value="180" />
      <LABEL index="4" value="240" />
      <LABEL index="5" value="300" />
      <LABEL index="6" value="360" />
      <LABEL index="7" value="420" />
      <LABEL index="8" value="480" />
      <LABEL index="9" value="540" />
      <LABEL index="10" value="600" />
      <LABEL index="11" value="1800" />
      <LABEL index="12" value="3600" />
      <LABEL index="13" value="7200" />
      <LABEL index="14" value="10800" />
      <LABEL index="15" value="14400" />
      <LABEL index="16" value="21600" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>degC (coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-34" />
      <LABEL index="2" value="-28" />
      <LABEL index="3" value="-22" />
      <LABEL index="4" value="-16" />
      <LABEL index="5" value="-10" />
      <LABEL index="6" value="-4" />
      <LABEL index="7" value="2" />
      <LABEL index="8" value="14" />
      <LABEL index="9" value="26" />
      <LABEL index="10" value="38" />
      <LABEL index="11" value="50" />
      <LABEL index="12" value="62" />
      <LABEL index="13" value="74" />
      <LABEL index="14" value="86" />
      <LABEL index="15" value="98" />
      <LABEL index="16" value="110" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x264D6" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X*0.0009765625"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3B" flags="0x30">
    <title>Open Loop EQ Ratio Min vs. ECT</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Located on the H3 by code homology with the Cobalt; scale carried from the Cobalt. Evidence: ledger:E0148, ledger:E0160, ledger:E0175, ledger:E0196, ledger:E0236, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x26A88" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>EQ</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X*0.0009765625"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3C" flags="0x30">
    <title>Closed Loop O2 Ready ECT vs. Startup Coolant Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Located on the H3 by code homology with the Cobalt; scale carried from the Cobalt. Axis variable is the startup-ECT snapshot. One cold start is consistent: 23.9 C startup predicts 28.4 C, and trims first moved between 27.2 and 28.9 C (2026-09-20 log). Trim activity is a proxy for closed loop; one start only. Evidence: ledger:E0148, ledger:E0164, ledger:E0172, ledger:E0175, ledger:E0236, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (coolant at start)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x28990" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC</units>
      <decimalpl>3</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X*0.0078125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3D" flags="0x30">
    <title>Burst Knock Retard Mult vs. IAT</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Located on the H3 by code homology with the Cobalt; scale carried from the Cobalt. Evidence: ledger:E0148, ledger:E0160, ledger:E0172, ledger:E0175, ledger:E0234, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC (intake air)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-16" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="32" />
      <LABEL index="4" value="56" />
      <LABEL index="5" value="80" />
      <LABEL index="6" value="104" />
      <LABEL index="7" value="128" />
      <LABEL index="8" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A6BE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X*0.000030517578125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3E" flags="0x30">
    <title>Knock Retard Amount</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Located on the H3 by code homology with the Cobalt; scale carried from the Cobalt. Evidence: ledger:E0148, ledger:E0160, ledger:E0175, ledger:E0196, ledger:E0234, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A54C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>deg</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X*0.0001220703125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3F" flags="0x30">
    <title>Knock Retard Amount ECT Multiplier</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplies the knock retard step by coolant temperature (1.0 = no change). The step itself grows with the knock sensor&#x27;s intensity, so this sets how hard the PCM pulls timing per knock event at each temperature. Evidence: ledger:E0148, ledger:E0160, ledger:E0175, ledger:E0196, ledger:E0234, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-30" />
      <LABEL index="2" value="-20" />
      <LABEL index="3" value="-10" />
      <LABEL index="4" value="0" />
      <LABEL index="5" value="10" />
      <LABEL index="6" value="20" />
      <LABEL index="7" value="30" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="60" />
      <LABEL index="11" value="70" />
      <LABEL index="12" value="80" />
      <LABEL index="13" value="90" />
      <LABEL index="14" value="100" />
      <LABEL index="15" value="110" />
      <LABEL index="16" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A570" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X*0.000030517578125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x40" flags="0x30">
    <title>Maximum Knock Retard vs. RPM vs. MAP</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Located on the H3 by code homology with the Cobalt; scale carried from the Cobalt. Evidence: ledger:E0148, ledger:E0166, ledger:E0196, ledger:E0213, ledger:E0234, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>kPa (MAP)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="20" />
      <LABEL index="1" value="30" />
      <LABEL index="2" value="40" />
      <LABEL index="3" value="50" />
      <LABEL index="4" value="60" />
      <LABEL index="5" value="70" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="90" />
      <LABEL index="8" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A5A3" mmedelementsizebits="8" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>1</decimalpl>
      <min>-64.000000</min>
      <max>63.500000</max>
      <MATH equation="X*0.5"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x41" flags="0x30">
    <title>ETC TPS Max vs. RPM vs. % Max Available Torque</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Located on the H3 by code homology with the Cobalt; scale carried from the Cobalt. On the H3 this is the throttle needed for a torque request, used as a throttle ceiling (mode 2) or floor (mode 1) during torque intervention, not only a max. Row axis = density-corrected indicated torque (request + losses, x baro x IAT multipliers). Evidence: ledger:E0148, ledger:E0196, ledger:E0213, ledger:E0218, ledger:E0236, ledger:E0243, ledger:E0257, ledger:E0259, ledger:E0260</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="450" />
      <LABEL index="2" value="900" />
      <LABEL index="3" value="1350" />
      <LABEL index="4" value="1800" />
      <LABEL index="5" value="2250" />
      <LABEL index="6" value="2700" />
      <LABEL index="7" value="3150" />
      <LABEL index="8" value="3600" />
      <LABEL index="9" value="4050" />
      <LABEL index="10" value="4500" />
      <LABEL index="11" value="4950" />
      <LABEL index="12" value="5400" />
      <LABEL index="13" value="5850" />
      <LABEL index="14" value="6000" />
      <LABEL index="15" value="7000" />
      <LABEL index="16" value="8191" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>engine torque (lb-ft; stored Nm x4)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-110.6" />
      <LABEL index="1" value="-73.8" />
      <LABEL index="2" value="-36.9" />
      <LABEL index="3" value="0.0" />
      <LABEL index="4" value="11.1" />
      <LABEL index="5" value="22.1" />
      <LABEL index="6" value="33.2" />
      <LABEL index="7" value="44.3" />
      <LABEL index="8" value="55.3" />
      <LABEL index="9" value="66.4" />
      <LABEL index="10" value="77.4" />
      <LABEL index="11" value="88.5" />
      <LABEL index="12" value="99.6" />
      <LABEL index="13" value="110.6" />
      <LABEL index="14" value="121.7" />
      <LABEL index="15" value="132.8" />
      <LABEL index="16" value="143.8" />
      <LABEL index="17" value="154.9" />
      <LABEL index="18" value="166.0" />
      <LABEL index="19" value="177.0" />
      <LABEL index="20" value="188.1" />
      <LABEL index="21" value="199.1" />
      <LABEL index="22" value="210.2" />
      <LABEL index="23" value="221.3" />
      <LABEL index="24" value="232.3" />
      <LABEL index="25" value="243.4" />
      <LABEL index="26" value="254.5" />
      <LABEL index="27" value="265.5" />
      <LABEL index="28" value="276.6" />
      <LABEL index="29" value="287.6" />
      <LABEL index="30" value="298.7" />
      <LABEL index="31" value="309.8" />
      <LABEL index="32" value="320.8" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x30F36" mmedelementsizebits="16" mmedrowcount="33" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>99.998474</max>
      <MATH equation="X*0.00152587890625"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x42" flags="0x30">
    <title>Retard vs. % Torque Reduction</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Located on the H3 by code homology with the Cobalt; scale carried from the Cobalt. Evidence: ledger:E0148, ledger:E0167, ledger:E0175, ledger:E0196, ledger:E0234, ledger:E0243, ledger:E0936</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>% torque reduction</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="3.125" />
      <LABEL index="2" value="6.25" />
      <LABEL index="3" value="9.375" />
      <LABEL index="4" value="12.5" />
      <LABEL index="5" value="15.625" />
      <LABEL index="6" value="18.75" />
      <LABEL index="7" value="21.875" />
      <LABEL index="8" value="25" />
      <LABEL index="9" value="28.125" />
      <LABEL index="10" value="31.25" />
      <LABEL index="11" value="34.375" />
      <LABEL index="12" value="37.5" />
      <LABEL index="13" value="40.625" />
      <LABEL index="14" value="43.75" />
      <LABEL index="15" value="46.875" />
      <LABEL index="16" value="50" />
      <LABEL index="17" value="53.125" />
      <LABEL index="18" value="56.25" />
      <LABEL index="19" value="59.375" />
      <LABEL index="20" value="62.5" />
      <LABEL index="21" value="65.625" />
      <LABEL index="22" value="68.75" />
      <LABEL index="23" value="71.875" />
      <LABEL index="24" value="75" />
      <LABEL index="25" value="78.125" />
      <LABEL index="26" value="81.25" />
      <LABEL index="27" value="84.375" />
      <LABEL index="28" value="87.5" />
      <LABEL index="29" value="90.625" />
      <LABEL index="30" value="93.75" />
      <LABEL index="31" value="96.875" />
      <LABEL index="32" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x313B4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>3</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X*0.0078125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x43" flags="0x30">
    <title>AC Compressor Torque vs. AC Pressure</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Located on the H3 by code homology with the Cobalt; scale carried from the Cobalt. 2-D rpm x A/C pressure, averaged with an IAT table and added to accessory torque when the A/C clutch is on (E0236). Evidence: ledger:E0148, ledger:E0167, ledger:E0196, ledger:E0213, ledger:E0236, ledger:E0242, ledger:E0243, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>kPa (A/C pressure)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="225" />
      <LABEL index="2" value="450" />
      <LABEL index="3" value="675" />
      <LABEL index="4" value="900" />
      <LABEL index="5" value="1125" />
      <LABEL index="6" value="1350" />
      <LABEL index="7" value="1575" />
      <LABEL index="8" value="1800" />
      <LABEL index="9" value="2025" />
      <LABEL index="10" value="2250" />
      <LABEL index="11" value="2475" />
      <LABEL index="12" value="2700" />
      <LABEL index="13" value="2925" />
      <LABEL index="14" value="3150" />
      <LABEL index="15" value="3375" />
      <LABEL index="16" value="3600" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="400" />
      <LABEL index="2" value="800" />
      <LABEL index="3" value="1200" />
      <LABEL index="4" value="1600" />
      <LABEL index="5" value="2000" />
      <LABEL index="6" value="2400" />
      <LABEL index="7" value="2800" />
      <LABEL index="8" value="3200" />
      <LABEL index="9" value="3600" />
      <LABEL index="10" value="4000" />
      <LABEL index="11" value="4400" />
      <LABEL index="12" value="4800" />
      <LABEL index="13" value="5200" />
      <LABEL index="14" value="5600" />
      <LABEL index="15" value="6000" />
      <LABEL index="16" value="6400" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2FD54" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>lb-ft</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>6042.016932</max>
      <MATH equation="X*0.0921952686597"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x44" flags="0x30">
    <title>TCC DC Maximum vs. Line Pressure vs. Trans Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Located on the H3 by code homology with the Cobalt; scale carried from the Cobalt. Evidence: ledger:E0148, ledger:E0164, ledger:E0196, ledger:E0236, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC (trans fluid)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="16.5" />
      <LABEL index="2" value="33" />
      <LABEL index="3" value="49.5" />
      <LABEL index="4" value="66" />
      <LABEL index="5" value="82.5" />
      <LABEL index="6" value="99" />
      <LABEL index="7" value="115.5" />
      <LABEL index="8" value="132" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>kPa (line pressure)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="80" />
      <LABEL index="2" value="160" />
      <LABEL index="3" value="240" />
      <LABEL index="4" value="320" />
      <LABEL index="5" value="400" />
      <LABEL index="6" value="480" />
      <LABEL index="7" value="560" />
      <LABEL index="8" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3DC2F" mmedelementsizebits="8" mmedrowcount="9" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>99.609375</max>
      <MATH equation="X*0.390625"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x45" flags="0x30">
    <title>TCC DC Minimum vs. Line Pressure vs. Trans Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Located on the H3 by code homology with the Cobalt; scale carried from the Cobalt. Evidence: ledger:E0148, ledger:E0164, ledger:E0196, ledger:E0236, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC (trans fluid)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="16.5" />
      <LABEL index="2" value="33" />
      <LABEL index="3" value="49.5" />
      <LABEL index="4" value="66" />
      <LABEL index="5" value="82.5" />
      <LABEL index="6" value="99" />
      <LABEL index="7" value="115.5" />
      <LABEL index="8" value="132" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>kPa (line pressure)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="80" />
      <LABEL index="2" value="160" />
      <LABEL index="3" value="240" />
      <LABEL index="4" value="320" />
      <LABEL index="5" value="400" />
      <LABEL index="6" value="480" />
      <LABEL index="7" value="560" />
      <LABEL index="8" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3DBD7" mmedelementsizebits="8" mmedrowcount="9" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>99.609375</max>
      <MATH equation="X*0.390625"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x46" flags="0x30">
    <title>EGR Spark Advance Correction - Add</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark added from the EGR spark correction table is scaled by the cam-phase factor (Cam-Phase Factor vs Cam Angle and RPM) divided by a normaliser (stock 0.24, the factor table&#x27;s largest value), so the table applies in full at 24 degrees of cam and in proportion below it. Table by cylinder airmass and engine speed; stock up to 16 degrees at light load (0.08 to 0.48 g per cylinder) and 0 at higher airmass. With the stock cam at 9 to 11 degrees under load about 16 percent of the table is applied. The result rises at half the difference per update and falls at once. Effect: raise = more spark at that airmass and speed while the cam is phased Evidence: ledger:E0149, ledger:E0213, ledger:E0257, ledger:E0260, ledger:E0883</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="800" />
      <LABEL index="1" value="1200" />
      <LABEL index="2" value="1600" />
      <LABEL index="3" value="2000" />
      <LABEL index="4" value="2400" />
      <LABEL index="5" value="2800" />
      <LABEL index="6" value="3200" />
      <LABEL index="7" value="3600" />
      <LABEL index="8" value="4000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>g/cyl (cylinder airmass)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.08" />
      <LABEL index="1" value="0.12" />
      <LABEL index="2" value="0.16" />
      <LABEL index="3" value="0.2" />
      <LABEL index="4" value="0.24" />
      <LABEL index="5" value="0.28" />
      <LABEL index="6" value="0.32" />
      <LABEL index="7" value="0.36" />
      <LABEL index="8" value="0.4" />
      <LABEL index="9" value="0.44" />
      <LABEL index="10" value="0.48" />
      <LABEL index="11" value="0.52" />
      <LABEL index="12" value="0.56" />
      <LABEL index="13" value="0.6" />
      <LABEL index="14" value="0.64" />
      <LABEL index="15" value="0.68" />
      <LABEL index="16" value="0.72" />
      <LABEL index="17" value="0.76" />
      <LABEL index="18" value="0.8" />
      <LABEL index="19" value="0.84" />
      <LABEL index="20" value="0.88" />
      <LABEL index="21" value="0.92" />
      <LABEL index="22" value="0.96" />
      <LABEL index="23" value="1" />
      <LABEL index="24" value="1.04" />
      <LABEL index="25" value="1.08" />
      <LABEL index="26" value="1.12" />
      <LABEL index="27" value="1.16" />
      <LABEL index="28" value="1.2" />
      <LABEL index="29" value="1.24" />
      <LABEL index="30" value="1.28" />
      <LABEL index="31" value="1.32" />
      <LABEL index="32" value="1.36" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2D4A5" mmedelementsizebits="8" mmedrowcount="33" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>1</decimalpl>
      <min>-64.000000</min>
      <max>63.500000</max>
      <MATH equation="X*0.5"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x47" flags="0x30">
    <title>Base Dwell Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Placed on the H3 by code-layout prediction. Evidence: ledger:E0150, ledger:E0165, ledger:E0175, ledger:E0196, ledger:E0213, ledger:E0234, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>22</indexcount>
      <units>V (ignition)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="4.5" />
      <LABEL index="1" value="5.5" />
      <LABEL index="2" value="6.5" />
      <LABEL index="3" value="7.5" />
      <LABEL index="4" value="8.5" />
      <LABEL index="5" value="9.5" />
      <LABEL index="6" value="10.5" />
      <LABEL index="7" value="11.5" />
      <LABEL index="8" value="12.5" />
      <LABEL index="9" value="13.5" />
      <LABEL index="10" value="14.5" />
      <LABEL index="11" value="15.5" />
      <LABEL index="12" value="16.5" />
      <LABEL index="13" value="17.5" />
      <LABEL index="14" value="18.5" />
      <LABEL index="15" value="19.5" />
      <LABEL index="16" value="20.5" />
      <LABEL index="17" value="21.5" />
      <LABEL index="18" value="22.5" />
      <LABEL index="19" value="23.5" />
      <LABEL index="20" value="24.5" />
      <LABEL index="21" value="25.5" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2EFEE" mmedelementsizebits="16" mmedrowcount="22" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ms</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>511.992188</max>
      <MATH equation="X*0.0078125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x48" flags="0x30">
    <title>Base Dwell Time Modifier vs. IGNV vs. ECT</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Placed on the H3 by code-layout prediction. Column axis is a modelled temperature (mostly coolant, pulled down by IAT and vehicle speed), not raw coolant (E0258). Evidence: ledger:E0150, ledger:E0165, ledger:E0175, ledger:E0196, ledger:E0234, ledger:E0257, ledger:E0258, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>10</indexcount>
      <units>degC (modelled temp)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-20" />
      <LABEL index="2" value="0" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <LABEL index="9" value="140" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>22</indexcount>
      <units>V (ignition)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="4.5" />
      <LABEL index="1" value="5.5" />
      <LABEL index="2" value="6.5" />
      <LABEL index="3" value="7.5" />
      <LABEL index="4" value="8.5" />
      <LABEL index="5" value="9.5" />
      <LABEL index="6" value="10.5" />
      <LABEL index="7" value="11.5" />
      <LABEL index="8" value="12.5" />
      <LABEL index="9" value="13.5" />
      <LABEL index="10" value="14.5" />
      <LABEL index="11" value="15.5" />
      <LABEL index="12" value="16.5" />
      <LABEL index="13" value="17.5" />
      <LABEL index="14" value="18.5" />
      <LABEL index="15" value="19.5" />
      <LABEL index="16" value="20.5" />
      <LABEL index="17" value="21.5" />
      <LABEL index="18" value="22.5" />
      <LABEL index="19" value="23.5" />
      <LABEL index="20" value="24.5" />
      <LABEL index="21" value="25.5" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2F2DD" mmedelementsizebits="8" mmedrowcount="22" mmedcolcount="10" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>0.996094</max>
      <MATH equation="X*0.00390625"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x49" flags="0x30">
    <title>Burst Knock Retard Mult vs. RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Placed on the H3 by code-layout prediction. Evidence: ledger:E0150, ledger:E0160, ledger:E0172, ledger:E0175, ledger:E0196, ledger:E0234, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A6E6" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X*0.0000152587890625"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4A" flags="0x30">
    <title>Burst Knock Retard vs. Cylair Delta</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Placed on the H3 by code-layout prediction. Evidence: ledger:E0150, ledger:E0167, ledger:E0196, ledger:E0234, ledger:E0936</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>g/cyl (airmass rise)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="0.002" />
      <LABEL index="2" value="0.004" />
      <LABEL index="3" value="0.006" />
      <LABEL index="4" value="0.008" />
      <LABEL index="5" value="0.01" />
      <LABEL index="6" value="0.012" />
      <LABEL index="7" value="0.014" />
      <LABEL index="8" value="0.016" />
      <LABEL index="9" value="0.018" />
      <LABEL index="10" value="0.02" />
      <LABEL index="11" value="0.022" />
      <LABEL index="12" value="0.024" />
      <LABEL index="13" value="0.026" />
      <LABEL index="14" value="0.028" />
      <LABEL index="15" value="0.03" />
      <LABEL index="16" value="0.032" />
      <LABEL index="17" value="0.034" />
      <LABEL index="18" value="0.036" />
      <LABEL index="19" value="0.038" />
      <LABEL index="20" value="0.04" />
      <LABEL index="21" value="0.042" />
      <LABEL index="22" value="0.044" />
      <LABEL index="23" value="0.046" />
      <LABEL index="24" value="0.048" />
      <LABEL index="25" value="0.05" />
      <LABEL index="26" value="0.052" />
      <LABEL index="27" value="0.054" />
      <LABEL index="28" value="0.056" />
      <LABEL index="29" value="0.058" />
      <LABEL index="30" value="0.06" />
      <LABEL index="31" value="0.062" />
      <LABEL index="32" value="0.064" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A67A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>3</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X*0.0078125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4B" flags="0x30">
    <title>Knock Retard Amount Baro Multiplier</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplies the knock retard step by barometric pressure (1.0 = no change). The step itself grows with the knock sensor&#x27;s intensity, so this sets how hard the PCM pulls timing per knock event at each altitude. Evidence: ledger:E0150, ledger:E0162, ledger:E0175, ledger:E0196, ledger:E0234, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>6</indexcount>
      <units>kPa (baro)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="55" />
      <LABEL index="1" value="65" />
      <LABEL index="2" value="75" />
      <LABEL index="3" value="85" />
      <LABEL index="4" value="95" />
      <LABEL index="5" value="105" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A594" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="6" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X*0.000030517578125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4C" flags="0x30">
    <title>Idle Underspeed Spark vs. RPM Error (P/N)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Placed on the H3 by code-layout prediction; under/over role confirmed by value sign, P/N vs In Gear by layout order only. Used in Park/Neutral only; in gear the In Gear curve applies (E0288). Scaled by Idle Underspeed Spark Gain vs Coolant (E0291). Evidence: ledger:E0150, ledger:E0161, ledger:E0196, ledger:E0288, ledger:E0936</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm error (x0.75 in most modes)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="16" />
      <LABEL index="2" value="32" />
      <LABEL index="3" value="48" />
      <LABEL index="4" value="64" />
      <LABEL index="5" value="80" />
      <LABEL index="6" value="96" />
      <LABEL index="7" value="112" />
      <LABEL index="8" value="128" />
      <LABEL index="9" value="144" />
      <LABEL index="10" value="160" />
      <LABEL index="11" value="176" />
      <LABEL index="12" value="192" />
      <LABEL index="13" value="208" />
      <LABEL index="14" value="224" />
      <LABEL index="15" value="240" />
      <LABEL index="16" value="256" />
      <LABEL index="17" value="272" />
      <LABEL index="18" value="288" />
      <LABEL index="19" value="304" />
      <LABEL index="20" value="320" />
      <LABEL index="21" value="336" />
      <LABEL index="22" value="352" />
      <LABEL index="23" value="368" />
      <LABEL index="24" value="384" />
      <LABEL index="25" value="400" />
      <LABEL index="26" value="416" />
      <LABEL index="27" value="432" />
      <LABEL index="28" value="448" />
      <LABEL index="29" value="464" />
      <LABEL index="30" value="480" />
      <LABEL index="31" value="496" />
      <LABEL index="32" value="512" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2E4DC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>3</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X*0.0078125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4D" flags="0x30">
    <title>Idle Overspeed Spark vs. RPM Error (P/N)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Placed on the H3 by code-layout prediction; under/over role confirmed by value sign, P/N vs In Gear by layout order only. Used in Park/Neutral only; in gear the In Gear curve applies (E0288). Scaled by Idle Overspeed Spark / Droop Airflow Gain vs Coolant (E0291). Evidence: ledger:E0150, ledger:E0161, ledger:E0196, ledger:E0288</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm error (x0.75 in most modes)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="16" />
      <LABEL index="2" value="32" />
      <LABEL index="3" value="48" />
      <LABEL index="4" value="64" />
      <LABEL index="5" value="80" />
      <LABEL index="6" value="96" />
      <LABEL index="7" value="112" />
      <LABEL index="8" value="128" />
      <LABEL index="9" value="144" />
      <LABEL index="10" value="160" />
      <LABEL index="11" value="176" />
      <LABEL index="12" value="192" />
      <LABEL index="13" value="208" />
      <LABEL index="14" value="224" />
      <LABEL index="15" value="240" />
      <LABEL index="16" value="256" />
      <LABEL index="17" value="272" />
      <LABEL index="18" value="288" />
      <LABEL index="19" value="304" />
      <LABEL index="20" value="320" />
      <LABEL index="21" value="336" />
      <LABEL index="22" value="352" />
      <LABEL index="23" value="368" />
      <LABEL index="24" value="384" />
      <LABEL index="25" value="400" />
      <LABEL index="26" value="416" />
      <LABEL index="27" value="432" />
      <LABEL index="28" value="448" />
      <LABEL index="29" value="464" />
      <LABEL index="30" value="480" />
      <LABEL index="31" value="496" />
      <LABEL index="32" value="512" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2E524" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>3</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X*0.0078125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4E" flags="0x30">
    <title>Idle Underspeed Spark vs. RPM Error (In Gear)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark added when idle rpm is below desired, by rpm error, while the transmission is in gear. Placed by code layout; under / over role confirmed by the sign of the values, In Gear vs Park/Neutral by layout order only. Scaled by Idle Underspeed Spark Gain vs Coolant. Evidence: ledger:E0150, ledger:E0161, ledger:E0196, ledger:E0288, ledger:E0936</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm error (x0.75 in most modes)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="16" />
      <LABEL index="2" value="32" />
      <LABEL index="3" value="48" />
      <LABEL index="4" value="64" />
      <LABEL index="5" value="80" />
      <LABEL index="6" value="96" />
      <LABEL index="7" value="112" />
      <LABEL index="8" value="128" />
      <LABEL index="9" value="144" />
      <LABEL index="10" value="160" />
      <LABEL index="11" value="176" />
      <LABEL index="12" value="192" />
      <LABEL index="13" value="208" />
      <LABEL index="14" value="224" />
      <LABEL index="15" value="240" />
      <LABEL index="16" value="256" />
      <LABEL index="17" value="272" />
      <LABEL index="18" value="288" />
      <LABEL index="19" value="304" />
      <LABEL index="20" value="320" />
      <LABEL index="21" value="336" />
      <LABEL index="22" value="352" />
      <LABEL index="23" value="368" />
      <LABEL index="24" value="384" />
      <LABEL index="25" value="400" />
      <LABEL index="26" value="416" />
      <LABEL index="27" value="432" />
      <LABEL index="28" value="448" />
      <LABEL index="29" value="464" />
      <LABEL index="30" value="480" />
      <LABEL index="31" value="496" />
      <LABEL index="32" value="512" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2E56C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>3</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X*0.0078125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4F" flags="0x30">
    <title>Idle Overspeed Spark vs. RPM Error (In Gear)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark removed when idle rpm is above desired, by rpm error, while the transmission is in gear. Placed by code layout; under / over role confirmed by the sign of the values, In Gear vs Park/Neutral by layout order only. Scaled by Idle Overspeed Spark / Droop Airflow Gain vs Coolant. Evidence: ledger:E0150, ledger:E0161, ledger:E0196, ledger:E0288</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm error (x0.75 in most modes)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="16" />
      <LABEL index="2" value="32" />
      <LABEL index="3" value="48" />
      <LABEL index="4" value="64" />
      <LABEL index="5" value="80" />
      <LABEL index="6" value="96" />
      <LABEL index="7" value="112" />
      <LABEL index="8" value="128" />
      <LABEL index="9" value="144" />
      <LABEL index="10" value="160" />
      <LABEL index="11" value="176" />
      <LABEL index="12" value="192" />
      <LABEL index="13" value="208" />
      <LABEL index="14" value="224" />
      <LABEL index="15" value="240" />
      <LABEL index="16" value="256" />
      <LABEL index="17" value="272" />
      <LABEL index="18" value="288" />
      <LABEL index="19" value="304" />
      <LABEL index="20" value="320" />
      <LABEL index="21" value="336" />
      <LABEL index="22" value="352" />
      <LABEL index="23" value="368" />
      <LABEL index="24" value="384" />
      <LABEL index="25" value="400" />
      <LABEL index="26" value="416" />
      <LABEL index="27" value="432" />
      <LABEL index="28" value="448" />
      <LABEL index="29" value="464" />
      <LABEL index="30" value="480" />
      <LABEL index="31" value="496" />
      <LABEL index="32" value="512" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2E5B4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>3</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X*0.0078125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x50" flags="0x30">
    <title>Force motor (PCS) current vs commanded line pressure - used while pressure RISING</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Evidence: ledger:E0050, ledger:E0059, ledger:E0124, ledger:E0125, ledger:E0135, ledger:E0168, ledger:E0174</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>kPa (commanded line pressure)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="40" />
      <LABEL index="2" value="80" />
      <LABEL index="3" value="120" />
      <LABEL index="4" value="160" />
      <LABEL index="5" value="200" />
      <LABEL index="6" value="240" />
      <LABEL index="7" value="280" />
      <LABEL index="8" value="320" />
      <LABEL index="9" value="360" />
      <LABEL index="10" value="400" />
      <LABEL index="11" value="440" />
      <LABEL index="12" value="480" />
      <LABEL index="13" value="520" />
      <LABEL index="14" value="560" />
      <LABEL index="15" value="600" />
      <LABEL index="16" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>degC (trans fluid)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3DF4F" mmedelementsizebits="8" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>A</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>1.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x51" flags="0x30">
    <title>Shift Speed vs TPS - Normal</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Each row is [COUNT u16 = 17][17 speeds]; COUNT is a structure word - never edit it (E0176). Vehicle speed at which each up/downshift is scheduled vs throttle, Normal schedule. 311 mph = shift inhibited at that throttle. Live 2026-09-23: shifts occurred at speeds consistent with this table (8/8 upshifts, 1 coast-down 2-1 at 7.0 vs 6.8 mph). Run through the PCM&#x27;s own pedal-to-shift chain, that drive&#x27;s upshifts land within 2 mph on average, against 4 mph if throttle is ignored. Axis = the PCM&#x27;s shift throttle: driver throttle-area demand above idle through a curve, close to throttle % above idle. The PCM uses the Normal schedules in ordinary driving: not in hot transmission mode, cruise or 4-Lo. Effect: raise = hold gears longer; keep each downshift below its upshift (hysteresis) Evidence: ledger:E0176, ledger:E0208, ledger:E0213, ledger:E0268, ledger:E0269, ledger:E0270,...</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="37" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="87" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2 up" />
      <LABEL index="1" value="2-3 up" />
      <LABEL index="2" value="3-4 up" />
      <LABEL index="3" value="2-1 down" />
      <LABEL index="4" value="3-2 down" />
      <LABEL index="5" value="4-3 down" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x392A4" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x52" flags="0x30">
    <title>Shift Speed vs TPS - Hot Transmission</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 speeds]; COUNT is a structure word - never edit it (E0176). Vehicle speed at which each up/downshift is scheduled vs throttle, Hot Transmission schedule. 311 mph = shift inhibited at that throttle. Axis = the PCM&#x27;s shift throttle: driver throttle-area demand above idle through a curve, close to throttle % above idle. The PCM uses the Hot schedules while hot transmission mode is on; hot mode takes priority over cruise and 4-Lo. Effect: raise = hold gears longer; keep each downshift below its upshift (hysteresis) Evidence: ledger:E0176, ledger:E0208, ledger:E0269, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="37" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="87" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2 up" />
      <LABEL index="1" value="2-3 up" />
      <LABEL index="2" value="3-4 up" />
      <LABEL index="3" value="2-1 down" />
      <LABEL index="4" value="3-2 down" />
      <LABEL index="5" value="4-3 down" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x393C4" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x53" flags="0x30">
    <title>Shift Speed vs TPS - Cruise</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 speeds]; COUNT is a structure word - never edit it (E0176). Vehicle speed at which each up/downshift is scheduled vs throttle, Cruise schedule. 311 mph = shift inhibited at that throttle. Axis = the PCM&#x27;s shift throttle: driver throttle-area demand above idle through a curve, close to throttle % above idle. The PCM uses the Cruise schedules while cruise control is engaged; cruise takes priority over 4-Lo. Effect: raise = hold gears longer; keep each downshift below its upshift (hysteresis) Evidence: ledger:E0176, ledger:E0208, ledger:E0269, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="37" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="87" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2 up" />
      <LABEL index="1" value="2-3 up" />
      <LABEL index="2" value="3-4 up" />
      <LABEL index="3" value="2-1 down" />
      <LABEL index="4" value="3-2 down" />
      <LABEL index="5" value="4-3 down" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3953E" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x54" flags="0x30">
    <title>Shift Speed vs TPS - 4-Lo</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 speeds]; COUNT is a structure word - never edit it (E0176). Vehicle speed at which each up/downshift is scheduled vs throttle, 4-Lo schedule. 311 mph = shift inhibited at that throttle. Axis = the PCM&#x27;s shift throttle: driver throttle-area demand above idle through a curve, close to throttle % above idle. The PCM uses these schedules while the transfer case is in 4-Lo (named Performance before v3.7; the stock calibration has no separate performance mode). In 4-Lo the transmission&#x27;s speed reading is 4.03 times road speed (it is worked out from transmission output speed with the high-range ratio), so a value of 40 km/h here acts at about 10 km/h on the road. Effect: raise = hold gears longer; keep each downshift below its upshift (hysteresis) Evidence: ledger:E0176, ledger:E0208, ledger:E0269, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="37" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="87" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2 up" />
      <LABEL index="1" value="2-3 up" />
      <LABEL index="2" value="3-4 up" />
      <LABEL index="3" value="2-1 down" />
      <LABEL index="4" value="3-2 down" />
      <LABEL index="5" value="4-3 down" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3964C" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x55" flags="0x30">
    <title>TCC Apply/Release Speed vs TPS - Normal</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 speeds]; COUNT is a structure word - never edit it (E0177). Vehicle speed above which the torque converter clutch applies / below which it releases, per gear vs throttle, Normal mode. 311/308 mph = never. Axis = the PCM&#x27;s shift throttle: driver throttle-area demand above idle through a curve, close to throttle % above idle. The PCM uses the Normal schedules in ordinary driving: not in hot transmission mode, cruise or 4-Lo. Effect: keep release below apply (hysteresis); lower apply = earlier lockup Evidence: ledger:E0177, ledger:E0208, ledger:E0269, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="37" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="87" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2nd Apply" />
      <LABEL index="1" value="3rd Apply" />
      <LABEL index="2" value="4th Apply" />
      <LABEL index="3" value="2nd Release" />
      <LABEL index="4" value="3rd Release" />
      <LABEL index="5" value="4th Release" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3D7B4" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x56" flags="0x30">
    <title>TCC Apply/Release Speed vs TPS - Hot Transmission</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 speeds]; COUNT is a structure word - never edit it (E0177). Vehicle speed above which the torque converter clutch applies / below which it releases, per gear vs throttle, Hot Transmission mode. 311/308 mph = never. Axis = the PCM&#x27;s shift throttle: driver throttle-area demand above idle through a curve, close to throttle % above idle. The PCM uses the Hot schedules while hot transmission mode is on; hot mode takes priority over cruise and 4-Lo. Effect: keep release below apply (hysteresis); lower apply = earlier lockup Evidence: ledger:E0177, ledger:E0208, ledger:E0269, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="37" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="87" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2nd Apply" />
      <LABEL index="1" value="3rd Apply" />
      <LABEL index="2" value="4th Apply" />
      <LABEL index="3" value="2nd Release" />
      <LABEL index="4" value="3rd Release" />
      <LABEL index="5" value="4th Release" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3D670" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x57" flags="0x30">
    <title>TCC Apply/Release Speed vs TPS - Cruise</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 speeds]; COUNT is a structure word - never edit it (E0177). Vehicle speed above which the torque converter clutch applies / below which it releases, per gear vs throttle, Cruise mode. 311/308 mph = never. Axis = the PCM&#x27;s shift throttle: driver throttle-area demand above idle through a curve, close to throttle % above idle. The PCM uses the Cruise schedules while cruise control is engaged; cruise takes priority over 4-Lo. Effect: keep release below apply (hysteresis); lower apply = earlier lockup Evidence: ledger:E0177, ledger:E0208, ledger:E0269, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="37" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="87" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2nd Apply" />
      <LABEL index="1" value="3rd Apply" />
      <LABEL index="2" value="4th Apply" />
      <LABEL index="3" value="2nd Release" />
      <LABEL index="4" value="3rd Release" />
      <LABEL index="5" value="4th Release" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3D940" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x58" flags="0x30">
    <title>TCC Apply/Release Speed vs TPS - 4-Lo</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 speeds]; COUNT is a structure word - never edit it (E0177). Vehicle speed above which the torque converter clutch applies / below which it releases, per gear vs throttle, 4-Lo. 311/308 mph = never. Axis = the PCM&#x27;s shift throttle: driver throttle-area demand above idle through a curve, close to throttle % above idle. The PCM uses these schedules while the transfer case is in 4-Lo (named Performance before v3.7; the stock calibration has no separate performance mode). In 4-Lo the transmission&#x27;s speed reading is 4.03 times road speed (it is worked out from transmission output speed with the high-range ratio), so a value of 40 km/h here acts at about 10 km/h on the road. Effect: keep release below apply (hysteresis); lower apply = earlier lockup Evidence: ledger:E0177, ledger:E0208, ledger:E0269, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="37" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="87" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2nd Apply" />
      <LABEL index="1" value="3rd Apply" />
      <LABEL index="2" value="4th Apply" />
      <LABEL index="3" value="2nd Release" />
      <LABEL index="4" value="3rd Release" />
      <LABEL index="5" value="4th Release" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3DA84" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x59" flags="0x30">
    <title>DFCO Entry Spark</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark used on entry to decel fuel cut-off, vs airmass and rpm. Every cell is 0 deg on the stock H3 (not used by this calibration) (E0178). Effect: stock H3 = 0 everywhere; leave as is Evidence: ledger:E0178, ledger:E0210, ledger:E0213, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="256" />
      <LABEL index="2" value="512" />
      <LABEL index="3" value="768" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1280" />
      <LABEL index="6" value="1536" />
      <LABEL index="7" value="1792" />
      <LABEL index="8" value="2048" />
      <LABEL index="9" value="2304" />
      <LABEL index="10" value="2560" />
      <LABEL index="11" value="2816" />
      <LABEL index="12" value="3072" />
      <LABEL index="13" value="3328" />
      <LABEL index="14" value="3584" />
      <LABEL index="15" value="3840" />
      <LABEL index="16" value="4096" />
      <LABEL index="17" value="4352" />
      <LABEL index="18" value="4608" />
      <LABEL index="19" value="4864" />
      <LABEL index="20" value="5120" />
      <LABEL index="21" value="5376" />
      <LABEL index="22" value="5632" />
      <LABEL index="23" value="5888" />
      <LABEL index="24" value="6144" />
      <LABEL index="25" value="6400" />
      <LABEL index="26" value="6656" />
      <LABEL index="27" value="6912" />
      <LABEL index="28" value="7168" />
      <LABEL index="29" value="7424" />
      <LABEL index="30" value="7680" />
      <LABEL index="31" value="7936" />
      <LABEL index="32" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>g/cyl</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.08" />
      <LABEL index="1" value="0.12" />
      <LABEL index="2" value="0.16" />
      <LABEL index="3" value="0.20" />
      <LABEL index="4" value="0.24" />
      <LABEL index="5" value="0.28" />
      <LABEL index="6" value="0.32" />
      <LABEL index="7" value="0.36" />
      <LABEL index="8" value="0.40" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2EEAD" mmedelementsizebits="8" mmedrowcount="9" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>1</decimalpl>
      <min>-64.000000</min>
      <max>63.500000</max>
      <MATH equation="X*0.5"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5A" flags="0x30">
    <title>Misfire Detection Threshold - Cylinder Mode</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor, cylinder mode: the PCM times each crank segment (one cylinder&#x27;s share of rotation) and looks at how far one segment departs from the trend of its neighbours (a third difference of consecutive segment times). A departure at or above this many microseconds is taken as a misfire of that cylinder. Rows are load (0 to 100 %), columns engine speed (400 to 7000 rpm); the value is interpolated. A raw value of 32767 (16000 us) in a cell or its neighbours switches this mode off there. Stock uses cylinder mode from 400 to below 1200 rpm and revolution mode from 1200 to below 6500 rpm. Effect: lower = smaller crank speed disturbances are counted as misfires (more sensitive) Evidence: ledger:E0179, ledger:E0196, ledger:E0213, ledger:E0218, ledger:E0272, ledger:E0936, ledger:E1075</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>26</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="500" />
      <LABEL index="2" value="600" />
      <LABEL index="3" value="700" />
      <LABEL index="4" value="800" />
      <LABEL index="5" value="900" />
      <LABEL index="6" value="1000" />
      <LABEL index="7" value="1100" />
      <LABEL index="8" value="1200" />
      <LABEL index="9" value="1400" />
      <LABEL index="10" value="1600" />
      <LABEL index="11" value="1800" />
      <LABEL index="12" value="2000" />
      <LABEL index="13" value="2200" />
      <LABEL index="14" value="2400" />
      <LABEL index="15" value="2600" />
      <LABEL index="16" value="2800" />
      <LABEL index="17" value="3000" />
      <LABEL index="18" value="3500" />
      <LABEL index="19" value="4000" />
      <LABEL index="20" value="4500" />
      <LABEL index="21" value="5000" />
      <LABEL index="22" value="5500" />
      <LABEL index="23" value="6000" />
      <LABEL index="24" value="6500" />
      <LABEL index="25" value="7000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>% load</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6" />
      <LABEL index="2" value="12" />
      <LABEL index="3" value="19" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31" />
      <LABEL index="6" value="37" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="56" />
      <LABEL index="10" value="62" />
      <LABEL index="11" value="69" />
      <LABEL index="12" value="75" />
      <LABEL index="13" value="81" />
      <LABEL index="14" value="87" />
      <LABEL index="15" value="94" />
      <LABEL index="16" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x361B6" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="26" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>us</units>
      <decimalpl>1</decimalpl>
      <min>-16000.000000</min>
      <max>15999.511719</max>
      <MATH equation="X/2.048"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5B" flags="0x30">
    <title>Misfire Detection Threshold - Revolution Mode</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor, revolution mode (used at higher engine speed): a combined measure of crank segment time disturbance across a revolution, in microseconds of segment time. A value at or above this threshold is taken as a misfire. Rows are load (0 to 100 %), columns engine speed (400 to 7000 rpm); the value is interpolated. A raw value of 32767 (16000 us) in a cell or its neighbours switches this mode off there. Stock uses cylinder mode from 400 to below 1200 rpm and revolution mode from 1200 to below 6500 rpm. Effect: lower = smaller crank speed disturbances are counted as misfires (more sensitive) Evidence: ledger:E0179, ledger:E0196, ledger:E0213, ledger:E0218, ledger:E0260, ledger:E0936, ledger:E1075</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>26</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="500" />
      <LABEL index="2" value="600" />
      <LABEL index="3" value="700" />
      <LABEL index="4" value="800" />
      <LABEL index="5" value="900" />
      <LABEL index="6" value="1000" />
      <LABEL index="7" value="1100" />
      <LABEL index="8" value="1200" />
      <LABEL index="9" value="1400" />
      <LABEL index="10" value="1600" />
      <LABEL index="11" value="1800" />
      <LABEL index="12" value="2000" />
      <LABEL index="13" value="2200" />
      <LABEL index="14" value="2400" />
      <LABEL index="15" value="2600" />
      <LABEL index="16" value="2800" />
      <LABEL index="17" value="3000" />
      <LABEL index="18" value="3500" />
      <LABEL index="19" value="4000" />
      <LABEL index="20" value="4500" />
      <LABEL index="21" value="5000" />
      <LABEL index="22" value="5500" />
      <LABEL index="23" value="6000" />
      <LABEL index="24" value="6500" />
      <LABEL index="25" value="7000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>% load</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6" />
      <LABEL index="2" value="12" />
      <LABEL index="3" value="19" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31" />
      <LABEL index="6" value="37" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="56" />
      <LABEL index="10" value="62" />
      <LABEL index="11" value="69" />
      <LABEL index="12" value="75" />
      <LABEL index="13" value="81" />
      <LABEL index="14" value="87" />
      <LABEL index="15" value="94" />
      <LABEL index="16" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3652E" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="26" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>us</units>
      <decimalpl>1</decimalpl>
      <min>-16000.000000</min>
      <max>15999.511719</max>
      <MATH equation="X/2.048"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5C" flags="0x30">
    <title>WOT Shift Speed - Normal</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 values]; COUNT is a structure word - never edit it (E0180). Speed-based shift points used in the WOT mode of the Normal schedule (flat over throttle). 311 mph = no speed-based shift. (E0180) The PCM reads only the 100 column: this lookup runs at a fixed full-throttle input, so editing the 0 column has no effect (E0269). The PCM uses the Normal schedules in ordinary driving: not in hot transmission mode, cruise or 4-Lo. The wide-open-throttle set applies while pedal demand is above the high pedal set point (stock 96.9 %, 56.3 % in 4-Lo, 99 % with cruise engaged). Effect: WOT shift behaviour - change in small steps Evidence: ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2 up" />
      <LABEL index="1" value="2-3 up" />
      <LABEL index="2" value="3-4 up" />
      <LABEL index="3" value="2-1 down" />
      <LABEL index="4" value="3-2 down" />
      <LABEL index="5" value="4-3 down" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x39508" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5D" flags="0x30">
    <title>TCC WOT Apply/Release Speed - Normal</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 values]; COUNT is a structure word - never edit it (E0180). TCC apply/release speeds in the WOT mode of the Normal schedule. 311/308 mph = never. Axis = the PCM&#x27;s shift throttle: driver throttle-area demand above idle through a curve, close to throttle % above idle. The PCM uses the Normal schedules in ordinary driving: not in hot transmission mode, cruise or 4-Lo. The wide-open-throttle set applies while pedal demand is above the high pedal set point (stock 96.9 %, 56.3 % in 4-Lo, 99 % with cruise engaged). Effect: WOT shift behaviour - change in small steps Evidence: ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2nd Apply" />
      <LABEL index="1" value="3rd Apply" />
      <LABEL index="2" value="4th Apply" />
      <LABEL index="3" value="2nd Release" />
      <LABEL index="4" value="3rd Release" />
      <LABEL index="5" value="4th Release" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3D790" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5E" flags="0x30">
    <title>WOT Shift RPM - Normal</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 values]; COUNT is a structure word - never edit it (E0180). Engine rpm at which the WOT upshift is commanded, Normal schedule. (E0180) The PCM reads only the 100 column: this lookup runs at a fixed full-throttle input, so editing the 0 column has no effect (E0269). The PCM uses the Normal schedules in ordinary driving: not in hot transmission mode, cruise or 4-Lo. The wide-open-throttle set applies while pedal demand is above the high pedal set point (stock 96.9 %, 56.3 % in 4-Lo, 99 % with cruise engaged). Effect: WOT shift behaviour - change in small steps Evidence: ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3952C" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X*0.125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5F" flags="0x30">
    <title>WOT Shift Speed - Hot</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 values]; COUNT is a structure word - never edit it (E0180). Speed-based shift points used in the WOT mode of the Hot schedule (flat over throttle). 311 mph = no speed-based shift. (E0180) The PCM reads only the 100 column: this lookup runs at a fixed full-throttle input, so editing the 0 column has no effect (E0269). The PCM uses the Hot schedules while hot transmission mode is on; hot mode takes priority over cruise and 4-Lo. The wide-open-throttle set applies while pedal demand is above the high pedal set point (stock 96.9 %, 56.3 % in 4-Lo, 99 % with cruise engaged). Effect: WOT shift behaviour - change in small steps Evidence: ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2 up" />
      <LABEL index="1" value="2-3 up" />
      <LABEL index="2" value="3-4 up" />
      <LABEL index="3" value="2-1 down" />
      <LABEL index="4" value="3-2 down" />
      <LABEL index="5" value="4-3 down" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3949C" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x60" flags="0x30">
    <title>TCC WOT Apply/Release Speed - Hot</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 values]; COUNT is a structure word - never edit it (E0180). TCC apply/release speeds in the WOT mode of the Hot schedule. 311/308 mph = never. Axis = the PCM&#x27;s shift throttle: driver throttle-area demand above idle through a curve, close to throttle % above idle. The PCM uses the Hot schedules while hot transmission mode is on; hot mode takes priority over cruise and 4-Lo. The wide-open-throttle set applies while pedal demand is above the high pedal set point (stock 96.9 %, 56.3 % in 4-Lo, 99 % with cruise engaged). Effect: WOT shift behaviour - change in small steps Evidence: ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2nd Apply" />
      <LABEL index="1" value="3rd Apply" />
      <LABEL index="2" value="4th Apply" />
      <LABEL index="3" value="2nd Release" />
      <LABEL index="4" value="3rd Release" />
      <LABEL index="5" value="4th Release" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3D64C" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x61" flags="0x30">
    <title>WOT Shift RPM - Hot</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 values]; COUNT is a structure word - never edit it (E0180). Engine rpm at which the WOT upshift is commanded, Hot schedule. (E0180) The PCM reads only the 100 column: this lookup runs at a fixed full-throttle input, so editing the 0 column has no effect (E0269). The PCM uses the Hot schedules while hot transmission mode is on; hot mode takes priority over cruise and 4-Lo. The wide-open-throttle set applies while pedal demand is above the high pedal set point (stock 96.9 %, 56.3 % in 4-Lo, 99 % with cruise engaged). Effect: WOT shift behaviour - change in small steps Evidence: ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x394C0" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X*0.125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x62" flags="0x30">
    <title>WOT Shift Speed - 4-Lo</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 values]; COUNT is a structure word - never edit it (E0180). Speed-based shift points used in the WOT mode of the 4-Lo schedule (flat over throttle). 311 mph = no speed-based shift. (E0180) The PCM reads only the 100 column: this lookup runs at a fixed full-throttle input, so editing the 0 column has no effect (E0269). The PCM uses these schedules while the transfer case is in 4-Lo (named Performance before v3.7; the stock calibration has no separate performance mode). The wide-open-throttle set applies while pedal demand is above the high pedal set point (stock 96.9 %, 56.3 % in 4-Lo, 99 % with cruise engaged). In 4-Lo the transmission&#x27;s speed reading is 4.03 times road speed (it is worked out from transmission output speed with the high-range ratio), so a value of 40 km/h here acts at about 10 km/h on the road. Effect: WOT shift behaviour - change in...</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2 up" />
      <LABEL index="1" value="2-3 up" />
      <LABEL index="2" value="3-4 up" />
      <LABEL index="3" value="2-1 down" />
      <LABEL index="4" value="3-2 down" />
      <LABEL index="5" value="4-3 down" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x39724" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x63" flags="0x30">
    <title>TCC WOT Apply/Release Speed - 4-Lo</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 values]; COUNT is a structure word - never edit it (E0180). TCC apply/release speeds in the WOT mode of the 4-Lo schedule. 311/308 mph = never. Axis = the PCM&#x27;s shift throttle: driver throttle-area demand above idle through a curve, close to throttle % above idle. The PCM uses these schedules while the transfer case is in 4-Lo (named Performance before v3.7; the stock calibration has no separate performance mode). The wide-open-throttle set applies while pedal demand is above the high pedal set point (stock 96.9 %, 56.3 % in 4-Lo, 99 % with cruise engaged). In 4-Lo the transmission&#x27;s speed reading is 4.03 times road speed (it is worked out from transmission output speed with the high-range ratio), so a value of 40 km/h here acts at about 10 km/h on the road. Effect: WOT shift behaviour - change in small steps Evidence: ledger:E0180, ledger:E0208,...</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2nd Apply" />
      <LABEL index="1" value="3rd Apply" />
      <LABEL index="2" value="4th Apply" />
      <LABEL index="3" value="2nd Release" />
      <LABEL index="4" value="3rd Release" />
      <LABEL index="5" value="4th Release" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3DA60" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x64" flags="0x30">
    <title>WOT Shift RPM - 4-Lo</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 values]; COUNT is a structure word - never edit it (E0180). Engine rpm at which the WOT upshift is commanded, 4-Lo schedule. (E0180) The PCM reads only the 100 column: this lookup runs at a fixed full-throttle input, so editing the 0 column has no effect (E0269). The PCM uses these schedules while the transfer case is in 4-Lo (named Performance before v3.7; the stock calibration has no separate performance mode). The wide-open-throttle set applies while pedal demand is above the high pedal set point (stock 96.9 %, 56.3 % in 4-Lo, 99 % with cruise engaged). Effect: WOT shift behaviour - change in small steps Evidence: ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x39748" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X*0.125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x65" flags="0x30">
    <title>Fuel Cutoff RPM (P/N) vs Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-speed fuel cut-off in Park/Neutral vs engine temperature (ECT blended toward IAT when cold). Stock H3 5000 rpm flat (E0181). Effect: P/N rev limit; raise with care Evidence: ledger:E0168, ledger:E0181, ledger:E0213, ledger:E0260</description>
    <CATEGORYMEM index="0" category="5" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (ECT blended toward IAT when cold)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x233CE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x66" flags="0x30">
    <title>Closed Loop Enable Coolant vs Startup Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant temperature needed before closed loop is allowed, vs coolant at start-up. Stock H3 70 C (cold start) .. 55 C (E0184) Effect: raise = later closed loop Evidence: ledger:E0184, ledger:E0210, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (startup coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x28906" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x67" flags="0x30">
    <title>Closed Loop Enable Delay vs Startup Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Run time before closed loop is allowed, vs coolant at start-up. Stock H3 60 s cold .. 3 s warm (E0184) Effect: raise = later closed loop Evidence: ledger:E0184, ledger:E0210, ledger:E0213, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (startup coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x288E2" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x68" flags="0x30">
    <title>Knock Retard Recovery Rate vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time step for giving back knock retard, vs rpm. Stock H3 0.5 s below 1200 rpm, 0.4 s above (E0184) Effect: shorter = faster recovery of timing after knock Evidence: ledger:E0184, ledger:E0210, ledger:E0213, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="400" />
      <LABEL index="2" value="800" />
      <LABEL index="3" value="1200" />
      <LABEL index="4" value="1600" />
      <LABEL index="5" value="2000" />
      <LABEL index="6" value="2400" />
      <LABEL index="7" value="2800" />
      <LABEL index="8" value="3200" />
      <LABEL index="9" value="3600" />
      <LABEL index="10" value="4000" />
      <LABEL index="11" value="4400" />
      <LABEL index="12" value="4800" />
      <LABEL index="13" value="5200" />
      <LABEL index="14" value="5600" />
      <LABEL index="15" value="6000" />
      <LABEL index="16" value="6400" />
      <LABEL index="17" value="6800" />
      <LABEL index="18" value="7200" />
      <LABEL index="19" value="7600" />
      <LABEL index="20" value="8000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A63E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x69" flags="0x30">
    <title>Minimum Dwell Time Mult vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplier giving the minimum allowed coil dwell, vs rpm. Stock H3 0.8 flat (E0184) Effect: leave stock Evidence: ledger:E0184, ledger:E0210, ledger:E0213, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2F3D2" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>x</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x6A" flags="0x30">
    <title>PE/COT Spark Advance Correction vs RPM vs EQ</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark added while Power Enrichment / catalyst over-temp enrichment is active, vs rpm and commanded EQ. Stock H3 0..5 deg (E0185) Effect: more = more timing when rich Evidence: ledger:E0185, ledger:E0210, ledger:E0213, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>10</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="800" />
      <LABEL index="1" value="1600" />
      <LABEL index="2" value="2400" />
      <LABEL index="3" value="3200" />
      <LABEL index="4" value="4000" />
      <LABEL index="5" value="4800" />
      <LABEL index="6" value="5600" />
      <LABEL index="7" value="6400" />
      <LABEL index="8" value="7200" />
      <LABEL index="9" value="8000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>11</indexcount>
      <units>EQ ratio</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1.00" />
      <LABEL index="1" value="1.05" />
      <LABEL index="2" value="1.10" />
      <LABEL index="3" value="1.15" />
      <LABEL index="4" value="1.20" />
      <LABEL index="5" value="1.25" />
      <LABEL index="6" value="1.30" />
      <LABEL index="7" value="1.35" />
      <LABEL index="8" value="1.40" />
      <LABEL index="9" value="1.45" />
      <LABEL index="10" value="1.50" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2D5D5" mmedelementsizebits="8" mmedrowcount="11" mmedcolcount="10" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>1</decimalpl>
      <min>-64.000000</min>
      <max>63.500000</max>
      <MATH equation="X*0.5"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x6B" flags="0x30">
    <title>Idle Coastdown Spark vs RPM vs Airmass</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark used while coasting down toward idle, vs rpm and cylinder airmass. Stock H3 10..27 deg (E0185) Effect: affects decel feel / stall resistance Evidence: ledger:E0185, ledger:E0213, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="256" />
      <LABEL index="2" value="512" />
      <LABEL index="3" value="768" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1280" />
      <LABEL index="6" value="1536" />
      <LABEL index="7" value="1792" />
      <LABEL index="8" value="2048" />
      <LABEL index="9" value="2304" />
      <LABEL index="10" value="2560" />
      <LABEL index="11" value="2816" />
      <LABEL index="12" value="3072" />
      <LABEL index="13" value="3328" />
      <LABEL index="14" value="3584" />
      <LABEL index="15" value="3840" />
      <LABEL index="16" value="4096" />
      <LABEL index="17" value="4352" />
      <LABEL index="18" value="4608" />
      <LABEL index="19" value="4864" />
      <LABEL index="20" value="5120" />
      <LABEL index="21" value="5376" />
      <LABEL index="22" value="5632" />
      <LABEL index="23" value="5888" />
      <LABEL index="24" value="6144" />
      <LABEL index="25" value="6400" />
      <LABEL index="26" value="6656" />
      <LABEL index="27" value="6912" />
      <LABEL index="28" value="7168" />
      <LABEL index="29" value="7424" />
      <LABEL index="30" value="7680" />
      <LABEL index="31" value="7936" />
      <LABEL index="32" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>g/cyl</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.08" />
      <LABEL index="1" value="0.12" />
      <LABEL index="2" value="0.16" />
      <LABEL index="3" value="0.2" />
      <LABEL index="4" value="0.24" />
      <LABEL index="5" value="0.28" />
      <LABEL index="6" value="0.32" />
      <LABEL index="7" value="0.36" />
      <LABEL index="8" value="0.4" />
      <LABEL index="9" value="0.44" />
      <LABEL index="10" value="0.48" />
      <LABEL index="11" value="0.52" />
      <LABEL index="12" value="0.56" />
      <LABEL index="13" value="0.6" />
      <LABEL index="14" value="0.64" />
      <LABEL index="15" value="0.68" />
      <LABEL index="16" value="0.72" />
      <LABEL index="17" value="0.76" />
      <LABEL index="18" value="0.8" />
      <LABEL index="19" value="0.84" />
      <LABEL index="20" value="0.88" />
      <LABEL index="21" value="0.92" />
      <LABEL index="22" value="0.96" />
      <LABEL index="23" value="1" />
      <LABEL index="24" value="1.04" />
      <LABEL index="25" value="1.08" />
      <LABEL index="26" value="1.12" />
      <LABEL index="27" value="1.16" />
      <LABEL index="28" value="1.2" />
      <LABEL index="29" value="1.24" />
      <LABEL index="30" value="1.28" />
      <LABEL index="31" value="1.32" />
      <LABEL index="32" value="1.36" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2E6CD" mmedelementsizebits="8" mmedrowcount="33" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>1</decimalpl>
      <min>-64.000000</min>
      <max>63.500000</max>
      <MATH equation="X*0.5"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x6C" flags="0x30">
    <title>DFCO Enable TPS vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Throttle must be below this for decel fuel cut-off to enable. Stock H3 0.15 % (E0187) Effect: decel fuel cut-off behaviour Evidence: ledger:E0187, ledger:E0197, ledger:E0213, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2ED8C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.003052</max>
      <MATH equation="X/327.67"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x6D" flags="0x30">
    <title>DFCO Disable TPS vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Throttle above this ends decel fuel cut-off. Stock H3 0.30 % (E0187) Effect: decel fuel cut-off behaviour Evidence: ledger:E0187, ledger:E0197, ledger:E0213, ledger:E0260</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2EDB0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.003052</max>
      <MATH equation="X/327.67"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x6E" flags="0x30">
    <title>DFCO Enable CylAir vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 values]; COUNT is a structure word - never edit it (E0187). Cylinder airmass must be below this for DFCO to enable (two rows, picked by a flag). Stock H3 0.19 -&gt; 0.09 g Effect: decel fuel cut-off behaviour Evidence: ledger:E0187, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="512" />
      <LABEL index="3" value="1024" />
      <LABEL index="4" value="1536" />
      <LABEL index="5" value="2048" />
      <LABEL index="6" value="2560" />
      <LABEL index="7" value="3072" />
      <LABEL index="8" value="3584" />
      <LABEL index="9" value="4096" />
      <LABEL index="10" value="4608" />
      <LABEL index="11" value="5120" />
      <LABEL index="12" value="5632" />
      <LABEL index="13" value="6144" />
      <LABEL index="14" value="6656" />
      <LABEL index="15" value="7168" />
      <LABEL index="16" value="7680" />
      <LABEL index="17" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="row 0" />
      <LABEL index="1" value="row 1" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2EDD2" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g/cyl</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8.191875</max>
      <MATH equation="X/8000"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x6F" flags="0x30">
    <title>DFCO Disable CylAir vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 values]; COUNT is a structure word - never edit it (E0187). Cylinder airmass above this ends DFCO (two rows, picked by a flag). Stock H3 0.21 -&gt; 0.11 g Effect: decel fuel cut-off behaviour Evidence: ledger:E0187, ledger:E0260</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="512" />
      <LABEL index="3" value="1024" />
      <LABEL index="4" value="1536" />
      <LABEL index="5" value="2048" />
      <LABEL index="6" value="2560" />
      <LABEL index="7" value="3072" />
      <LABEL index="8" value="3584" />
      <LABEL index="9" value="4096" />
      <LABEL index="10" value="4608" />
      <LABEL index="11" value="5120" />
      <LABEL index="12" value="5632" />
      <LABEL index="13" value="6144" />
      <LABEL index="14" value="6656" />
      <LABEL index="15" value="7168" />
      <LABEL index="16" value="7680" />
      <LABEL index="17" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="row 0" />
      <LABEL index="1" value="row 1" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2EE1A" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g/cyl</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8.191875</max>
      <MATH equation="X/8000"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x70" flags="0x30">
    <title>DFCO Enable Speed vs Gear</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Vehicle speed needed for DFCO to enable, per gear. Stock H3 18.6 mph (1-3) / 49.7 mph (4-6) (E0187) Indexed by transmission state: cells 1st-4th are the gears, 5th/6th unused on the 4L60-E (E0271). Effect: decel fuel cut-off behaviour Evidence: ledger:E0187, ledger:E0211, ledger:E0271</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>6</indexcount>
      <units>gear (in-gear trans state 0..5)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1st" />
      <LABEL index="1" value="2nd" />
      <LABEL index="2" value="3rd" />
      <LABEL index="3" value="4th" />
      <LABEL index="4" value="5th" />
      <LABEL index="5" value="6th" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2EE6A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="6" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x71" flags="0x30">
    <title>DFCO Disable Speed vs Gear</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Vehicle speed below which DFCO ends, per gear. Stock H3 17.4 mph (1-3) / 38.5 mph (4-6) (E0187) Indexed by transmission state: cells 1st-4th are the gears, 5th/6th unused on the 4L60-E (E0271). Effect: decel fuel cut-off behaviour Evidence: ledger:E0187, ledger:E0211, ledger:E0271</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>6</indexcount>
      <units>gear (in-gear trans state 0..5)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1st" />
      <LABEL index="1" value="2nd" />
      <LABEL index="2" value="3rd" />
      <LABEL index="3" value="4th" />
      <LABEL index="4" value="5th" />
      <LABEL index="5" value="6th" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2EE76" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="6" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x72" flags="0x0">
    <title>Minimum ECT to allow DFCO</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Minimum ECT to allow DFCO (E0187) Evidence: ledger:E0187</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2EE82" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x73" flags="0x0">
    <title>Maximum ECT to disable DFCO</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Maximum ECT to disable DFCO (E0187) Evidence: ledger:E0187</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2EE84" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x74" flags="0x30">
    <title>Cam Phasing Region - RPM Boundaries</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine speeds that split the region-based exhaust cam phasing into four rpm bands. Stock 1350 / 1750 / 2150 rpm; the switch happens about 50 rpm past each edge. (Earlier releases described these as fuel-trim cell boundaries; the PCM uses them only for cam phasing regions.) Effect: moves the rpm edges of the cam phasing regions Evidence: ledger:E0744</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>edge</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1" />
      <LABEL index="1" value="2" />
      <LABEL index="2" value="3" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22CB8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x75" flags="0x30">
    <title>Cam Phasing Region - Throttle Boundaries per RPM Band</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Throttle edges that split each rpm band of the region-based exhaust cam phasing into four throttle bands (one row per rpm band). Stock 1.8 / 2.6 / 5.0 % below 1350 rpm up to 1.3 / 5.0 / 8.1 % above 2150 rpm; the switch happens about 0.15 % past each edge. (Earlier releases described these as fuel-trim cell boundaries; the PCM uses them only for cam phasing regions.) Effect: moves the throttle edges of the cam phasing regions Evidence: ledger:E0744</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>edge</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1" />
      <LABEL index="1" value="2" />
      <LABEL index="2" value="3" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>4</indexcount>
      <units>rpm band</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="below 1350" />
      <LABEL index="1" value="1350-1750" />
      <LABEL index="2" value="1750-2150" />
      <LABEL index="3" value="above 2150" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22CBE" mmedelementsizebits="16" mmedrowcount="4" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.003052</max>
      <MATH equation="X/327.67"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x76" flags="0x30">
    <title>Maximum Dwell Time Mult vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplier giving the maximum allowed coil dwell, vs rpm. Stock H3 1.35 flat (E0189) Effect: leave stock Evidence: ledger:E0189, ledger:E0210, ledger:E0213, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2F3F6" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>x</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x77" flags="0x0">
    <title>RPM Limit Hysteresis (Gear)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Rev-limiter hysteresis in gear. Stock H3 300 rpm (E0190) Evidence: ledger:E0190</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x23390" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x78" flags="0x0">
    <title>RPM Limit Hysteresis (Park/Neutral)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Rev-limiter hysteresis in Park/Neutral. Stock H3 300 rpm (E0190) Evidence: ledger:E0190</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x233F0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x79" flags="0x0">
    <title>LTFT Min ECT</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel-trim learning allowed above this coolant temp. Stock H3 40 C (E0190) Evidence: ledger:E0190</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x250EC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x7A" flags="0x0">
    <title>LTFT Max ECT</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel-trim learning allowed below this coolant temp. Stock H3 120 C (E0190) Evidence: ledger:E0190</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x250EE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x7B" flags="0x0">
    <title>Knock Learn Min MAP</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Octane/knock learning only above this MAP. Stock H3 55 kPa (E0191) Evidence: ledger:E0191</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A834" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x7C" flags="0x0">
    <title>Knock Learn Min RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Octane/knock learning only above this rpm. Stock H3 1125 rpm (E0191) Evidence: ledger:E0191</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A836" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x7D" flags="0x0">
    <title>Knock Learn Min Coolant Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Learning only above this coolant temp. Stock H3 56 C (E0191) Evidence: ledger:E0191</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A838" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x7E" flags="0x0">
    <title>Knock Learn Min IAT</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Learning only above this intake air temp. Stock H3 -32.5 C (E0191) Evidence: ledger:E0191</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A83A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x7F" flags="0x0">
    <title>A/C WOT Cut - Throttle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Wide-open-throttle A/C cut: the cut starts when throttle rises above this, while engine speed is below the cut RPM limit. Stock 100 % (never), and the cut is also turned off by its maximum time of 0. Effect: lower = the cut starts at less throttle Evidence: ledger:E0192, ledger:E0197, ledger:E1009</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x2032A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x80" flags="0x0">
    <title>A/C WOT Cut - Re-Enable Throttle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Wide-open-throttle A/C cut: the cut is released (after the release hold time) once throttle falls below this. Stock 100 %. Effect: lower = throttle must fall further before the compressor returns Evidence: ledger:E0192, ledger:E0197, ledger:E1009</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x2032C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x81" flags="0x0">
    <title>A/C WOT Cut - RPM Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Wide-open-throttle A/C cut: the cut only applies while engine speed is below this. Stock 6500 rpm. Effect: lower = the cut only applies at lower rpm Evidence: ledger:E0192, ledger:E1009</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x2032E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x82" flags="0x0">
    <title>A/C WOT Cut - RPM Limit Reset</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Wide-open-throttle A/C cut: once engine speed rises above this the cut no longer applies. Stock 6500 rpm. Effect: raise = the cut keeps applying to a higher rpm Evidence: ledger:E0192, ledger:E1009</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x20330" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x83" flags="0x30">
    <title>Trans Abuse Mode Torque Reduction Duration vs Trans Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT=17][TYPE=6][17 points]; COUNT and TYPE are structure bytes - never edit them (E0199). How long each stage of the abuse-mode torque cut is held, vs transmission temperature. The five rows are separate cases: first stage in forward ranges / in reverse, second stage after the first in forward ranges / in reverse, and second stage when the first is not active. Stock 1.0 / 1.0 / 0.6 / 0.6 / 0 s. Effect: abuse protection (e.g. neutral-to-drive at high rpm) Evidence: ledger:E0199, ledger:E0209, ledger:E0988</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>19</indexcount>
      <units>COUNT/TYPE + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="TYPE" />
      <LABEL index="2" value="-40" />
      <LABEL index="3" value="-28" />
      <LABEL index="4" value="-16" />
      <LABEL index="5" value="-4" />
      <LABEL index="6" value="8" />
      <LABEL index="7" value="20" />
      <LABEL index="8" value="32" />
      <LABEL index="9" value="44" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="68" />
      <LABEL index="12" value="80" />
      <LABEL index="13" value="92" />
      <LABEL index="14" value="104" />
      <LABEL index="15" value="116" />
      <LABEL index="16" value="128" />
      <LABEL index="17" value="140" />
      <LABEL index="18" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>5</indexcount>
      <units>case</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="first stage, forward ranges" />
      <LABEL index="1" value="first stage, reverse" />
      <LABEL index="2" value="second stage after the first, forward ranges" />
      <LABEL index="3" value="second stage after the first, reverse" />
      <LABEL index="4" value="second stage, first stage not active" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3EA42" mmedelementsizebits="8" mmedrowcount="5" mmedcolcount="19" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>6.375000</max>
      <MATH equation="X/40"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x84" flags="0x30">
    <title>Trans Abuse Mode Torque Reduction vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. [COUNT=17][TYPE=0][17 points]; COUNT and TYPE are structure bytes - never edit them (E0199). Torque cut applied in trans abuse mode, vs rpm. Stock H3 0 % to 1536 rpm, 50 % at 2048, 100 % from 2560 rpm (E0199) Effect: abuse protection Evidence: ledger:E0199, ledger:E0209, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>19</indexcount>
      <units>COUNT/TYPE + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="TYPE" />
      <LABEL index="2" value="0" />
      <LABEL index="3" value="512" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1536" />
      <LABEL index="6" value="2048" />
      <LABEL index="7" value="2560" />
      <LABEL index="8" value="3072" />
      <LABEL index="9" value="3584" />
      <LABEL index="10" value="4096" />
      <LABEL index="11" value="4608" />
      <LABEL index="12" value="5120" />
      <LABEL index="13" value="5632" />
      <LABEL index="14" value="6144" />
      <LABEL index="15" value="6656" />
      <LABEL index="16" value="7168" />
      <LABEL index="17" value="7680" />
      <LABEL index="18" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3EAA1" mmedelementsizebits="8" mmedrowcount="1" mmedcolcount="19" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>99.609375</max>
      <MATH equation="X/2.56"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x85" flags="0x0">
    <title>Maximum Line Pressure</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper clamp on commanded transmission line pressure. Stock H3 621 kPa (E0200) Effect: line-pressure ceiling - leave stock Evidence: ledger:E0200, ledger:E0241, ledger:E0989</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3E1E0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>4095.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x86" flags="0x30">
    <title>Fuel Cutoff RPM Reduction vs Run Time vs Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. RPM subtracted from the in-gear rev limit, vs engine run time and coolant (cold-start rev limiting). All 0 on the stock H3 (E0201) Effect: positive values lower the rev limit when cold / just started Evidence: ledger:E0201, ledger:E0213, ledger:E0218, ledger:E0260</description>
    <CATEGORYMEM index="0" category="5" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>s (engine run time)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="5.3" />
      <LABEL index="2" value="10.6" />
      <LABEL index="3" value="15.9" />
      <LABEL index="4" value="21.2" />
      <LABEL index="5" value="26.6" />
      <LABEL index="6" value="31.9" />
      <LABEL index="7" value="37.2" />
      <LABEL index="8" value="42.5" />
      <LABEL index="9" value="47.8" />
      <LABEL index="10" value="53.1" />
      <LABEL index="11" value="58.4" />
      <LABEL index="12" value="63.8" />
      <LABEL index="13" value="69.1" />
      <LABEL index="14" value="74.4" />
      <LABEL index="15" value="79.7" />
      <LABEL index="16" value="85.0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>degC (startup coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40.0" />
      <LABEL index="1" value="-29.4" />
      <LABEL index="2" value="-18.8" />
      <LABEL index="3" value="-8.1" />
      <LABEL index="4" value="2.5" />
      <LABEL index="5" value="13.1" />
      <LABEL index="6" value="23.8" />
      <LABEL index="7" value="34.4" />
      <LABEL index="8" value="45.0" />
      <LABEL index="9" value="55.6" />
      <LABEL index="10" value="66.2" />
      <LABEL index="11" value="76.9" />
      <LABEL index="12" value="87.5" />
      <LABEL index="13" value="98.1" />
      <LABEL index="14" value="108.8" />
      <LABEL index="15" value="119.4" />
      <LABEL index="16" value="130.0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2313C" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x87" flags="0x30">
    <title>Idle Base Spark vs RPM vs Airmass</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Base spark at idle, vs rpm (400..1600) and cylinder airmass. Stock H3 4..25 deg (E0202) Effect: idle quality / idle torque reserve Evidence: ledger:E0202, ledger:E0210, ledger:E0213, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>7</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="600" />
      <LABEL index="2" value="800" />
      <LABEL index="3" value="1000" />
      <LABEL index="4" value="1200" />
      <LABEL index="5" value="1400" />
      <LABEL index="6" value="1600" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>g/cyl</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.08" />
      <LABEL index="1" value="0.12" />
      <LABEL index="2" value="0.16" />
      <LABEL index="3" value="0.2" />
      <LABEL index="4" value="0.24" />
      <LABEL index="5" value="0.28" />
      <LABEL index="6" value="0.32" />
      <LABEL index="7" value="0.36" />
      <LABEL index="8" value="0.4" />
      <LABEL index="9" value="0.44" />
      <LABEL index="10" value="0.48" />
      <LABEL index="11" value="0.52" />
      <LABEL index="12" value="0.56" />
      <LABEL index="13" value="0.6" />
      <LABEL index="14" value="0.64" />
      <LABEL index="15" value="0.68" />
      <LABEL index="16" value="0.72" />
      <LABEL index="17" value="0.76" />
      <LABEL index="18" value="0.8" />
      <LABEL index="19" value="0.84" />
      <LABEL index="20" value="0.88" />
      <LABEL index="21" value="0.92" />
      <LABEL index="22" value="0.96" />
      <LABEL index="23" value="1" />
      <LABEL index="24" value="1.04" />
      <LABEL index="25" value="1.08" />
      <LABEL index="26" value="1.12" />
      <LABEL index="27" value="1.16" />
      <LABEL index="28" value="1.2" />
      <LABEL index="29" value="1.24" />
      <LABEL index="30" value="1.28" />
      <LABEL index="31" value="1.32" />
      <LABEL index="32" value="1.36" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2E3ED" mmedelementsizebits="8" mmedrowcount="33" mmedcolcount="7" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>1</decimalpl>
      <min>-64.000000</min>
      <max>63.500000</max>
      <MATH equation="X*0.5"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x88" flags="0x30">
    <title>AC Compressor Torque vs IAT</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A/C compressor torque estimate vs rpm and intake air temperature; averaged with the AC-pressure estimate (E0203) Effect: torque-model compensation for A/C load Evidence: ledger:E0203, ledger:E0210, ledger:E0213, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (IAT)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-30" />
      <LABEL index="1" value="-20" />
      <LABEL index="2" value="-10" />
      <LABEL index="3" value="0" />
      <LABEL index="4" value="10" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="40" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="60" />
      <LABEL index="10" value="70" />
      <LABEL index="11" value="80" />
      <LABEL index="12" value="90" />
      <LABEL index="13" value="100" />
      <LABEL index="14" value="110" />
      <LABEL index="15" value="120" />
      <LABEL index="16" value="130" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="400" />
      <LABEL index="2" value="800" />
      <LABEL index="3" value="1200" />
      <LABEL index="4" value="1600" />
      <LABEL index="5" value="2000" />
      <LABEL index="6" value="2400" />
      <LABEL index="7" value="2800" />
      <LABEL index="8" value="3200" />
      <LABEL index="9" value="3600" />
      <LABEL index="10" value="4000" />
      <LABEL index="11" value="4400" />
      <LABEL index="12" value="4800" />
      <LABEL index="13" value="5200" />
      <LABEL index="14" value="5600" />
      <LABEL index="15" value="6000" />
      <LABEL index="16" value="6400" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2FF9C" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>lb-ft</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>6042.016932</max>
      <MATH equation="X*0.0921952686597"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x89" flags="0x30">
    <title>Cranking VE vs MAP vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Volumetric efficiency used while cranking, vs rpm (0..1280) and MAP (15..105 kPa). Stock H3 59..100 pct (E0206) Effect: cranking fuel - affects hot/cold start Evidence: ledger:E0206, ledger:E0213, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>kPa (MAP)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="15" />
      <LABEL index="1" value="26" />
      <LABEL index="2" value="38" />
      <LABEL index="3" value="49" />
      <LABEL index="4" value="60" />
      <LABEL index="5" value="71" />
      <LABEL index="6" value="82" />
      <LABEL index="7" value="94" />
      <LABEL index="8" value="105" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="40" />
      <LABEL index="2" value="80" />
      <LABEL index="3" value="120" />
      <LABEL index="4" value="160" />
      <LABEL index="5" value="200" />
      <LABEL index="6" value="240" />
      <LABEL index="7" value="280" />
      <LABEL index="8" value="320" />
      <LABEL index="9" value="360" />
      <LABEL index="10" value="400" />
      <LABEL index="11" value="440" />
      <LABEL index="12" value="480" />
      <LABEL index="13" value="520" />
      <LABEL index="14" value="560" />
      <LABEL index="15" value="600" />
      <LABEL index="16" value="640" />
      <LABEL index="17" value="680" />
      <LABEL index="18" value="720" />
      <LABEL index="19" value="760" />
      <LABEL index="20" value="800" />
      <LABEL index="21" value="840" />
      <LABEL index="22" value="880" />
      <LABEL index="23" value="920" />
      <LABEL index="24" value="960" />
      <LABEL index="25" value="1000" />
      <LABEL index="26" value="1040" />
      <LABEL index="27" value="1080" />
      <LABEL index="28" value="1120" />
      <LABEL index="29" value="1160" />
      <LABEL index="30" value="1200" />
      <LABEL index="31" value="1240" />
      <LABEL index="32" value="1280" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A8C8" mmedelementsizebits="16" mmedrowcount="33" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.003052</max>
      <MATH equation="X/327.67"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x8A" flags="0x30">
    <title>Cranking VE Baro Multiplier</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplier on cranking VE vs barometric pressure (60..105 kPa, 10 points). Stock H3 1.64 at 60 kPa -&gt; 1.0 at 100-105 kPa (E0206) Effect: altitude cranking fuel Evidence: ledger:E0206, ledger:E0213, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>10</indexcount>
      <units>kPa (baro)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="60" />
      <LABEL index="1" value="65" />
      <LABEL index="2" value="70" />
      <LABEL index="3" value="75" />
      <LABEL index="4" value="80" />
      <LABEL index="5" value="85" />
      <LABEL index="6" value="90" />
      <LABEL index="7" value="95" />
      <LABEL index="8" value="100" />
      <LABEL index="9" value="105" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2AB1E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="10" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>x</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x8B" flags="0x30">
    <title>Open Loop Airflow Gain</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplier on the open-loop fuel/EQ product (17 x 33 cells). Stock H3 1.00..1.17 (E0207) Effect: open-loop fuelling Evidence: ledger:E0207, ledger:E0213, ledger:E0218, ledger:E0257, ledger:E0260</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>degC (modelled temp)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-32" />
      <LABEL index="2" value="-24" />
      <LABEL index="3" value="-16" />
      <LABEL index="4" value="-8" />
      <LABEL index="5" value="0" />
      <LABEL index="6" value="8" />
      <LABEL index="7" value="16" />
      <LABEL index="8" value="24" />
      <LABEL index="9" value="32" />
      <LABEL index="10" value="40" />
      <LABEL index="11" value="48" />
      <LABEL index="12" value="56" />
      <LABEL index="13" value="64" />
      <LABEL index="14" value="72" />
      <LABEL index="15" value="80" />
      <LABEL index="16" value="88" />
      <LABEL index="17" value="96" />
      <LABEL index="18" value="104" />
      <LABEL index="19" value="112" />
      <LABEL index="20" value="120" />
      <LABEL index="21" value="128" />
      <LABEL index="22" value="136" />
      <LABEL index="23" value="144" />
      <LABEL index="24" value="152" />
      <LABEL index="25" value="160" />
      <LABEL index="26" value="168" />
      <LABEL index="27" value="176" />
      <LABEL index="28" value="184" />
      <LABEL index="29" value="192" />
      <LABEL index="30" value="200" />
      <LABEL index="31" value="208" />
      <LABEL index="32" value="216" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>kPa (MAP)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="20" />
      <LABEL index="1" value="25" />
      <LABEL index="2" value="30" />
      <LABEL index="3" value="35" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="45" />
      <LABEL index="6" value="50" />
      <LABEL index="7" value="55" />
      <LABEL index="8" value="60" />
      <LABEL index="9" value="65" />
      <LABEL index="10" value="70" />
      <LABEL index="11" value="75" />
      <LABEL index="12" value="80" />
      <LABEL index="13" value="85" />
      <LABEL index="14" value="90" />
      <LABEL index="15" value="95" />
      <LABEL index="16" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x27876" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>x</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x8C" flags="0x30">
    <title>Open Loop Hot-Restart Gain</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Extra open-loop fuel after a hot restart. A latch sets while the engine is hot (coolant above the latch coolant threshold with intake air above the latch intake threshold, or corrected coolant above its own threshold). On the next start, if the soak lasted between the minimum and maximum soak times, coolant is above the minimum coolant and run time is under the maximum run time, this table multiplies open-loop fuel; it drops out once coolant falls to the minimum or run time reaches the maximum. Columns are coolant temperature; rows are the fuel injected since the engine started, so the extra fuel fades as the engine burns fuel. Stock 1.25 at the start with coolant at 110 C or hotter, back to 1.00 after about 44 g of fuel; 1.00 below 110 C. Effect: raise = richer open-loop fuel right after a hot restart Evidence: ledger:E0207, ledger:E0213, ledger:E0236, ledger:E0826, ledger:E0885, ledg...</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="56" />
      <LABEL index="1" value="62" />
      <LABEL index="2" value="68" />
      <LABEL index="3" value="74" />
      <LABEL index="4" value="80" />
      <LABEL index="5" value="86" />
      <LABEL index="6" value="92" />
      <LABEL index="7" value="98" />
      <LABEL index="8" value="104" />
      <LABEL index="9" value="110" />
      <LABEL index="10" value="116" />
      <LABEL index="11" value="122" />
      <LABEL index="12" value="128" />
      <LABEL index="13" value="134" />
      <LABEL index="14" value="140" />
      <LABEL index="15" value="146" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>g fuel</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="5.5" />
      <LABEL index="2" value="10.9" />
      <LABEL index="3" value="16.4" />
      <LABEL index="4" value="21.9" />
      <LABEL index="5" value="27.4" />
      <LABEL index="6" value="32.8" />
      <LABEL index="7" value="38.3" />
      <LABEL index="8" value="43.8" />
      <LABEL index="9" value="49.3" />
      <LABEL index="10" value="54.7" />
      <LABEL index="11" value="60.2" />
      <LABEL index="12" value="65.7" />
      <LABEL index="13" value="71.2" />
      <LABEL index="14" value="76.6" />
      <LABEL index="15" value="82.1" />
      <LABEL index="16" value="87.6" />
      <LABEL index="17" value="93.1" />
      <LABEL index="18" value="98.5" />
      <LABEL index="19" value="104.0" />
      <LABEL index="20" value="109.5" />
      <LABEL index="21" value="115.0" />
      <LABEL index="22" value="120.4" />
      <LABEL index="23" value="125.9" />
      <LABEL index="24" value="131.4" />
      <LABEL index="25" value="136.9" />
      <LABEL index="26" value="142.3" />
      <LABEL index="27" value="147.8" />
      <LABEL index="28" value="153.3" />
      <LABEL index="29" value="158.8" />
      <LABEL index="30" value="164.2" />
      <LABEL index="31" value="169.7" />
      <LABEL index="32" value="175.2" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2740E" mmedelementsizebits="16" mmedrowcount="33" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>x</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x8D" flags="0x30">
    <title>Pedal to throttle-area demand - gears 1-3 + Park/Neutral</title>
    <description>Accelerator pedal -&gt; throttle demand for gears 1/2/3 and Park/Neutral: pedal % (columns) x vehicle speed (rows) -&gt; % of the PCM&#x27;s area-&gt;throttle curve input (E0228&#x27;s &#x27;throttle area&#x27;); summed with the idle term and converted to desired throttle by a curve. Effect: pedal response / throttle opening for a given pedal position Evidence: ledger:E0224, ledger:E0228, ledger:E0232, ledger:E0267</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% pedal</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="3.1" />
      <LABEL index="2" value="6.3" />
      <LABEL index="3" value="12.5" />
      <LABEL index="4" value="18.8" />
      <LABEL index="5" value="25.0" />
      <LABEL index="6" value="31.3" />
      <LABEL index="7" value="37.5" />
      <LABEL index="8" value="43.8" />
      <LABEL index="9" value="50.0" />
      <LABEL index="10" value="56.3" />
      <LABEL index="11" value="62.5" />
      <LABEL index="12" value="68.8" />
      <LABEL index="13" value="75.0" />
      <LABEL index="14" value="81.3" />
      <LABEL index="15" value="87.5" />
      <LABEL index="16" value="97.0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>km/h (filtered vehicle speed)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="3" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x23A64" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% (throttle-area demand)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x8E" flags="0x30">
    <title>Pedal to throttle-area demand - 4th gear</title>
    <description>Accelerator pedal -&gt; throttle demand for 4th gear (overdrive): pedal % (columns) x vehicle speed (rows) -&gt; % of the PCM&#x27;s area-&gt;throttle curve input (E0228&#x27;s &#x27;throttle area&#x27;); summed with the idle term and converted to desired throttle by a curve. Effect: pedal response / throttle opening for a given pedal position Evidence: ledger:E0224, ledger:E0228, ledger:E0232, ledger:E0267</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% pedal</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="3.1" />
      <LABEL index="2" value="6.3" />
      <LABEL index="3" value="12.5" />
      <LABEL index="4" value="18.8" />
      <LABEL index="5" value="25.0" />
      <LABEL index="6" value="31.3" />
      <LABEL index="7" value="37.5" />
      <LABEL index="8" value="43.8" />
      <LABEL index="9" value="50.0" />
      <LABEL index="10" value="56.3" />
      <LABEL index="11" value="62.5" />
      <LABEL index="12" value="68.8" />
      <LABEL index="13" value="75.0" />
      <LABEL index="14" value="81.3" />
      <LABEL index="15" value="87.5" />
      <LABEL index="16" value="97.0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>km/h (filtered vehicle speed)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="3" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x23B9C" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% (throttle-area demand)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x8F" flags="0x30">
    <title>Base Shift Pressure vs Torque - Normal (1-2 / 2-3 / 3-4)</title>
    <description>Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. 4L60-E commanded force-motor pressure during an upshift, vs shift torque, rows 1-2 / 2-3 / 3-4, normal modes (set 0). 1 count = 4 kPa = 0.58 psi; capped by max_line_pressure (621 kPa) (E0235, E0237) Effect: shift firmness (higher = firmer, shorter shifts) Evidence: ledger:E0235, ledger:E0237</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>19</indexcount>
      <units>MARKER/MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="MARKER" />
      <LABEL index="2" value="0" />
      <LABEL index="3" value="30" />
      <LABEL index="4" value="59" />
      <LABEL index="5" value="89" />
      <LABEL index="6" value="118" />
      <LABEL index="7" value="148" />
      <LABEL index="8" value="177" />
      <LABEL index="9" value="207" />
      <LABEL index="10" value="236" />
      <LABEL index="11" value="266" />
      <LABEL index="12" value="295" />
      <LABEL index="13" value="325" />
      <LABEL index="14" value="354" />
      <LABEL index="15" value="384" />
      <LABEL index="16" value="413" />
      <LABEL index="17" value="443" />
      <LABEL index="18" value="472" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x39D4E" mmedelementsizebits="8" mmedrowcount="3" mmedcolcount="19" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>psi</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>147.938454</max>
      <MATH equation="X*0.5801508"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x90" flags="0x30">
    <title>Desired Shift Time vs Torque - Normal (1-2 / 2-3 / 3-4)</title>
    <description>Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Target upshift duration the TAP adaption steers to, vs shift torque, normal modes (set 0); 0 = not adapted (3-4 stock) (E0235, E0237) Effect: adaptive shift duration target (shorter = firmer as TAP adds pressure) Evidence: ledger:E0235, ledger:E0237</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>19</indexcount>
      <units>MARKER/MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="MARKER" />
      <LABEL index="2" value="0" />
      <LABEL index="3" value="30" />
      <LABEL index="4" value="59" />
      <LABEL index="5" value="89" />
      <LABEL index="6" value="118" />
      <LABEL index="7" value="148" />
      <LABEL index="8" value="177" />
      <LABEL index="9" value="207" />
      <LABEL index="10" value="236" />
      <LABEL index="11" value="266" />
      <LABEL index="12" value="295" />
      <LABEL index="13" value="325" />
      <LABEL index="14" value="354" />
      <LABEL index="15" value="384" />
      <LABEL index="16" value="413" />
      <LABEL index="17" value="443" />
      <LABEL index="18" value="472" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3BB3E" mmedelementsizebits="8" mmedrowcount="3" mmedcolcount="19" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>6.375000</max>
      <MATH equation="X/40"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x91" flags="0x30">
    <title>Upshift Pressure Temp Modifier - 1-2</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Pressure added to the 1-2 shift pressure vs trans temp and shift torque (E0235, E0237) Effect: temperature correction of shift pressure Evidence: ledger:E0235, ledger:E0237</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (trans temp)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>5</indexcount>
      <units>shift torque (lb-ft; stored Nm x4)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="118" />
      <LABEL index="2" value="236" />
      <LABEL index="3" value="354" />
      <LABEL index="4" value="472" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3A9E2" mmedelementsizebits="16" mmedrowcount="5" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>psi</units>
      <decimalpl>3</decimalpl>
      <min>-297.032090</min>
      <max>297.023025</max>
      <MATH equation="X*0.0090647"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x92" flags="0x30">
    <title>Upshift Pressure Temp Modifier - 2-3</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Pressure added to the 2-3 shift pressure vs trans temp and shift torque (E0235, E0237) Effect: temperature correction of shift pressure Evidence: ledger:E0235, ledger:E0237, ledger:E0272</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (trans temp)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>5</indexcount>
      <units>shift torque (lb-ft; stored Nm x4)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="118" />
      <LABEL index="2" value="236" />
      <LABEL index="3" value="354" />
      <LABEL index="4" value="472" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3AA90" mmedelementsizebits="16" mmedrowcount="5" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>psi</units>
      <decimalpl>3</decimalpl>
      <min>-297.032090</min>
      <max>297.023025</max>
      <MATH equation="X*0.0090647"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x93" flags="0x30">
    <title>Upshift Pressure Temp Modifier - 3-4</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Pressure added to the 3-4 shift pressure vs trans temp and shift torque (E0235, E0237) Effect: temperature correction of shift pressure Evidence: ledger:E0235, ledger:E0237, ledger:E0272</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (trans temp)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>5</indexcount>
      <units>shift torque (lb-ft; stored Nm x4)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="118" />
      <LABEL index="2" value="236" />
      <LABEL index="3" value="354" />
      <LABEL index="4" value="472" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3AB3E" mmedelementsizebits="16" mmedrowcount="5" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>psi</units>
      <decimalpl>3</decimalpl>
      <min>-297.032090</min>
      <max>297.023025</max>
      <MATH equation="X*0.0090647"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x94" flags="0x0">
    <title>A/C-on idle target</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Desired idle requested while the A/C compressor is engaged (and held while stopped); wins the max-of-requests, so it only matters when above the coolant-curve target. Stock 675 rpm (reads 672 on PID 11C9) (E0231, E0238) Effect: idle speed with A/C on Evidence: ledger:E0231, ledger:E0238</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29A14" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x95" flags="0x0">
    <title>Idle request ramp step</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Step per update by which each ramped idle request (A/C and others) moves toward its target; stock 5 rpm (E0231, E0238) Effect: how quickly idle-up requests ramp in/out Evidence: ledger:E0231, ledger:E0238</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29F0C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x96" flags="0x30">
    <title>Throttle area -&gt; throttle position model</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Converts throttle-area demand to desired throttle position (and back, elsewhere). Shared by ETC and the transmission shift-throttle path. DO NOT TUNE - changing it shifts every pedal, idle and shift-throttle relationship at once (E0228, E0239) Effect: throttle geometry model Evidence: ledger:E0228, ledger:E0239</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>% throttle area</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.1" />
      <LABEL index="1" value="0.1" />
      <LABEL index="2" value="0.2" />
      <LABEL index="3" value="0.2" />
      <LABEL index="4" value="0.3" />
      <LABEL index="5" value="0.4" />
      <LABEL index="6" value="0.4" />
      <LABEL index="7" value="0.6" />
      <LABEL index="8" value="0.8" />
      <LABEL index="9" value="1.0" />
      <LABEL index="10" value="1.2" />
      <LABEL index="11" value="1.5" />
      <LABEL index="12" value="2.0" />
      <LABEL index="13" value="2.8" />
      <LABEL index="14" value="4.9" />
      <LABEL index="15" value="8.2" />
      <LABEL index="16" value="12.7" />
      <LABEL index="17" value="15.7" />
      <LABEL index="18" value="18.2" />
      <LABEL index="19" value="21.3" />
      <LABEL index="20" value="24.5" />
      <LABEL index="21" value="28.2" />
      <LABEL index="22" value="32.4" />
      <LABEL index="23" value="37.5" />
      <LABEL index="24" value="43.8" />
      <LABEL index="25" value="52.9" />
      <LABEL index="26" value="64.6" />
      <LABEL index="27" value="74.5" />
      <LABEL index="28" value="81.4" />
      <LABEL index="29" value="87.5" />
      <LABEL index="30" value="92.7" />
      <LABEL index="31" value="96.6" />
      <LABEL index="32" value="100.0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x24740" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% throttle</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x97" flags="0x30">
    <title>Reduced-power (ETC fault) pedal curve</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Pedal -&gt; throttle-area demand used only in ETC reduced-power (fault) mode; stock caps at 8 % area. DO NOT TUNE - fault-mode protection (E0228, E0239) Effect: limp-home throttle Evidence: ledger:E0228, ledger:E0239</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% pedal</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="6.2" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.8" />
      <LABEL index="4" value="25.0" />
      <LABEL index="5" value="31.2" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.8" />
      <LABEL index="8" value="50.0" />
      <LABEL index="9" value="56.2" />
      <LABEL index="10" value="62.5" />
      <LABEL index="11" value="68.8" />
      <LABEL index="12" value="75.0" />
      <LABEL index="13" value="81.2" />
      <LABEL index="14" value="87.5" />
      <LABEL index="15" value="93.8" />
      <LABEL index="16" value="100.0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x24558" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% throttle area</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x98" flags="0x30">
    <title>ETC monitor: max expected throttle vs request</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest throttle the ETC rationality monitor expects for the current area request; throttle above it for longer than a calibration value triggers the monitor. DO NOT TUNE - safety diagnostic Effect: throttle rationality monitor Evidence: ledger:E0228, ledger:E0239</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>% throttle area (request + idle term)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="3.1" />
      <LABEL index="2" value="6.2" />
      <LABEL index="3" value="9.4" />
      <LABEL index="4" value="12.5" />
      <LABEL index="5" value="15.6" />
      <LABEL index="6" value="18.8" />
      <LABEL index="7" value="21.9" />
      <LABEL index="8" value="25.0" />
      <LABEL index="9" value="28.1" />
      <LABEL index="10" value="31.2" />
      <LABEL index="11" value="34.4" />
      <LABEL index="12" value="37.5" />
      <LABEL index="13" value="40.6" />
      <LABEL index="14" value="43.8" />
      <LABEL index="15" value="46.9" />
      <LABEL index="16" value="50.0" />
      <LABEL index="17" value="53.1" />
      <LABEL index="18" value="56.2" />
      <LABEL index="19" value="59.4" />
      <LABEL index="20" value="62.5" />
      <LABEL index="21" value="65.6" />
      <LABEL index="22" value="68.8" />
      <LABEL index="23" value="71.9" />
      <LABEL index="24" value="75.0" />
      <LABEL index="25" value="78.1" />
      <LABEL index="26" value="81.2" />
      <LABEL index="27" value="84.4" />
      <LABEL index="28" value="87.5" />
      <LABEL index="29" value="90.6" />
      <LABEL index="30" value="93.8" />
      <LABEL index="31" value="96.9" />
      <LABEL index="32" value="100.0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x249B4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% throttle</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x99" flags="0x30">
    <title>Pedal to throttle-area demand - Reverse</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Accelerator pedal -&gt; throttle-area demand for Reverse (normal range). Same layout/axes/scaling as pedal_throttle_area_main. Pointer-table slot k2 (E0240). Effect: pedal response / throttle opening for a given pedal position Evidence: ledger:E0228, ledger:E0232, ledger:E0240, ledger:E0267</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% pedal</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="3.1" />
      <LABEL index="2" value="6.3" />
      <LABEL index="3" value="12.5" />
      <LABEL index="4" value="18.8" />
      <LABEL index="5" value="25.0" />
      <LABEL index="6" value="31.3" />
      <LABEL index="7" value="37.5" />
      <LABEL index="8" value="43.8" />
      <LABEL index="9" value="50.0" />
      <LABEL index="10" value="56.3" />
      <LABEL index="11" value="62.5" />
      <LABEL index="12" value="68.8" />
      <LABEL index="13" value="75.0" />
      <LABEL index="14" value="81.3" />
      <LABEL index="15" value="87.5" />
      <LABEL index="16" value="97.0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>km/h (filtered vehicle speed)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="3" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x23CD4" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% (throttle-area demand)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x9A" flags="0x30">
    <title>Pedal to throttle-area demand - 4WD-Low forward gears</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Accelerator pedal -&gt; throttle-area demand for 4WD-Low, all forward gears. Same layout/axes/scaling as pedal_throttle_area_main. Pointer-table slot k3 (E0240). Effect: pedal response / throttle opening for a given pedal position Evidence: ledger:E0228, ledger:E0232, ledger:E0240, ledger:E0267</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% pedal</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="3.1" />
      <LABEL index="2" value="6.3" />
      <LABEL index="3" value="12.5" />
      <LABEL index="4" value="18.8" />
      <LABEL index="5" value="25.0" />
      <LABEL index="6" value="31.3" />
      <LABEL index="7" value="37.5" />
      <LABEL index="8" value="43.8" />
      <LABEL index="9" value="50.0" />
      <LABEL index="10" value="56.3" />
      <LABEL index="11" value="62.5" />
      <LABEL index="12" value="68.8" />
      <LABEL index="13" value="75.0" />
      <LABEL index="14" value="81.3" />
      <LABEL index="15" value="87.5" />
      <LABEL index="16" value="97.0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>km/h (filtered vehicle speed)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="3" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x23E0C" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% (throttle-area demand)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x9B" flags="0x30">
    <title>Pedal to throttle-area demand - 4WD-Low Park/Neutral</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Accelerator pedal -&gt; throttle-area demand for 4WD-Low, Park/Neutral. Same layout/axes/scaling as pedal_throttle_area_main. Pointer-table slot k4 (E0240). Effect: pedal response / throttle opening for a given pedal position Evidence: ledger:E0228, ledger:E0232, ledger:E0240, ledger:E0267</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% pedal</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="3.1" />
      <LABEL index="2" value="6.3" />
      <LABEL index="3" value="12.5" />
      <LABEL index="4" value="18.8" />
      <LABEL index="5" value="25.0" />
      <LABEL index="6" value="31.3" />
      <LABEL index="7" value="37.5" />
      <LABEL index="8" value="43.8" />
      <LABEL index="9" value="50.0" />
      <LABEL index="10" value="56.3" />
      <LABEL index="11" value="62.5" />
      <LABEL index="12" value="68.8" />
      <LABEL index="13" value="75.0" />
      <LABEL index="14" value="81.3" />
      <LABEL index="15" value="87.5" />
      <LABEL index="16" value="97.0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>km/h (filtered vehicle speed)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="3" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x23F44" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% (throttle-area demand)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x9C" flags="0x30">
    <title>Pedal to throttle-area demand - 4WD-Low Reverse</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Accelerator pedal -&gt; throttle-area demand for 4WD-Low, Reverse. Same layout/axes/scaling as pedal_throttle_area_main. Pointer-table slot k5 (E0240). Effect: pedal response / throttle opening for a given pedal position Evidence: ledger:E0228, ledger:E0232, ledger:E0240, ledger:E0267</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% pedal</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="3.1" />
      <LABEL index="2" value="6.3" />
      <LABEL index="3" value="12.5" />
      <LABEL index="4" value="18.8" />
      <LABEL index="5" value="25.0" />
      <LABEL index="6" value="31.3" />
      <LABEL index="7" value="37.5" />
      <LABEL index="8" value="43.8" />
      <LABEL index="9" value="50.0" />
      <LABEL index="10" value="56.3" />
      <LABEL index="11" value="62.5" />
      <LABEL index="12" value="68.8" />
      <LABEL index="13" value="75.0" />
      <LABEL index="14" value="81.3" />
      <LABEL index="15" value="87.5" />
      <LABEL index="16" value="97.0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>km/h (filtered vehicle speed)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="3" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2407C" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% (throttle-area demand)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x9D" flags="0x0">
    <title>Final Drive Ratio</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Axle ratio used to compute vehicle speed from the output-shaft sensor. Stock H3 4.56. Change it together with tire revs when the axle gearing changes. Live 2026-09-23: the PCM&#x27;s own vehicle speed matches this pair within 1.0 %. The PCM computes speed from output-shaft speed using these same constants, so that confirms the decode, not your actual tire size or axle ratio. Check a new setting against GPS. Shift points and converter lockup do not use this value: the transmission computes its own speed from a separate axle ratio and tire size. Those two are traced but not yet released, so after a tire or gear change the shift points still move slightly. Effect: vehicle speed as shown on the dash and OBD, speed limiter and other engine-side speed users; not shift points or converter lockup (E0319) Evidence: ledger:E0245, ledger:E0262, ledger:E0319</description>
    <CATEGORYMEM index="0" category="9" />
    <EMBEDDEDDATA mmedaddress="0x20098" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>:1</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x9E" flags="0x0">
    <title>VSS Tire Revs per Distance</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Tire revolutions per mile (stored as revs/km x32). Stock H3 627.6/mi (~32.1 in tire). Lower it for taller tires to correct the speedometer. Live 2026-09-23: the PCM&#x27;s own vehicle speed matches this pair within 1.0 %. The PCM computes speed from output-shaft speed using these same constants, so that confirms the decode, not your actual tire size or axle ratio. Check a new setting against GPS. Shift points and converter lockup do not use this value: the transmission computes its own speed from a separate axle ratio and tire size. Those two are traced but not yet released, so after a tire or gear change the shift points still move slightly. Effect: vehicle speed as shown on the dash and OBD, speed limiter and other engine-side speed users; not shift points or converter lockup (E0319) Evidence: ledger:E0245, ledger:E0262, ledger:E0319</description>
    <CATEGORYMEM index="0" category="9" />
    <EMBEDDEDDATA mmedaddress="0x2009A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>revs/mi</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3295.886220</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X*0.05029200"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x9F" flags="0x30">
    <title>Torque per airmass vs RPM vs EQ</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Indicated torque per gram of cylinder air (all 5 cylinders) vs rpm and fuelling EQ; gross torque = airmass x this x MAP correction. Torque model - DO NOT TUNE until the live PID 1A2D replay matches (E0246) The model as a whole reproduces logged delivered torque (PID 1A2D) at steady load within about 6 % (correlation 0.98, E0280); still reference-only. Effect: engine torque estimate used by shift pressure, torque reduction, TCC and ETC torque control Evidence: ledger:E0246, ledger:E0280</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>EQ</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.8" />
      <LABEL index="1" value="0.9" />
      <LABEL index="2" value="1.0" />
      <LABEL index="3" value="1.1" />
      <LABEL index="4" value="1.2" />
      <LABEL index="5" value="1.3" />
      <LABEL index="6" value="1.4" />
      <LABEL index="7" value="1.5" />
      <LABEL index="8" value="1.6" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x30364" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>Nm per g</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>1197.337557</max>
      <MATH equation="X*0.0182702"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xA0" flags="0x30">
    <title>Torque MAP correction vs RPM</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Multiplier on gross torque vs rpm and MAP; stock all 1.0. Torque model - DO NOT TUNE until the live PID 1A2D replay matches (E0246) The model as a whole reproduces logged delivered torque (PID 1A2D) at steady load within about 6 % (correlation 0.98, E0280); still reference-only. Effect: engine torque estimate used by shift pressure, torque reduction, TCC and ETC torque control Evidence: ledger:E0246, ledger:E0280</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>kPa (MAP)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="20" />
      <LABEL index="1" value="30" />
      <LABEL index="2" value="40" />
      <LABEL index="3" value="50" />
      <LABEL index="4" value="60" />
      <LABEL index="5" value="70" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="90" />
      <LABEL index="8" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3070C" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>x</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xA1" flags="0x30">
    <title>Torque loss vs spark retard from MBT</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Fraction of gross torque lost when final spark is below the torque-model MBT spark. Torque model - DO NOT TUNE until the live PID 1A2D replay matches (E0246) The model as a whole reproduces logged delivered torque (PID 1A2D) at steady load within about 6 % (correlation 0.98, E0280); still reference-only. Effect: engine torque estimate used by shift pressure, torque reduction, TCC and ETC torque control Evidence: ledger:E0246, ledger:E0280</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>deg retard</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="3" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="9" />
      <LABEL index="4" value="12" />
      <LABEL index="5" value="15" />
      <LABEL index="6" value="18" />
      <LABEL index="7" value="21" />
      <LABEL index="8" value="24" />
      <LABEL index="9" value="27" />
      <LABEL index="10" value="30" />
      <LABEL index="11" value="33" />
      <LABEL index="12" value="36" />
      <LABEL index="13" value="39" />
      <LABEL index="14" value="42" />
      <LABEL index="15" value="45" />
      <LABEL index="16" value="48" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x30498" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% torque lost</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xA2" flags="0x30">
    <title>Torque model MBT spark vs airmass vs RPM</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Optimal (MBT) spark the torque model compares final spark against; used only for the spark-loss term. Torque model - DO NOT TUNE until the live PID 1A2D replay matches (E0246) The model as a whole reproduces logged delivered torque (PID 1A2D) at steady load within about 6 % (correlation 0.98, E0280); still reference-only. Effect: engine torque estimate used by shift pressure, torque reduction, TCC and ETC torque control Evidence: ledger:E0246, ledger:E0280</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>g airmass</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.08" />
      <LABEL index="1" value="0.12" />
      <LABEL index="2" value="0.16" />
      <LABEL index="3" value="0.20" />
      <LABEL index="4" value="0.24" />
      <LABEL index="5" value="0.28" />
      <LABEL index="6" value="0.32" />
      <LABEL index="7" value="0.36" />
      <LABEL index="8" value="0.40" />
      <LABEL index="9" value="0.44" />
      <LABEL index="10" value="0.48" />
      <LABEL index="11" value="0.52" />
      <LABEL index="12" value="0.56" />
      <LABEL index="13" value="0.60" />
      <LABEL index="14" value="0.64" />
      <LABEL index="15" value="0.68" />
      <LABEL index="16" value="0.72" />
      <LABEL index="17" value="0.76" />
      <LABEL index="18" value="0.80" />
      <LABEL index="19" value="0.84" />
      <LABEL index="20" value="0.88" />
      <LABEL index="21" value="0.92" />
      <LABEL index="22" value="0.96" />
      <LABEL index="23" value="1.00" />
      <LABEL index="24" value="1.04" />
      <LABEL index="25" value="1.08" />
      <LABEL index="26" value="1.12" />
      <LABEL index="27" value="1.16" />
      <LABEL index="28" value="1.20" />
      <LABEL index="29" value="1.24" />
      <LABEL index="30" value="1.28" />
      <LABEL index="31" value="1.32" />
      <LABEL index="32" value="1.36" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x304D3" mmedelementsizebits="8" mmedrowcount="33" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>1</decimalpl>
      <min>-64.000000</min>
      <max>63.500000</max>
      <MATH equation="X*0.5"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xA3" flags="0x30">
    <title>Engine friction vs RPM</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Friction torque vs rpm (enters the loss sum at half weight; the math includes that). Torque model - DO NOT TUNE until the live PID 1A2D replay matches (E0246) The model as a whole reproduces logged delivered torque (PID 1A2D) at steady load within about 6 % (correlation 0.98, E0280); still reference-only. Effect: engine torque estimate used by shift pressure, torque reduction, TCC and ETC torque control Evidence: ledger:E0246, ledger:E0280, ledger:E0936</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x30204" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>Nm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xA4" flags="0x30">
    <title>Coolant-dependent friction vs RPM</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Friction torque vs rpm at the warm multiplier (x torque_friction_coolant_mult). Torque model - DO NOT TUNE until the live PID 1A2D replay matches (E0246) The model as a whole reproduces logged delivered torque (PID 1A2D) at steady load within about 6 % (correlation 0.98, E0280); still reference-only. Effect: engine torque estimate used by shift pressure, torque reduction, TCC and ETC torque control Evidence: ledger:E0246, ledger:E0280</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x301E0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>Nm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xA5" flags="0x30">
    <title>Friction multiplier vs coolant vs RPM</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Multiplier on the coolant-dependent friction; stock 2.4 when coldest to 1.0 warm. Torque model - DO NOT TUNE until the live PID 1A2D replay matches (E0246) The model as a whole reproduces logged delivered torque (PID 1A2D) at steady load within about 6 % (correlation 0.98, E0280); still reference-only. Effect: engine torque estimate used by shift pressure, torque reduction, TCC and ETC torque control Evidence: ledger:E0246, ledger:E0254, ledger:E0280</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC (corrected coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-10" />
      <LABEL index="2" value="20" />
      <LABEL index="3" value="50" />
      <LABEL index="4" value="80" />
      <LABEL index="5" value="110" />
      <LABEL index="6" value="140" />
      <LABEL index="7" value="170" />
      <LABEL index="8" value="200" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3022C" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>x</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>3.999939</max>
      <MATH equation="X/16384"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xA6" flags="0x30">
    <title>Load-dependent torque loss vs airmass vs RPM</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Loss torque vs airmass and rpm, added to friction. Torque model - DO NOT TUNE until the live PID 1A2D replay matches (E0246) The model as a whole reproduces logged delivered torque (PID 1A2D) at steady load within about 6 % (correlation 0.98, E0280); still reference-only. Effect: engine torque estimate used by shift pressure, torque reduction, TCC and ETC torque control Evidence: ledger:E0246, ledger:E0280</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>5</indexcount>
      <units>g airmass</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.08" />
      <LABEL index="1" value="0.40" />
      <LABEL index="2" value="0.72" />
      <LABEL index="3" value="1.04" />
      <LABEL index="4" value="1.36" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x30844" mmedelementsizebits="16" mmedrowcount="5" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>Nm</units>
      <decimalpl>1</decimalpl>
      <min>-8192.000000</min>
      <max>8191.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0xA7" flags="0x0">
    <title>Engine inertia torque factor</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Scales filtered engine acceleration into the inertia torque the PCM subtracts from its engine torque estimate. Part of the torque model, which reproduces logged delivered torque at steady load within about 6 %. Shift pressure, torque reduction, converter clutch and throttle torque control all use that estimate. Shown as the raw stored value. Reference only: DO NOT EDIT. Effect: reference only (torque model) Evidence: ledger:E0246, ledger:E0280, ledger:E0899</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x2FD48" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>raw</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xA8" flags="0x0">
    <title>Line pressure boost gain (normal)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Line pressure = force-motor pressure x this + offset (normal ranges); stock 1.333. Hydraulic constant - DO NOT TUNE (E0247) Effect: converts between commanded line pressure and force-motor pressure Evidence: ledger:E0247</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C0F0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>3.999939</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16384"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xA9" flags="0x0">
    <title>Line pressure boost offset (normal)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Line pressure at zero force-motor pressure (normal ranges); stock 414 kPa = 60 psi. Hydraulic constant - DO NOT TUNE (E0247) Effect: converts between commanded line pressure and force-motor pressure Evidence: ledger:E0247</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C0F4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>4095.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xAA" flags="0x0">
    <title>Line pressure boost gain (mode 6, likely Reverse)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. As the normal line pressure boost gain, used when the transmission range code is 6 (likely Reverse). Stock 2.0. DO NOT TUNE. Effect: converts between commanded line pressure and force-motor pressure Evidence: ledger:E0247</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C0F2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>3.999939</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16384"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xAB" flags="0x0">
    <title>Line pressure boost offset (mode 6, likely Reverse)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. As the normal line pressure boost offset, used when the transmission range code is 6 (likely Reverse). Stock 621 kPa = 90 psi. DO NOT TUNE. Effect: converts between commanded line pressure and force-motor pressure Evidence: ledger:E0247</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C0F6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>4095.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0xAC" flags="0x30">
    <title>Line Pressure - Input Torque Gain by Gear</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Line pressure added per Nm of transmission input torque, by gear and whether the converter clutch is on, in the normal line pressure mode. The base offset is added on top. Stock 3.00 kPa per Nm in 1st and 2nd, 3.25 from 3rd and in reverse. Line pressure protects the clutches: change in small steps. Effect: raise = more line pressure for the same input torque Evidence: ledger:E0247, ledger:E0250, ledger:E1029</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>gear / converter clutch</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1st" />
      <LABEL index="1" value="1st, TCC on" />
      <LABEL index="2" value="2nd" />
      <LABEL index="3" value="2nd, TCC on" />
      <LABEL index="4" value="3rd" />
      <LABEL index="5" value="3rd, TCC on" />
      <LABEL index="6" value="4th" />
      <LABEL index="7" value="4th, TCC on" />
      <LABEL index="8" value="Reverse" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3C1C0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>kPa per Nm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xAD" flags="0x30">
    <title>Line Pressure - Input Torque Gain by Gear, Top Gear Light Load</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Line pressure added per Nm of transmission input torque, used instead of the normal gain when engine torque is below a small threshold (up to about 46 Nm stock) and either the transmission is already in the highest gear the selected range allows (or is held in gear by the cruise rule), or the PCM has substituted its default range for the range selector input. Stock 4.01 kPa per Nm in the 1st and 2nd slots, 1.66 in 3rd, 3.21 with the converter clutch on, 2.70 in 4th, 3.11 in reverse. Effect: raise = more line pressure at light load in the top gear of the range Evidence: ledger:E0247, ledger:E0250, ledger:E1029, ledger:E1030, ledger:E1059</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>gear / converter clutch</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1st" />
      <LABEL index="1" value="1st, TCC on" />
      <LABEL index="2" value="2nd" />
      <LABEL index="3" value="2nd, TCC on" />
      <LABEL index="4" value="3rd" />
      <LABEL index="5" value="3rd, TCC on" />
      <LABEL index="6" value="4th" />
      <LABEL index="7" value="4th, TCC on" />
      <LABEL index="8" value="Reverse" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3C1D2" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>kPa per Nm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xAE" flags="0x30">
    <title>Line pressure torque-term multiplier vs trans temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplier on the torque part of line pressure vs trans temperature; stock 1.25 cold, 1.0 normal, 1.29 hot (E0247) Effect: line pressure temperature compensation Evidence: ledger:E0247</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (trans temp)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3C19C" mmedelementsizebits="8" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>x</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>1.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0xAF" flags="0x0">
    <title>COT enrichment entry rpm</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst over-temp enrichment arms above this rpm (with load and coolant). Stock 3200. Protection enrichment - DO NOT TUNE (E0249) Effect: protection enrichment Evidence: ledger:E0249</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2678C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xB0" flags="0x0">
    <title>COT enrichment hold rpm</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. COT enrichment stays armed above this rpm. Stock 3000. Protection enrichment - DO NOT TUNE (E0249) Effect: protection enrichment Evidence: ledger:E0249</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2678E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xB1" flags="0x0">
    <title>COT enrichment minimum coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. COT enrichment arms only above this coolant temperature. Stock 85 C. Protection enrichment - DO NOT TUNE (E0249) Effect: protection enrichment Evidence: ledger:E0249</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x26790" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xB2" flags="0x0">
    <title>COT enrichment delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time the COT conditions must hold before enrichment starts. Stock 15 s. Protection enrichment - DO NOT TUNE (E0249) Effect: protection enrichment Evidence: ledger:E0249</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x26794" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0xB3" flags="0x30">
    <title>COT enrichment EQ cap vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Maximum commanded EQ during catalyst over-temp enrichment. Stock 1.18..1.40. Protection enrichment - DO NOT TUNE (E0249) Effect: protection enrichment Evidence: ledger:E0249</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="256" />
      <LABEL index="2" value="512" />
      <LABEL index="3" value="768" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1280" />
      <LABEL index="6" value="1536" />
      <LABEL index="7" value="1792" />
      <LABEL index="8" value="2048" />
      <LABEL index="9" value="2304" />
      <LABEL index="10" value="2560" />
      <LABEL index="11" value="2816" />
      <LABEL index="12" value="3072" />
      <LABEL index="13" value="3328" />
      <LABEL index="14" value="3584" />
      <LABEL index="15" value="3840" />
      <LABEL index="16" value="4096" />
      <LABEL index="17" value="4352" />
      <LABEL index="18" value="4608" />
      <LABEL index="19" value="4864" />
      <LABEL index="20" value="5120" />
      <LABEL index="21" value="5376" />
      <LABEL index="22" value="5632" />
      <LABEL index="23" value="5888" />
      <LABEL index="24" value="6144" />
      <LABEL index="25" value="6400" />
      <LABEL index="26" value="6656" />
      <LABEL index="27" value="6912" />
      <LABEL index="28" value="7168" />
      <LABEL index="29" value="7424" />
      <LABEL index="30" value="7680" />
      <LABEL index="31" value="7936" />
      <LABEL index="32" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2680C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>EQ</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xB4" flags="0x30">
    <title>COT enrichment ramp-in step vs coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EQ added per update while COT enrichment ramps in. Protection enrichment - DO NOT TUNE (E0249) Effect: protection enrichment Evidence: ledger:E0249</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x267C0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>EQ per update</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xB5" flags="0x30">
    <title>COT enrichment ramp-out step vs coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EQ removed per update after COT conditions end. Protection enrichment - DO NOT TUNE (E0249) Effect: protection enrichment Evidence: ledger:E0249</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x267E4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>EQ per update</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0xB6" flags="0x0">
    <title>Over-temp enrichment start coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine over-temp enrichment adds EQ above this coolant temperature. Stock 110 C. Protection enrichment - DO NOT TUNE (E0249) Effect: protection enrichment Evidence: ledger:E0249</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x26786" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xB7" flags="0x0">
    <title>Over-temp enrichment gain</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EQ added per degree above the start temperature. Stock 0.05. Protection enrichment - DO NOT TUNE (E0249) Effect: protection enrichment Evidence: ledger:E0249</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x26788" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>EQ per degC</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xB8" flags="0x0">
    <title>Over-temp enrichment EQ cap</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Maximum commanded EQ from over-temp enrichment. Stock 2.0. Protection enrichment - DO NOT TUNE (E0249) Effect: protection enrichment Evidence: ledger:E0249</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2678A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>EQ</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>63.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xB9" flags="0x0">
    <title>Over-temp enrichment delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time the over-temp conditions must hold before enrichment. Stock 2 s. Protection enrichment - DO NOT TUNE (E0249) Effect: protection enrichment Evidence: ledger:E0249</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x26792" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0xBA" flags="0x30">
    <title>Line Pressure - Base Offset by Gear</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Line pressure at zero input torque, by gear and whether the converter clutch is on, in the normal line pressure mode. The torque gain term is added on top. Stock 175 kPa (25 psi) in the forward gears, 207 kPa (30 psi) in reverse. Line pressure protects the clutches: change in small steps. Effect: raise = more line pressure at every torque Evidence: ledger:E0247, ledger:E0250, ledger:E1029</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>gear / converter clutch</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1st" />
      <LABEL index="1" value="1st, TCC on" />
      <LABEL index="2" value="2nd" />
      <LABEL index="3" value="2nd, TCC on" />
      <LABEL index="4" value="3rd" />
      <LABEL index="5" value="3rd, TCC on" />
      <LABEL index="6" value="4th" />
      <LABEL index="7" value="4th, TCC on" />
      <LABEL index="8" value="Reverse" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3C1E4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>kPa</units>
      <decimalpl>2</decimalpl>
      <min>-2048.000000</min>
      <max>2047.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xBB" flags="0x30">
    <title>TAP maximum learned pressure (1-2/2-3/3-4)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper clamp on the learned shift-pressure correction per shift and torque cell. Stock 0 -&gt; 20 psi (1-2, 2-3), 0 for 3-4. Raising it lets TAP add more pressure (E0251) Effect: bounds / rate of adaptive shift pressure learning Evidence: ledger:E0235, ledger:E0251, ledger:E0708</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>Nm (shift torque)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="40" />
      <LABEL index="2" value="80" />
      <LABEL index="3" value="120" />
      <LABEL index="4" value="160" />
      <LABEL index="5" value="200" />
      <LABEL index="6" value="240" />
      <LABEL index="7" value="280" />
      <LABEL index="8" value="320" />
      <LABEL index="9" value="360" />
      <LABEL index="10" value="400" />
      <LABEL index="11" value="440" />
      <LABEL index="12" value="480" />
      <LABEL index="13" value="520" />
      <LABEL index="14" value="560" />
      <LABEL index="15" value="600" />
      <LABEL index="16" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3BEBE" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>psi</units>
      <decimalpl>3</decimalpl>
      <min>-297.032090</min>
      <max>297.023025</max>
      <MATH equation="X*0.0090647"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xBC" flags="0x30">
    <title>TAP minimum learned pressure (1-2/2-3/3-4)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower clamp on the learned shift-pressure correction. Stock 0 -&gt; -5.8..-7.3 psi (E0251) Effect: bounds / rate of adaptive shift pressure learning Evidence: ledger:E0235, ledger:E0251, ledger:E0708</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>Nm (shift torque)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="40" />
      <LABEL index="2" value="80" />
      <LABEL index="3" value="120" />
      <LABEL index="4" value="160" />
      <LABEL index="5" value="200" />
      <LABEL index="6" value="240" />
      <LABEL index="7" value="280" />
      <LABEL index="8" value="320" />
      <LABEL index="9" value="360" />
      <LABEL index="10" value="400" />
      <LABEL index="11" value="440" />
      <LABEL index="12" value="480" />
      <LABEL index="13" value="520" />
      <LABEL index="14" value="560" />
      <LABEL index="15" value="600" />
      <LABEL index="16" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3BF26" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>psi</units>
      <decimalpl>3</decimalpl>
      <min>-297.032090</min>
      <max>297.023025</max>
      <MATH equation="X*0.0090647"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xBD" flags="0x30">
    <title>Shift Adapt - Pressure Step vs Shift Time Error</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Step added to the learned shift pressure after a shift, by how far the shift time was from the desired time, for the 1-2, 2-3 and 3-4 shifts. Positive when the shift was slower than desired. The step is multiplied by the adapt step gain (stock zero below 240 Nm of shift torque, so nothing is learned there) and spread over the neighbouring torque cells. Stock up to 16 kPa (2.3 psi) for a shift 0.2 s slow; the 3-4 row is zero. Effect: raise = the adaption corrects shift pressure in bigger steps Evidence: ledger:E0235, ledger:E0251, ledger:E1029</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>19</indexcount>
      <units>MARKER/MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="MARKER" />
      <LABEL index="2" value="-0.200" />
      <LABEL index="3" value="-0.175" />
      <LABEL index="4" value="-0.150" />
      <LABEL index="5" value="-0.125" />
      <LABEL index="6" value="-0.100" />
      <LABEL index="7" value="-0.075" />
      <LABEL index="8" value="-0.050" />
      <LABEL index="9" value="-0.025" />
      <LABEL index="10" value="0.000" />
      <LABEL index="11" value="0.025" />
      <LABEL index="12" value="0.050" />
      <LABEL index="13" value="0.075" />
      <LABEL index="14" value="0.100" />
      <LABEL index="15" value="0.125" />
      <LABEL index="16" value="0.150" />
      <LABEL index="17" value="0.175" />
      <LABEL index="18" value="0.200" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3BE82" mmedelementsizebits="8" mmedrowcount="3" mmedcolcount="19" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>kPa</units>
      <decimalpl>0</decimalpl>
      <min>-256.000000</min>
      <max>254.000000</max>
      <MATH equation="X*2"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0xBE" flags="0x0">
    <title>TAP learning minimum trans temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Adaptive shift pressure learns only above this trans temperature. Stock 60 C. (E0251) Effect: when TAP learns Evidence: ledger:E0235, ledger:E0251</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C01A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xBF" flags="0x0">
    <title>TAP learning maximum trans temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Adaptive shift pressure learns only below this trans temperature. Stock 110 C. (E0251) Effect: when TAP learns Evidence: ledger:E0235, ledger:E0251</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C018" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xC0" flags="0x0">
    <title>MAF-fault mode 2: VE cap factor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. In MAF-fault mode 2 the fuel airmass is min(MAF, VE x this). Stock 0.995. Fault handling - DO NOT TUNE (E0219, E0253) Effect: MAF / VE airflow arbitration Evidence: ledger:E0219, ledger:E0253</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2A8C2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>x</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xC1" flags="0x0">
    <title>MAF-fault mode 2: filter coefficient</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Filter on the mode-2 capped airmass. Stock 0.110. Fault handling - DO NOT TUNE (E0219, E0253) Effect: MAF / VE airflow arbitration Evidence: ledger:E0219, ledger:E0253</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2A8C0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xC2" flags="0x0">
    <title>Steady-state fuel airmass filter toward MAF</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How fast the steady-state fuel airmass follows MAF airmass. Stock 0.150. (E0219, E0253) Effect: MAF / VE airflow arbitration Evidence: ledger:E0219, ledger:E0253</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2AB86" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xC3" flags="0x0">
    <title>Learned MAF/VE ratio filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How fast the learned MAF/VE ratio adapts in steady state. Stock 0.018. (E0219, E0253) Effect: MAF / VE airflow arbitration Evidence: ledger:E0219, ledger:E0253</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2AB8A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xC4" flags="0x0">
    <title>Learned MAF/VE ratio maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper clamp on the learned MAF/VE ratio. Stock 1.5. (E0219, E0253) Effect: MAF / VE airflow arbitration Evidence: ledger:E0219, ledger:E0253</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2AB8C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>x</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xC5" flags="0x0">
    <title>Learned MAF/VE ratio minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower clamp on the learned MAF/VE ratio. Stock 0.5. (E0219, E0253) Effect: MAF / VE airflow arbitration Evidence: ledger:E0219, ledger:E0253</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2AB8E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>x</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xC6" flags="0x0">
    <title>Learned MAF/VE Ratio - Reset Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The PCM learns a MAF to VE airflow ratio in steady state and uses it on the VE airflow during transients. While manifold pressure is below the deep vacuum MAP (closed throttle decel) learning is frozen; on the first update back above it, a learned ratio below the reset threshold is put back to 1.0, and a higher one is kept. This is the reset threshold: a learned ratio below it is reset to 1.0 after each deep vacuum episode. Stock 1.05. Effect: raise = more learned ratios are thrown away after decel; 0 = never reset Evidence: ledger:E0219, ledger:E0253, ledger:E0856</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2AB90" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>x</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0xC7" flags="0x30">
    <title>Cam-Phase Factor vs Cam Angle and RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A 0 to 1 factor by actual cam angle and engine speed that multiplies a spark correction and sets the input of a dwell correction. Stock 0 up to 7.5 degrees of cam, rising to 0.24 at 24 degrees; on the stock truck the cam reaches 9 to 11 degrees under load, so this is active. Effect: raise = more of the cam-phase spark correction at that cam angle and speed Evidence: ledger:E0255, ledger:E0881</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="800" />
      <LABEL index="1" value="1400" />
      <LABEL index="2" value="2000" />
      <LABEL index="3" value="2600" />
      <LABEL index="4" value="3200" />
      <LABEL index="5" value="3800" />
      <LABEL index="6" value="4400" />
      <LABEL index="7" value="5000" />
      <LABEL index="8" value="5600" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>deg cam</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1.5" />
      <LABEL index="2" value="3" />
      <LABEL index="3" value="4.5" />
      <LABEL index="4" value="6" />
      <LABEL index="5" value="7.5" />
      <LABEL index="6" value="9" />
      <LABEL index="7" value="10.5" />
      <LABEL index="8" value="12" />
      <LABEL index="9" value="13.5" />
      <LABEL index="10" value="15" />
      <LABEL index="11" value="16.5" />
      <LABEL index="12" value="18" />
      <LABEL index="13" value="19.5" />
      <LABEL index="14" value="21" />
      <LABEL index="15" value="22.5" />
      <LABEL index="16" value="24" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x229EC" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0xC8" flags="0x0">
    <title>TCS enable coolant temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Traction-control torque intervention is inhibited at or below this coolant temperature. Stock -40 C. (E0256) Effect: traction control Evidence: ledger:E0256</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x2FCAC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0xC9" flags="0x30">
    <title>ETC torque request baro multiplier</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Scales the indicated torque request before the ETC torque-to-throttle table. Stock 1.35 at 65 kPa down to 0.95 at 105 kPa (E0259) Effect: increase = more throttle for the same torque request Evidence: ledger:E0259</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>5</indexcount>
      <units>kPa (baro)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="65" />
      <LABEL index="1" value="75" />
      <LABEL index="2" value="85" />
      <LABEL index="3" value="95" />
      <LABEL index="4" value="105" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x30914" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="5" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>multiplier</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xCA" flags="0x30">
    <title>ETC torque request IAT multiplier</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Scales the indicated torque request before the ETC torque-to-throttle table. Stock 0.89 cold, 1.00 at 45-79 C, 1.19 at 140 C (E0259) Effect: increase = more throttle for the same torque request Evidence: ledger:E0259</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (IAT)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28.75" />
      <LABEL index="2" value="-17.5" />
      <LABEL index="3" value="-6.25" />
      <LABEL index="4" value="5" />
      <LABEL index="5" value="16.25" />
      <LABEL index="6" value="27.5" />
      <LABEL index="7" value="38.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="61.25" />
      <LABEL index="10" value="72.5" />
      <LABEL index="11" value="83.75" />
      <LABEL index="12" value="95" />
      <LABEL index="13" value="106.25" />
      <LABEL index="14" value="117.5" />
      <LABEL index="15" value="128.75" />
      <LABEL index="16" value="140" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x30920" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>multiplier</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xCB" flags="0x30">
    <title>O2 switch-point adder A phase-in delay vs startup coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Run time after start before O2 switch-point adder A (from O2 error via a curve) begins to phase in. Stock 200 s cold, 30 s hot. The adder biases the closed-loop rich/lean switch point. Effect: raise = closed-loop O2 correction arrives later / more gradually after a start Evidence: ledger:E0273, ledger:E0281</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (coolant at start)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28.75" />
      <LABEL index="2" value="-17.5" />
      <LABEL index="3" value="-6.25" />
      <LABEL index="4" value="5" />
      <LABEL index="5" value="16.25" />
      <LABEL index="6" value="27.5" />
      <LABEL index="7" value="38.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="61.25" />
      <LABEL index="10" value="72.5" />
      <LABEL index="11" value="83.75" />
      <LABEL index="12" value="95" />
      <LABEL index="13" value="106.25" />
      <LABEL index="14" value="117.5" />
      <LABEL index="15" value="128.75" />
      <LABEL index="16" value="140" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2523E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xCC" flags="0x30">
    <title>O2 switch-point adder A phase-in ramp time vs startup coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time over which O2 feedback term A ramps from 0 to full once its delay has passed. Stock 120 s cold, 30 s hot. The adder biases the closed-loop rich/lean switch point (E0281). Effect: raise = closed-loop O2 correction arrives later / more gradually after a start Evidence: ledger:E0273, ledger:E0281</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (coolant at start)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28.75" />
      <LABEL index="2" value="-17.5" />
      <LABEL index="3" value="-6.25" />
      <LABEL index="4" value="5" />
      <LABEL index="5" value="16.25" />
      <LABEL index="6" value="27.5" />
      <LABEL index="7" value="38.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="61.25" />
      <LABEL index="10" value="72.5" />
      <LABEL index="11" value="83.75" />
      <LABEL index="12" value="95" />
      <LABEL index="13" value="106.25" />
      <LABEL index="14" value="117.5" />
      <LABEL index="15" value="128.75" />
      <LABEL index="16" value="140" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x25286" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xCD" flags="0x30">
    <title>O2 switch-point adder B phase-in delay vs startup coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Run time after start before O2 switch-point adder B (from filtered O2 via a curve) begins to phase in. Stock 200 s cold, 30 s hot. The adder biases the closed-loop rich/lean switch point. Effect: raise = closed-loop O2 correction arrives later / more gradually after a start Evidence: ledger:E0273, ledger:E0281</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (coolant at start)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28.75" />
      <LABEL index="2" value="-17.5" />
      <LABEL index="3" value="-6.25" />
      <LABEL index="4" value="5" />
      <LABEL index="5" value="16.25" />
      <LABEL index="6" value="27.5" />
      <LABEL index="7" value="38.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="61.25" />
      <LABEL index="10" value="72.5" />
      <LABEL index="11" value="83.75" />
      <LABEL index="12" value="95" />
      <LABEL index="13" value="106.25" />
      <LABEL index="14" value="117.5" />
      <LABEL index="15" value="128.75" />
      <LABEL index="16" value="140" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x25262" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xCE" flags="0x30">
    <title>O2 switch-point adder B phase-in ramp time vs startup coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time over which O2 feedback term B ramps from 0 to full once its delay has passed. Stock 120 s cold, 5 s hot. The adder biases the closed-loop rich/lean switch point (E0281). Effect: raise = closed-loop O2 correction arrives later / more gradually after a start Evidence: ledger:E0273, ledger:E0281</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (coolant at start)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28.75" />
      <LABEL index="2" value="-17.5" />
      <LABEL index="3" value="-6.25" />
      <LABEL index="4" value="5" />
      <LABEL index="5" value="16.25" />
      <LABEL index="6" value="27.5" />
      <LABEL index="7" value="38.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="61.25" />
      <LABEL index="10" value="72.5" />
      <LABEL index="11" value="83.75" />
      <LABEL index="12" value="95" />
      <LABEL index="13" value="106.25" />
      <LABEL index="14" value="117.5" />
      <LABEL index="15" value="128.75" />
      <LABEL index="16" value="140" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x252AA" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xCF" flags="0x30">
    <title>Catalyst Light-off Spark Retard - Idle</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Spark retard subtracted from idle base spark for about two minutes after a cold start, to heat the catalytic converters. Scaled by the run-time and coolant factor curves. Columns 400..1600 rpm, but 1600 is never reached (the input clamps below it). Stock up to 12 deg. Effect: raise = more spark retard during the post-start catalyst warm-up (hotter exhaust, less torque) Evidence: ledger:E0275, ledger:E0276</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>7</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="600" />
      <LABEL index="2" value="800" />
      <LABEL index="3" value="1000" />
      <LABEL index="4" value="1200" />
      <LABEL index="5" value="1400" />
      <LABEL index="6" value="1600" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>g/cyl</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.08" />
      <LABEL index="1" value="0.12" />
      <LABEL index="2" value="0.16" />
      <LABEL index="3" value="0.2" />
      <LABEL index="4" value="0.24" />
      <LABEL index="5" value="0.28" />
      <LABEL index="6" value="0.32" />
      <LABEL index="7" value="0.36" />
      <LABEL index="8" value="0.4" />
      <LABEL index="9" value="0.44" />
      <LABEL index="10" value="0.48" />
      <LABEL index="11" value="0.52" />
      <LABEL index="12" value="0.56" />
      <LABEL index="13" value="0.6" />
      <LABEL index="14" value="0.64" />
      <LABEL index="15" value="0.68" />
      <LABEL index="16" value="0.72" />
      <LABEL index="17" value="0.76" />
      <LABEL index="18" value="0.8" />
      <LABEL index="19" value="0.84" />
      <LABEL index="20" value="0.88" />
      <LABEL index="21" value="0.92" />
      <LABEL index="22" value="0.96" />
      <LABEL index="23" value="1" />
      <LABEL index="24" value="1.04" />
      <LABEL index="25" value="1.08" />
      <LABEL index="26" value="1.12" />
      <LABEL index="27" value="1.16" />
      <LABEL index="28" value="1.2" />
      <LABEL index="29" value="1.24" />
      <LABEL index="30" value="1.28" />
      <LABEL index="31" value="1.32" />
      <LABEL index="32" value="1.36" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2DD9D" mmedelementsizebits="8" mmedrowcount="33" mmedcolcount="7" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>deg retard</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>63.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xD0" flags="0x30">
    <title>Catalyst Light-off Spark Retard - Idle (alternate) - NOT USED on this calibration</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Alternate idle light-off retard table, selected only when a calibration switch is 0. Not used on this calibration. Effect: none on this calibration Evidence: ledger:E0275, ledger:E0276</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>7</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="600" />
      <LABEL index="2" value="800" />
      <LABEL index="3" value="1000" />
      <LABEL index="4" value="1200" />
      <LABEL index="5" value="1400" />
      <LABEL index="6" value="1600" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>g/cyl</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.08" />
      <LABEL index="1" value="0.12" />
      <LABEL index="2" value="0.16" />
      <LABEL index="3" value="0.2" />
      <LABEL index="4" value="0.24" />
      <LABEL index="5" value="0.28" />
      <LABEL index="6" value="0.32" />
      <LABEL index="7" value="0.36" />
      <LABEL index="8" value="0.4" />
      <LABEL index="9" value="0.44" />
      <LABEL index="10" value="0.48" />
      <LABEL index="11" value="0.52" />
      <LABEL index="12" value="0.56" />
      <LABEL index="13" value="0.6" />
      <LABEL index="14" value="0.64" />
      <LABEL index="15" value="0.68" />
      <LABEL index="16" value="0.72" />
      <LABEL index="17" value="0.76" />
      <LABEL index="18" value="0.8" />
      <LABEL index="19" value="0.84" />
      <LABEL index="20" value="0.88" />
      <LABEL index="21" value="0.92" />
      <LABEL index="22" value="0.96" />
      <LABEL index="23" value="1" />
      <LABEL index="24" value="1.04" />
      <LABEL index="25" value="1.08" />
      <LABEL index="26" value="1.12" />
      <LABEL index="27" value="1.16" />
      <LABEL index="28" value="1.2" />
      <LABEL index="29" value="1.24" />
      <LABEL index="30" value="1.28" />
      <LABEL index="31" value="1.32" />
      <LABEL index="32" value="1.36" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2DE8D" mmedelementsizebits="8" mmedrowcount="33" mmedcolcount="7" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>deg retard</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>63.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xD1" flags="0x30">
    <title>Catalyst Light-off Spark Retard - Off-Idle (main spark)</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Light-off retard subtracted from main spark in spark mode 5 (off idle), also scaled by a light-throttle curve (full at low throttle). Stock up to 15 deg. Effect: raise = more spark retard during the post-start catalyst warm-up (hotter exhaust, less torque) Evidence: ledger:E0275, ledger:E0276</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="800" />
      <LABEL index="2" value="1200" />
      <LABEL index="3" value="1600" />
      <LABEL index="4" value="2000" />
      <LABEL index="5" value="2400" />
      <LABEL index="6" value="2800" />
      <LABEL index="7" value="3200" />
      <LABEL index="8" value="3600" />
      <LABEL index="9" value="4000" />
      <LABEL index="10" value="4400" />
      <LABEL index="11" value="4800" />
      <LABEL index="12" value="5200" />
      <LABEL index="13" value="5600" />
      <LABEL index="14" value="6000" />
      <LABEL index="15" value="6400" />
      <LABEL index="16" value="6800" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>g/cyl</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.08" />
      <LABEL index="1" value="0.12" />
      <LABEL index="2" value="0.16" />
      <LABEL index="3" value="0.2" />
      <LABEL index="4" value="0.24" />
      <LABEL index="5" value="0.28" />
      <LABEL index="6" value="0.32" />
      <LABEL index="7" value="0.36" />
      <LABEL index="8" value="0.4" />
      <LABEL index="9" value="0.44" />
      <LABEL index="10" value="0.48" />
      <LABEL index="11" value="0.52" />
      <LABEL index="12" value="0.56" />
      <LABEL index="13" value="0.6" />
      <LABEL index="14" value="0.64" />
      <LABEL index="15" value="0.68" />
      <LABEL index="16" value="0.72" />
      <LABEL index="17" value="0.76" />
      <LABEL index="18" value="0.8" />
      <LABEL index="19" value="0.84" />
      <LABEL index="20" value="0.88" />
      <LABEL index="21" value="0.92" />
      <LABEL index="22" value="0.96" />
      <LABEL index="23" value="1" />
      <LABEL index="24" value="1.04" />
      <LABEL index="25" value="1.08" />
      <LABEL index="26" value="1.12" />
      <LABEL index="27" value="1.16" />
      <LABEL index="28" value="1.2" />
      <LABEL index="29" value="1.24" />
      <LABEL index="30" value="1.28" />
      <LABEL index="31" value="1.32" />
      <LABEL index="32" value="1.36" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2DF7D" mmedelementsizebits="8" mmedrowcount="33" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>deg retard</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>63.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xD2" flags="0x30">
    <title>Catalyst Light-off Spark Retard - Coastdown</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Light-off retard subtracted from idle coastdown spark (spark mode 3). Stock up to 8 deg. Effect: raise = more spark retard during the post-start catalyst warm-up (hotter exhaust, less torque) Evidence: ledger:E0275, ledger:E0276</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="800" />
      <LABEL index="2" value="1200" />
      <LABEL index="3" value="1600" />
      <LABEL index="4" value="2000" />
      <LABEL index="5" value="2400" />
      <LABEL index="6" value="2800" />
      <LABEL index="7" value="3200" />
      <LABEL index="8" value="3600" />
      <LABEL index="9" value="4000" />
      <LABEL index="10" value="4400" />
      <LABEL index="11" value="4800" />
      <LABEL index="12" value="5200" />
      <LABEL index="13" value="5600" />
      <LABEL index="14" value="6000" />
      <LABEL index="15" value="6400" />
      <LABEL index="16" value="6800" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>g/cyl</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.08" />
      <LABEL index="1" value="0.12" />
      <LABEL index="2" value="0.16" />
      <LABEL index="3" value="0.2" />
      <LABEL index="4" value="0.24" />
      <LABEL index="5" value="0.28" />
      <LABEL index="6" value="0.32" />
      <LABEL index="7" value="0.36" />
      <LABEL index="8" value="0.4" />
      <LABEL index="9" value="0.44" />
      <LABEL index="10" value="0.48" />
      <LABEL index="11" value="0.52" />
      <LABEL index="12" value="0.56" />
      <LABEL index="13" value="0.6" />
      <LABEL index="14" value="0.64" />
      <LABEL index="15" value="0.68" />
      <LABEL index="16" value="0.72" />
      <LABEL index="17" value="0.76" />
      <LABEL index="18" value="0.8" />
      <LABEL index="19" value="0.84" />
      <LABEL index="20" value="0.88" />
      <LABEL index="21" value="0.92" />
      <LABEL index="22" value="0.96" />
      <LABEL index="23" value="1" />
      <LABEL index="24" value="1.04" />
      <LABEL index="25" value="1.08" />
      <LABEL index="26" value="1.12" />
      <LABEL index="27" value="1.16" />
      <LABEL index="28" value="1.2" />
      <LABEL index="29" value="1.24" />
      <LABEL index="30" value="1.28" />
      <LABEL index="31" value="1.32" />
      <LABEL index="32" value="1.36" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2E1B5" mmedelementsizebits="8" mmedrowcount="33" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>deg retard</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>63.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xD3" flags="0x30">
    <title>Catalyst Light-off Retard vs Time Since Start</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Fraction of the light-off retard applied vs engine run time (255 = full). Stock: full from 5 to 110 s, half at 115 s, off from 120 s. Effect: raise or extend = retard lasts longer after start Evidence: ledger:E0275, ledger:E0276, ledger:E0277</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>s since start</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <LABEL index="21" value="105" />
      <LABEL index="22" value="110" />
      <LABEL index="23" value="115" />
      <LABEL index="24" value="120" />
      <LABEL index="25" value="125" />
      <LABEL index="26" value="130" />
      <LABEL index="27" value="135" />
      <LABEL index="28" value="140" />
      <LABEL index="29" value="145" />
      <LABEL index="30" value="150" />
      <LABEL index="31" value="155" />
      <LABEL index="32" value="160" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2DD73" mmedelementsizebits="8" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>0.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xD4" flags="0x30">
    <title>Catalyst Light-off Retard vs Coolant (A)</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. First coolant factor on the light-off retard (multiplied with factor B). Stock full 10..50 C, off at 80 C. Effect: raise = light-off retard applies at more coolant temperatures Evidence: ledger:E0275, ledger:E0276, ledger:E0277</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-30" />
      <LABEL index="2" value="-20" />
      <LABEL index="3" value="-10" />
      <LABEL index="4" value="0" />
      <LABEL index="5" value="10" />
      <LABEL index="6" value="20" />
      <LABEL index="7" value="30" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="60" />
      <LABEL index="11" value="70" />
      <LABEL index="12" value="80" />
      <LABEL index="13" value="90" />
      <LABEL index="14" value="100" />
      <LABEL index="15" value="110" />
      <LABEL index="16" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2DD4D" mmedelementsizebits="8" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>0.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xD5" flags="0x30">
    <title>Catalyst Light-off Retard vs Coolant (B)</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Second coolant factor on the light-off retard. Stock full 10..30 C, half at 40 C, off from 50 C - on stock this is the one that ends the retard as the engine warms. Effect: raise = light-off retard applies at more coolant temperatures Evidence: ledger:E0275, ledger:E0276, ledger:E0277</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-30" />
      <LABEL index="2" value="-20" />
      <LABEL index="3" value="-10" />
      <LABEL index="4" value="0" />
      <LABEL index="5" value="10" />
      <LABEL index="6" value="20" />
      <LABEL index="7" value="30" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="60" />
      <LABEL index="11" value="70" />
      <LABEL index="12" value="80" />
      <LABEL index="13" value="90" />
      <LABEL index="14" value="100" />
      <LABEL index="15" value="110" />
      <LABEL index="16" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2DD60" mmedelementsizebits="8" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>0.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xD6" flags="0x30">
    <title>IAT Spark Correction - Coolant Scaler</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplies the IAT spark correction (IAT add x IAT multiplier) by a factor of coolant temperature. Stock 0 up to 60 C, 1.0 at 80-100 C, 0.5 at 120 C, so the IAT correction only acts on a warm engine. Effect: raise = IAT spark correction applies at more coolant temperatures Evidence: ledger:E0277</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-30" />
      <LABEL index="2" value="-20" />
      <LABEL index="3" value="-10" />
      <LABEL index="4" value="0" />
      <LABEL index="5" value="10" />
      <LABEL index="6" value="20" />
      <LABEL index="7" value="30" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="60" />
      <LABEL index="11" value="70" />
      <LABEL index="12" value="80" />
      <LABEL index="13" value="90" />
      <LABEL index="14" value="100" />
      <LABEL index="15" value="110" />
      <LABEL index="16" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2DD28" mmedelementsizebits="8" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>1.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xD7" flags="0x30">
    <title>Base Fuel Multiplier vs RPM (low rpm)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplies the base fuel term by rpm below 1600. Stock 1.0 up to 300 rpm (cranking), falling to 0.5 from 800 rpm; the fuel term&#x27;s own baseline is not re-proven, so read the values as relative to each other. Effect: raise = more fuel at that rpm (mainly cranking and very low rpm) Evidence: ledger:E0277</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="100" />
      <LABEL index="2" value="200" />
      <LABEL index="3" value="300" />
      <LABEL index="4" value="400" />
      <LABEL index="5" value="500" />
      <LABEL index="6" value="600" />
      <LABEL index="7" value="700" />
      <LABEL index="8" value="800" />
      <LABEL index="9" value="900" />
      <LABEL index="10" value="1000" />
      <LABEL index="11" value="1100" />
      <LABEL index="12" value="1200" />
      <LABEL index="13" value="1300" />
      <LABEL index="14" value="1400" />
      <LABEL index="15" value="1500" />
      <LABEL index="16" value="1600" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2501E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xD8" flags="0x30">
    <title>TAP Adapt Gain vs Shift Torque</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Scales the adaptive shift-pressure (TAP) learning step by shift torque, per shift (rows 1-2, 2-3, 3-4). Stock 0 below 240 Nm and 1.0 above, so the PCM does not learn shift pressure on light-torque shifts. Effect: raise at low torque = TAP learns on lighter shifts too Evidence: ledger:E0277</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>19</indexcount>
      <units>MARKER/MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="MARKER" />
      <LABEL index="2" value="1" />
      <LABEL index="3" value="2" />
      <LABEL index="4" value="3" />
      <LABEL index="5" value="4" />
      <LABEL index="6" value="5" />
      <LABEL index="7" value="6" />
      <LABEL index="8" value="7" />
      <LABEL index="9" value="8" />
      <LABEL index="10" value="9" />
      <LABEL index="11" value="10" />
      <LABEL index="12" value="11" />
      <LABEL index="13" value="12" />
      <LABEL index="14" value="13" />
      <LABEL index="15" value="14" />
      <LABEL index="16" value="15" />
      <LABEL index="17" value="16" />
      <LABEL index="18" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3C07A" mmedelementsizebits="8" mmedrowcount="3" mmedcolcount="19" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>1.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xD9" flags="0x30">
    <title>Catalyst Light-off Retard vs Throttle (off-idle)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fraction of the off-idle light-off retard applied vs relative throttle. Stock full up to 20 %, 1/3 at 40 %, off from 50 %, so light-off retard gives way when you press the pedal. Effect: raise = light-off retard continues at more throttle Evidence: ledger:E0277</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>11</indexcount>
      <units>% throttle</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="10" />
      <LABEL index="2" value="20" />
      <LABEL index="3" value="30" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="50" />
      <LABEL index="6" value="60" />
      <LABEL index="7" value="70" />
      <LABEL index="8" value="80" />
      <LABEL index="9" value="90" />
      <LABEL index="10" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2DD40" mmedelementsizebits="8" mmedrowcount="1" mmedcolcount="11" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>0.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0xDA" flags="0x0">
    <title>MAP Sensor Gain</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Slope of the MAP sensor conversion: MAP kPa = A/D counts x (this / 128) / 65536 + offset. Stock 188.2 kPa across the full A/D range, consistent with a stock GM 1-bar sensor. Change it together with the offset and the filtered-path gain when fitting a different MAP sensor. With a boost MAP sensor: the PCM&#x27;s barometric pressure estimate takes the MAP reading whenever MAP is higher than the current estimate, capped at 110 kPa. After the first boost the barometric pressure therefore reads 110 kPa (about 9 kPa high at sea level) until a full-throttle reading below barometric pressure or the next key-on corrects it; the cap is fixed in the operating system. The MAP circuit high / low codes test the raw sensor signal, not the converted pressure, so they are unaffected by this gain. Effect: raise = the PCM reads more kPa for the same sensor voltage Evidence: ledger:E0278, ledger:E0833</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BF96" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa per A/D full scale</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xDB" flags="0x0">
    <title>MAP Sensor Offset</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Intercept of the MAP sensor conversion (kPa at 0 counts, added unsigned so it cannot go below 0). Stock 10.40 kPa. Shared by all three MAP conversion paths. With a boost MAP sensor: the PCM&#x27;s barometric pressure estimate takes the MAP reading whenever MAP is higher than the current estimate, capped at 110 kPa. After the first boost the barometric pressure therefore reads 110 kPa (about 9 kPa high at sea level) until a full-throttle reading below barometric pressure or the next key-on corrects it; the cap is fixed in the operating system. The MAP circuit high / low codes test the raw sensor signal, not the converted pressure, so they are unaffected by this gain. Effect: raise = every MAP reading shifts up by the same kPa Evidence: ledger:E0278, ledger:E0833</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BF98" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa at 0 V</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xDC" flags="0x0">
    <title>MAP Sensor Gain (filtered path)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Gain used for the filtered MAP path. It must equal MAP Sensor Gain when both are displayed (stored as exactly half, because that path runs at twice the scale). Stock 188.2. Effect: keep equal to MAP Sensor Gain Evidence: ledger:E0278</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BF9A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa per A/D full scale</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>1023.984375</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/64"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0xDD" flags="0x30">
    <title>O2 Switch Point - Base (per bank)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Base O2 voltage above which closed loop calls the mixture rich, per bank. Stock 530 mV at the low end of its input falling to 340 mV. Lowering it makes closed loop run leaner, raising it richer. Column positions are set by the O2 Switch Point Airflow Map: stock 0 to 76 g/s, most columns below 30 g/s (E0290). Effect: raise = closed-loop fuelling runs richer Evidence: ledger:E0281, ledger:E0290</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>10</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="4.8" />
      <LABEL index="3" value="8" />
      <LABEL index="4" value="13.2" />
      <LABEL index="5" value="21.8" />
      <LABEL index="6" value="29.5" />
      <LABEL index="7" value="40.3" />
      <LABEL index="8" value="51.8" />
      <LABEL index="9" value="76" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x254A4" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="10" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>-2048.000000</min>
      <max>2047.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xDE" flags="0x30">
    <title>O2 Switch Point Adder vs O2 Activity</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Adder to the O2 switch point vs how fast the O2 voltage is changing, phased in after a start by the term-A delay/ramp. Stock 0 to +100 mV. Effect: raise = switch point moves up (richer) when the O2 signal is active Evidence: ledger:E0281, ledger:E0988</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>mV (change of filtered O2 voltage over 10 updates)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-20" />
      <LABEL index="1" value="-18.75" />
      <LABEL index="2" value="-17.5" />
      <LABEL index="3" value="-16.25" />
      <LABEL index="4" value="-15" />
      <LABEL index="5" value="-13.75" />
      <LABEL index="6" value="-12.5" />
      <LABEL index="7" value="-11.25" />
      <LABEL index="8" value="-10" />
      <LABEL index="9" value="-8.75" />
      <LABEL index="10" value="-7.5" />
      <LABEL index="11" value="-6.25" />
      <LABEL index="12" value="-5" />
      <LABEL index="13" value="-3.75" />
      <LABEL index="14" value="-2.5" />
      <LABEL index="15" value="-1.25" />
      <LABEL index="16" value="0" />
      <LABEL index="17" value="1.25" />
      <LABEL index="18" value="2.5" />
      <LABEL index="19" value="3.75" />
      <LABEL index="20" value="5" />
      <LABEL index="21" value="6.25" />
      <LABEL index="22" value="7.5" />
      <LABEL index="23" value="8.75" />
      <LABEL index="24" value="10" />
      <LABEL index="25" value="11.25" />
      <LABEL index="26" value="12.5" />
      <LABEL index="27" value="13.75" />
      <LABEL index="28" value="15" />
      <LABEL index="29" value="16.25" />
      <LABEL index="30" value="17.5" />
      <LABEL index="31" value="18.75" />
      <LABEL index="32" value="20" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x252CE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>-2048.000000</min>
      <max>2047.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xDF" flags="0x30">
    <title>O2 Switch Point Adder vs Filtered O2</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Adder to the O2 switch point vs the filtered O2 voltage, phased in after a start by the term-B delay/ramp. Stock +150 mV at 250 mV falling to -75 mV at high voltage. Effect: raise = switch point moves up (richer) at that O2 voltage Evidence: ledger:E0281</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>mV</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="250" />
      <LABEL index="1" value="271.875" />
      <LABEL index="2" value="293.75" />
      <LABEL index="3" value="315.625" />
      <LABEL index="4" value="337.5" />
      <LABEL index="5" value="359.375" />
      <LABEL index="6" value="381.25" />
      <LABEL index="7" value="403.125" />
      <LABEL index="8" value="425" />
      <LABEL index="9" value="446.875" />
      <LABEL index="10" value="468.75" />
      <LABEL index="11" value="490.625" />
      <LABEL index="12" value="512.5" />
      <LABEL index="13" value="534.375" />
      <LABEL index="14" value="556.25" />
      <LABEL index="15" value="578.125" />
      <LABEL index="16" value="600" />
      <LABEL index="17" value="621.875" />
      <LABEL index="18" value="643.75" />
      <LABEL index="19" value="665.625" />
      <LABEL index="20" value="687.5" />
      <LABEL index="21" value="709.375" />
      <LABEL index="22" value="731.25" />
      <LABEL index="23" value="753.125" />
      <LABEL index="24" value="775" />
      <LABEL index="25" value="796.875" />
      <LABEL index="26" value="818.75" />
      <LABEL index="27" value="840.625" />
      <LABEL index="28" value="862.5" />
      <LABEL index="29" value="884.375" />
      <LABEL index="30" value="906.25" />
      <LABEL index="31" value="928.125" />
      <LABEL index="32" value="950" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x25316" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>-2048.000000</min>
      <max>2047.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0xE0" flags="0x0">
    <title>O2 Switch Point Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest O2 switch point allowed. Stock 300 mV. Effect: raise = closed loop cannot be biased as lean Evidence: ledger:E0281</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x253BE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>mV</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>4095.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xE1" flags="0x0">
    <title>O2 Switch Point Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest O2 switch point allowed. Stock 675 mV. Effect: raise = closed loop can be biased richer Evidence: ledger:E0281</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x253C0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>mV</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>4095.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xE2" flags="0x0">
    <title>O2 Switch Point Cold-Start Adder</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Added to the O2 switch point while the engine has run less than the time limit and coolant is below the temperature limit. Stock -150 mV (leaner bias when cold). Effect: raise = less lean bias just after a cold start Evidence: ledger:E0281</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2538E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>mV</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xE3" flags="0x0">
    <title>O2 Switch Point Cold-Start Adder - Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Run time after start during which the cold-start adder applies. Stock 160 s. Effect: raise = cold-start bias lasts longer Evidence: ledger:E0281</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2538A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xE4" flags="0x0">
    <title>O2 Switch Point Cold-Start Adder - Coolant Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The cold-start adder applies only below this coolant temperature. Stock 65 C. Effect: raise = cold-start bias applies to warmer starts Evidence: ledger:E0281</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2538C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xE5" flags="0x0">
    <title>Idle Airflow Area Maximum</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Upper limit on the idle airflow (effective throttle area) command in normal running. Stock 3.33 % of full throttle area (about 30 g/s-equivalent at idle). The idle controller cannot open the throttle further than this at idle. Effect: raise = idle control can add more air (big cams, cold starts); too high risks runaway idle Evidence: ledger:E0282, ledger:E0283</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29114" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% throttle area</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>182.041667</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/360"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xE6" flags="0x0">
    <title>Idle Airflow Area Minimum</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Lower limit on the idle airflow command in normal running. Stock 0. Effect: raise = throttle never closes below this at idle Evidence: ledger:E0282, ledger:E0283</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29116" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% throttle area</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>182.041667</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/360"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xE7" flags="0x0">
    <title>Idle Airflow Area Maximum - Fault</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Upper limit used when a sensor-fault condition is active (e.g. MAF fault). Stock 11.4 %. Effect: limit used only with a fault present Evidence: ledger:E0282, ledger:E0283</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29110" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% throttle area</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>182.041667</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/360"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xE8" flags="0x0">
    <title>Idle Airflow Area Minimum - Fault</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Lower limit used when a sensor-fault condition is active. Stock 0. Effect: limit used only with a fault present Evidence: ledger:E0282, ledger:E0283</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29112" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% throttle area</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>182.041667</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/360"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xE9" flags="0x0">
    <title>Idle Airflow Area - Fault Default</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Command forced when the idle controller&#x27;s fault flag is set. Stock 0. Effect: value used only with that fault Evidence: ledger:E0282, ledger:E0283</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29118" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% throttle area</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>182.041667</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/360"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0xEA" flags="0x30">
    <title>Idle Airflow - Coolant Adder</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Idle base airflow added vs coolant temperature. Stock +2.39 g/s at -40 C falling to 0 at 68-104 C and -0.12 g/s at 152 C. Adds directly to the idle airflow request, so it sets how much extra air a cold engine gets at idle. Row 1 = In Gear, row 2 = Park/Neutral. Effect: raise = more idle air (higher idle rpm before closed-loop trims it) at that coolant temperature Evidence: ledger:E0286, ledger:E0287</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x29852" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xEB" flags="0x30">
    <title>Idle Airflow vs Desired RPM Above Base</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Idle airflow added for the part of the desired idle rpm above the base desired-idle-vs-coolant value (and above the start-up flare), e.g. A/C or other idle-up requests. Stock In Gear 0 to 3.85 g/s, Park/Neutral 0 to 2.28 g/s over 0-400 rpm. Row 1 = In Gear, row 2 = Park/Neutral. Effect: raise = more air per rpm of idle-up request (faster, fuller idle-up) Evidence: ledger:E0286, ledger:E0287</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2977A" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xEC" flags="0x30">
    <title>Idle Airflow vs Start-Up RPM Flare</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Idle airflow added for the start-up rpm flare (see Idle Start-Up RPM Flare). Stock In Gear 0 to 2.71 g/s, Park/Neutral 0 to 2.39 g/s at 200 rpm of flare and above. Row 1 = In Gear, row 2 = Park/Neutral. Effect: raise = more air during the post-start flare Evidence: ledger:E0286, ledger:E0287</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2980A" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xED" flags="0x30">
    <title>Idle Airflow vs RPM Below Desired</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Idle airflow added only when engine rpm is below desired idle (droop catch), vs how far below after the droop gain. Stock 0 up to 175 rpm of droop, then rising to 5.0 g/s at 400 rpm. Row 1 = In Gear, row 2 = Park/Neutral. Effect: raise = stronger catch when idle sags (stall resistance); too much makes idle hunt Evidence: ledger:E0286, ledger:E0287</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x297C2" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xEE" flags="0x30">
    <title>Idle Airflow - Barometric Adder</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Idle airflow added vs barometric pressure (altitude). Stock -1.11 g/s at 60 kPa rising to 0 at 100 kPa. Effect: raise = more idle air at altitude Evidence: ledger:E0286, ledger:E0287</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>kPa</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="60" />
      <LABEL index="1" value="65" />
      <LABEL index="2" value="70" />
      <LABEL index="3" value="75" />
      <LABEL index="4" value="80" />
      <LABEL index="5" value="85" />
      <LABEL index="6" value="90" />
      <LABEL index="7" value="95" />
      <LABEL index="8" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x298DE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xEF" flags="0x30">
    <title>Idle Overspeed Spark / Droop Airflow Gain vs Coolant</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Scales rpm error vs coolant for two things: the overspeed idle spark tables and the rpm-below-desired input of Idle Airflow vs RPM Below Desired. Stock 1.0 everywhere (E0291). Effect: raise = the droop table reacts to smaller rpm sags Evidence: ledger:E0286, ledger:E0287, ledger:E0291</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x29F6E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>15.999756</max>
      <MATH equation="X/4096"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xF0" flags="0x30">
    <title>Idle Start-Up RPM Flare - In Gear</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Extra desired idle rpm after a start (added to the desired idle vs coolant value, E0294) vs time since start (rows) and coolant (columns), In Gear. Stock 200 rpm at start (300 rpm at 20 and 32 C) decaying to 0 by 64 s. The Idle Airflow vs Start-Up RPM Flare table supplies the air for it; after 8 s it is cancelled once the truck moves or the throttle opens. Effect: raise = higher, longer rpm flare after starting Evidence: ledger:E0286, ledger:E0287, ledger:E0294</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>s since start</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="4" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="16" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="24" />
      <LABEL index="7" value="28" />
      <LABEL index="8" value="32" />
      <LABEL index="9" value="36" />
      <LABEL index="10" value="40" />
      <LABEL index="11" value="44" />
      <LABEL index="12" value="48" />
      <LABEL index="13" value="52" />
      <LABEL index="14" value="56" />
      <LABEL index="15" value="60" />
      <LABEL index="16" value="64" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x29A80" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xF1" flags="0x30">
    <title>Idle Start-Up RPM Flare - Park/Neutral</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Extra desired idle rpm after a start (added to the desired idle vs coolant value, E0294) vs time since start (rows) and coolant (columns), Park/Neutral. Stock 200 rpm at start (450 rpm at 20 and 32 C) decaying to 0 by 64 s. The Idle Airflow vs Start-Up RPM Flare table supplies the air for it; after 8 s it is cancelled once the truck moves or the throttle opens. Effect: raise = higher, longer rpm flare after starting Evidence: ledger:E0286, ledger:E0287, ledger:E0294</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>s since start</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="4" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="16" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="24" />
      <LABEL index="7" value="28" />
      <LABEL index="8" value="32" />
      <LABEL index="9" value="36" />
      <LABEL index="10" value="40" />
      <LABEL index="11" value="44" />
      <LABEL index="12" value="48" />
      <LABEL index="13" value="52" />
      <LABEL index="14" value="56" />
      <LABEL index="15" value="60" />
      <LABEL index="16" value="64" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x29CC6" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xF2" flags="0x30">
    <title>Idle Airflow - Light-Off Retard Adder</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Idle airflow added while catalyst light-off spark retard is active, vs the amount of retard, used normally. Stock 0 to 0.32 g/s. Effect: raise = more air to hold idle rpm while spark is retarded Evidence: ledger:E0286, ledger:E0287, ledger:E0294</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>5</indexcount>
      <units>deg retard</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2993A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="5" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xF3" flags="0x30">
    <title>Idle Airflow - Light-Off Retard Adder (A/C)</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Idle airflow added while catalyst light-off spark retard is active, vs the amount of retard, used with A/C on (or the alternate state). Stock 0 to 0.64 g/s. Effect: raise = more air to hold idle rpm while spark is retarded Evidence: ledger:E0286, ledger:E0287, ledger:E0294</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>5</indexcount>
      <units>deg retard</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x29946" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="5" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xF4" flags="0x30">
    <title>Idle Airflow - Alternator Load Adder vs RPM - In Gear</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Idle airflow added vs rpm (columns) and alternator field duty (rows, 0-100 %), In Gear. Stock 0 at the first row rising to 1.18 g/s at the last row from 512 rpm up. Effect: raise = more idle air when that load is present Evidence: ledger:E0286, ledger:E0287, ledger:E0294, ledger:E0936</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="256" />
      <LABEL index="2" value="512" />
      <LABEL index="3" value="768" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1280" />
      <LABEL index="6" value="1536" />
      <LABEL index="7" value="1792" />
      <LABEL index="8" value="2048" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>5</indexcount>
      <units>% alternator field duty</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="25" />
      <LABEL index="2" value="50" />
      <LABEL index="3" value="75" />
      <LABEL index="4" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x29676" mmedelementsizebits="16" mmedrowcount="5" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xF5" flags="0x30">
    <title>Idle Airflow - Alternator Load Adder vs RPM - Park/Neutral</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Idle airflow added vs rpm (columns) and alternator field duty (rows, 0-100 %), Park/Neutral. Stock 0 at the first row rising to 1.18 g/s at the last row from 512 rpm up. Effect: raise = more idle air when that load is present Evidence: ledger:E0286, ledger:E0287, ledger:E0294</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="256" />
      <LABEL index="2" value="512" />
      <LABEL index="3" value="768" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1280" />
      <LABEL index="6" value="1536" />
      <LABEL index="7" value="1792" />
      <LABEL index="8" value="2048" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>5</indexcount>
      <units>% alternator field duty</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="25" />
      <LABEL index="2" value="50" />
      <LABEL index="3" value="75" />
      <LABEL index="4" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x296D4" mmedelementsizebits="16" mmedrowcount="5" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xF6" flags="0x30">
    <title>Idle Airflow - Base vs RPM</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Base idle airflow term vs engine speed, part of the closed-loop term. Stock 0.3 g/s at 400-800 rpm, 1.0 (In Gear) / 0.5 (Park/Neutral) at 1200 rpm, rising to 20 g/s at 6400 rpm. Row 1 = In Gear, row 2 = Park/Neutral. Effect: raise = more idle air at that rpm Evidence: ledger:E0287, ledger:E0289</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x28CC8" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xF7" flags="0x30">
    <title>Idle Airflow - RPM Adder (timed)</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Idle airflow added by engine speed, 400 to 3600 rpm, while its timer gate allows (the gate timing itself is not fully traced). It passes straight into the idle throttle area. Stock 0 up to 1600 rpm, then 0.1 to 1.0 g/s at 3600 rpm (E0723). Effect: raise = more air when rpm is high with the throttle closed (softer return to idle) Evidence: ledger:E0287, ledger:E0289, ledger:E0723</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="600" />
      <LABEL index="2" value="800" />
      <LABEL index="3" value="1000" />
      <LABEL index="4" value="1200" />
      <LABEL index="5" value="1400" />
      <LABEL index="6" value="1600" />
      <LABEL index="7" value="1800" />
      <LABEL index="8" value="2000" />
      <LABEL index="9" value="2200" />
      <LABEL index="10" value="2400" />
      <LABEL index="11" value="2600" />
      <LABEL index="12" value="2800" />
      <LABEL index="13" value="3000" />
      <LABEL index="14" value="3200" />
      <LABEL index="15" value="3400" />
      <LABEL index="16" value="3600" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x28DB4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xF8" flags="0x30">
    <title>Idle Airflow Closed-Loop Step vs Airflow Error</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Step added to the idle airflow integral each control update, by airflow error (measured flow minus predicted idle airflow). STOCK IS ALL ZERO: the airflow integral is switched off on this calibration and idle rpm is held by the learn, the rpm-droop airflow table and idle spark. Filling it enables the integral; start very small. Row 1 = In Gear, row 2 = Park/Neutral. Effect: non-zero = enables airflow closed-loop idle; positive values for positive error remove air (check the sign on a log first) Evidence: ledger:E0287, ledger:E0289</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="-4" />
      <LABEL index="2" value="-3" />
      <LABEL index="3" value="-2.5" />
      <LABEL index="4" value="-2" />
      <LABEL index="5" value="-1.5" />
      <LABEL index="6" value="-1" />
      <LABEL index="7" value="-0.5" />
      <LABEL index="8" value="-0.25" />
      <LABEL index="9" value="0" />
      <LABEL index="10" value="0.25" />
      <LABEL index="11" value="0.5" />
      <LABEL index="12" value="0.75" />
      <LABEL index="13" value="1" />
      <LABEL index="14" value="1.5" />
      <LABEL index="15" value="2" />
      <LABEL index="16" value="4" />
      <LABEL index="17" value="6" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x28C80" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s per update</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xF9" flags="0x30">
    <title>Idle Airflow Closed-Loop Error Gain vs Coolant</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Scales the airflow error before the closed-loop step lookup, vs coolant. Stock 1.0. Effect: raise = the step table reacts to smaller errors Evidence: ledger:E0287, ledger:E0289</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x28F8C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>15.999756</max>
      <MATH equation="X/4096"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0xFA" flags="0x0">
    <title>Idle Airflow Learn Maximum</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Upper clamp on the learned idle airflow. Stock 3.5 g/s. Effect: widens or narrows how far the idle airflow learn can move Evidence: ledger:E0287, ledger:E0289</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28C4E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>g/s</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0xFB" flags="0x0">
    <title>Idle Airflow Learn Minimum</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Lower clamp on the learned idle airflow. Stock 0. Effect: widens or narrows how far the idle airflow learn can move Evidence: ledger:E0287, ledger:E0289</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28C50" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>g/s</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0xFC" flags="0x30">
    <title>Idle Underspeed Spark Gain vs Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplies the idle underspeed spark tables (both P/N and In Gear) vs coolant. Stock 1.0 everywhere. Effect: raise = more spark advance added when idle rpm sags Evidence: ledger:E0291</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x29F4A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>15.999756</max>
      <MATH equation="X/4096"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xFD" flags="0x30">
    <title>O2 Switch Point Airflow Map</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Maps used airflow onto the columns of O2 Switch Point - Base (value = column, 0 to 8). Stock reaches the last column at 76 g/s, so the base curve spends most of its resolution below 30 g/s. Effect: reshapes where along airflow each base switch-point column applies Evidence: ledger:E0290</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>g/s used airflow</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="4" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="16" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="24" />
      <LABEL index="7" value="28" />
      <LABEL index="8" value="32" />
      <LABEL index="9" value="36" />
      <LABEL index="10" value="40" />
      <LABEL index="11" value="44" />
      <LABEL index="12" value="48" />
      <LABEL index="13" value="52" />
      <LABEL index="14" value="56" />
      <LABEL index="15" value="60" />
      <LABEL index="16" value="64" />
      <LABEL index="17" value="68" />
      <LABEL index="18" value="72" />
      <LABEL index="19" value="76" />
      <LABEL index="20" value="80" />
      <LABEL index="21" value="84" />
      <LABEL index="22" value="88" />
      <LABEL index="23" value="92" />
      <LABEL index="24" value="96" />
      <LABEL index="25" value="100" />
      <LABEL index="26" value="104" />
      <LABEL index="27" value="108" />
      <LABEL index="28" value="112" />
      <LABEL index="29" value="116" />
      <LABEL index="30" value="120" />
      <LABEL index="31" value="124" />
      <LABEL index="32" value="128" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2563C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>base column</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xFE" flags="0x30">
    <title>Throttle Follower Airflow vs RPM</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Follower airflow target vs rpm, before its throttle (stock 0.5), speed (0.68 at standstill), coolant and baro factors. Rows: normal In Gear, normal Park/Neutral, first idle after start In Gear, first idle P/N. Stock In Gear 2.4 (400 rpm) to 40 (6400 rpm). Part of the throttle follower (coast airflow): it holds extra idle airflow after a lift and lets it decay. After a throttle lift, this extra air is added to the commanded idle airflow and to the requested throttle opening, held, then bled off, so the throttle closes gradually instead of snapping shut (executed in the scheduler rig: a lift from 2000 rpm held about 3.5 g/s extra for about 0.8 s, then decayed to zero by about 1.8 s; with the follower airflow table zeroed the extra air and throttle opening were absent). Effect: raise = more...</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>4</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A18E" mmedelementsizebits="16" mmedrowcount="4" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0xFF" flags="0x30">
    <title>Throttle Follower Factor vs Throttle</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Scales the follower target vs the current throttle. Rows: normal, first idle after start. Stock 0.5 everywhere. Part of the throttle follower (coast airflow): it holds extra idle airflow after a lift and lets it decay. After a throttle lift, this extra air is added to the commanded idle airflow and to the requested throttle opening, held, then bled off, so the throttle closes gradually instead of snapping shut (executed in the scheduler rig: a lift from 2000 rpm held about 3.5 g/s extra for about 0.8 s, then decayed to zero by about 1.8 s; with the follower airflow table zeroed the extra air and throttle opening were absent). Effect: raise = more follower air Evidence: ledger:E0287, ledger:E0292, ledger:E0429, ledger:E0441, ledger:E0809</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="1.5" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4.5" />
      <LABEL index="5" value="6" />
      <LABEL index="6" value="8" />
      <LABEL index="7" value="11.2" />
      <LABEL index="8" value="15.7" />
      <LABEL index="9" value="22" />
      <LABEL index="10" value="30" />
      <LABEL index="11" value="40" />
      <LABEL index="12" value="50" />
      <LABEL index="13" value="60" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="80" />
      <LABEL index="16" value="90" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A2AE" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x100" flags="0x30">
    <title>Throttle Follower Factor vs Speed</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Scales the follower target vs vehicle speed. Stock 0.68 at 0-14 km/h, 1.0 above. Part of the throttle follower (coast airflow): it holds extra idle airflow after a lift and lets it decay. After a throttle lift, this extra air is added to the commanded idle airflow and to the requested throttle opening, held, then bled off, so the throttle closes gradually instead of snapping shut (executed in the scheduler rig: a lift from 2000 rpm held about 3.5 g/s extra for about 0.8 s, then decayed to zero by about 1.8 s; with the follower airflow table zeroed the extra air and throttle opening were absent). Effect: raise = more follower air at that speed Evidence: ledger:E0287, ledger:E0292, ledger:E0429, ledger:E0441, ledger:E0809</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>km/h</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="14" />
      <LABEL index="2" value="28" />
      <LABEL index="3" value="42" />
      <LABEL index="4" value="56" />
      <LABEL index="5" value="70" />
      <LABEL index="6" value="84" />
      <LABEL index="7" value="98" />
      <LABEL index="8" value="112" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A438" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>3.999939</max>
      <MATH equation="X/16384"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x101" flags="0x30">
    <title>Throttle Follower Factor vs Coolant</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Scales the follower target vs coolant. Stock 1.5 at 20 and 32 C, 1.0 elsewhere. Part of the throttle follower (coast airflow): it holds extra idle airflow after a lift and lets it decay. After a throttle lift, this extra air is added to the commanded idle airflow and to the requested throttle opening, held, then bled off, so the throttle closes gradually instead of snapping shut (executed in the scheduler rig: a lift from 2000 rpm held about 3.5 g/s extra for about 0.8 s, then decayed to zero by about 1.8 s; with the follower airflow table zeroed the extra air and throttle opening were absent). Effect: raise = more follower air at that coolant Evidence: ledger:E0287, ledger:E0292, ledger:E0429, ledger:E0441, ledger:E0809</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A3A8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>15.999756</max>
      <MATH equation="X/4096"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x102" flags="0x30">
    <title>Throttle Follower Decay Step vs RPM</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. How fast the follower air bleeds off once the hold time has passed, per control update. Stock In Gear 0.005 g/s at 400 rpm to 0.09 g/s above 2000 rpm; P/N about half. Rows: In Gear, Park/Neutral. Part of the throttle follower (coast airflow): it holds extra idle airflow after a lift and lets it decay. After a throttle lift, this extra air is added to the commanded idle airflow and to the requested throttle opening, held, then bled off, so the throttle closes gradually instead of snapping shut (executed in the scheduler rig: a lift from 2000 rpm held about 3.5 g/s extra for about 0.8 s, then decayed to zero by about 1.8 s; with the follower airflow table zeroed the extra air and throttle opening were absent). Effect: raise = follower air bleeds off faster (quicker return to idle, more dip...</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A21E" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g/s per update</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>31.999512</max>
      <MATH equation="X/2048"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x103" flags="0x30">
    <title>Throttle Follower Decay Factor vs Speed</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Scales the decay step vs vehicle speed. Stock 1.0 to 42 km/h, rising to 5.0 at 63-105 km/h. Part of the throttle follower (coast airflow): it holds extra idle airflow after a lift and lets it decay. After a throttle lift, this extra air is added to the commanded idle airflow and to the requested throttle opening, held, then bled off, so the throttle closes gradually instead of snapping shut (executed in the scheduler rig: a lift from 2000 rpm held about 3.5 g/s extra for about 0.8 s, then decayed to zero by about 1.8 s; with the follower airflow table zeroed the extra air and throttle opening were absent). Effect: raise = faster bleed-off at that speed Evidence: ledger:E0287, ledger:E0292, ledger:E0429, ledger:E0441, ledger:E0809</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>km/h</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="7" />
      <LABEL index="2" value="14" />
      <LABEL index="3" value="21" />
      <LABEL index="4" value="28" />
      <LABEL index="5" value="35" />
      <LABEL index="6" value="42" />
      <LABEL index="7" value="49" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="63" />
      <LABEL index="10" value="70" />
      <LABEL index="11" value="77" />
      <LABEL index="12" value="84" />
      <LABEL index="13" value="91" />
      <LABEL index="14" value="98" />
      <LABEL index="15" value="105" />
      <LABEL index="16" value="112" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A3CC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>15.999756</max>
      <MATH equation="X/4096"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x104" flags="0x30">
    <title>Throttle Follower Hold Time vs RPM</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. How long the follower air is held before it starts to bleed off. Stock In Gear 0.1 s at 0-800 rpm, 1.0 s at 1200, 0.3-0.4 s above 2000. Rows: In Gear, Park/Neutral. Part of the throttle follower (coast airflow): it holds extra idle airflow after a lift and lets it decay. After a throttle lift, this extra air is added to the commanded idle airflow and to the requested throttle opening, held, then bled off, so the throttle closes gradually instead of snapping shut (executed in the scheduler rig: a lift from 2000 rpm held about 3.5 g/s extra for about 0.8 s, then decayed to zero by about 1.8 s; with the follower airflow table zeroed the extra air and throttle opening were absent). Effect: raise = air held longer after a lift Evidence: ledger:E0287, ledger:E0292, ledger:E0429, ledger:E0441, l...</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A2F6" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x105" flags="0x30">
    <title>Throttle Follower Hold Factor vs Speed</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Scales the hold time vs vehicle speed. Stock 2.0 at standstill, 1.5 at 7-35 km/h, 1.0 above. Part of the throttle follower (coast airflow): it holds extra idle airflow after a lift and lets it decay. After a throttle lift, this extra air is added to the commanded idle airflow and to the requested throttle opening, held, then bled off, so the throttle closes gradually instead of snapping shut (executed in the scheduler rig: a lift from 2000 rpm held about 3.5 g/s extra for about 0.8 s, then decayed to zero by about 1.8 s; with the follower airflow table zeroed the extra air and throttle opening were absent). Effect: raise = longer hold at that speed Evidence: ledger:E0287, ledger:E0292, ledger:E0429, ledger:E0441, ledger:E0809</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>km/h</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="7" />
      <LABEL index="2" value="14" />
      <LABEL index="3" value="21" />
      <LABEL index="4" value="28" />
      <LABEL index="5" value="35" />
      <LABEL index="6" value="42" />
      <LABEL index="7" value="49" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="63" />
      <LABEL index="10" value="70" />
      <LABEL index="11" value="77" />
      <LABEL index="12" value="84" />
      <LABEL index="13" value="91" />
      <LABEL index="14" value="98" />
      <LABEL index="15" value="105" />
      <LABEL index="16" value="112" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A3F0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>15.999756</max>
      <MATH equation="X/4096"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x106" flags="0x30">
    <title>Idle Airflow Kick - Shift into P/N</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Short airflow kick after shifting into Park/Neutral, by accessory state (A/C off/on x a second flag off/on; the second flag is a dead/always-0 snapshot on stock, E0824). Stock 0.2 g/s. Added straight into the idle airflow request for about 0.2 s, then faded out (E0293). Effect: raise = more air right after shifting to P/N Evidence: ledger:E0287, ledger:E0293, ledger:E0824</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>4</indexcount>
      <units>state</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="base" />
      <LABEL index="1" value="A/C" />
      <LABEL index="2" value="row 2 (dead on stock)" />
      <LABEL index="3" value="row 3 (dead on stock)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x29FBC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="4" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x107" flags="0x30">
    <title>Idle Airflow Kick - Shift into Gear</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Short airflow kick after shifting into gear (the converter loads the engine), by accessory state (A/C off/on x a second flag off/on; the second flag is a dead/always-0 snapshot on stock, E0824). Stock 0.2 g/s. Added straight into the idle airflow request for about 0.2 s, then faded out (E0293). Effect: raise = more air right after shifting into gear (less rpm dip on engagement) Evidence: ledger:E0287, ledger:E0293, ledger:E0824</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>4</indexcount>
      <units>state</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="base" />
      <LABEL index="1" value="A/C" />
      <LABEL index="2" value="row 2 (dead on stock)" />
      <LABEL index="3" value="row 3 (dead on stock)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x29FC4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="4" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g/s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>31.999512</max>
      <MATH equation="X/2048"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x108" flags="0x30">
    <title>Idle Airflow Shift into P/N Kick Factor vs Trans Temp</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Scales the shift-into-P/N kick vs transmission fluid temperature. Stock 1.0. Added straight into the idle airflow request for about 0.2 s, then faded out (E0293). Effect: raise = bigger kick at that fluid temperature Evidence: ledger:E0287, ledger:E0293</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC trans fluid</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A084" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>15.999756</max>
      <MATH equation="X/4096"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x109" flags="0x30">
    <title>Idle Airflow Shift into Gear Kick Factor vs Trans Temp</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Scales the shift-into-gear kick vs transmission fluid temperature. Stock 1.0. Added straight into the idle airflow request for about 0.2 s, then faded out (E0293). Effect: raise = bigger kick at that fluid temperature Evidence: ledger:E0287, ledger:E0293</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC trans fluid</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A0CC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>15.999756</max>
      <MATH equation="X/4096"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x10A" flags="0x0">
    <title>Idle Airflow Kick - Shift into P/N Duration</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long the kick is held before it fades. Stock 0.2 s. Added straight into the idle airflow request for about 0.2 s, then faded out (E0293). Effect: raise = kick lasts longer Evidence: ledger:E0293</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29FE8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x10B" flags="0x0">
    <title>Idle Airflow Kick - Shift into Gear Duration</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long the kick is held before it fades. Stock 0.2 s. Added straight into the idle airflow request for about 0.2 s, then faded out (E0293). Effect: raise = kick lasts longer Evidence: ledger:E0293</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29FEE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x10C" flags="0x30">
    <title>Idle Airflow - Post-Start (first second)</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Airflow added right after the engine starts, vs time since start (columns, 0.5 s steps) and coolant (rows), until the Post-Start Time Limit passes. Stock 1.5 to 3.0 g/s for about the first second; later columns are never reached on stock limits. Effect: raise = more air in the first moment after start (helps a stumble or dip right after crank) Evidence: ledger:E0287, ledger:E0294, ledger:E0936</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>s since start</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="0.5" />
      <LABEL index="2" value="1" />
      <LABEL index="3" value="1.5" />
      <LABEL index="4" value="2" />
      <LABEL index="5" value="2.5" />
      <LABEL index="6" value="3" />
      <LABEL index="7" value="3.5" />
      <LABEL index="8" value="4" />
      <LABEL index="9" value="4.5" />
      <LABEL index="10" value="5" />
      <LABEL index="11" value="5.5" />
      <LABEL index="12" value="6" />
      <LABEL index="13" value="6.5" />
      <LABEL index="14" value="7" />
      <LABEL index="15" value="7.5" />
      <LABEL index="16" value="8" />
      <LABEL index="17" value="8.5" />
      <LABEL index="18" value="9" />
      <LABEL index="19" value="9.5" />
      <LABEL index="20" value="10" />
      <LABEL index="21" value="10.5" />
      <LABEL index="22" value="11" />
      <LABEL index="23" value="11.5" />
      <LABEL index="24" value="12" />
      <LABEL index="25" value="12.5" />
      <LABEL index="26" value="13" />
      <LABEL index="27" value="13.5" />
      <LABEL index="28" value="14" />
      <LABEL index="29" value="14.5" />
      <LABEL index="30" value="15" />
      <LABEL index="31" value="15.5" />
      <LABEL index="32" value="16" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x291C2" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x10D" flags="0x30">
    <title>Idle Airflow - Post-Start Time Limit (rpm above desired)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long after start the post-start airflow stays on, while rpm is above desired, vs coolant. Stock 1.5 s cold, 0.85 s from 20 C. Effect: raise = post-start air stays on longer Evidence: ledger:E0294</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x29626" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x10E" flags="0x30">
    <title>Idle Airflow - Post-Start Time Limit (rpm at or below desired)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long after start the post-start airflow stays on, while rpm is at or below desired, vs coolant. Stock 1.0 s cold, 0.85 s from 20 C. Effect: raise = post-start air stays on longer Evidence: ledger:E0294</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2964A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x10F" flags="0x30">
    <title>DTC Status (type / MIL) per Code</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. One status byte per trouble code (276 codes, row labels), shown raw. Bits 0-1: 0 = the PCM does not report the code, 1 to 3 = report type. Bit 2 is commonly read as the MIL request on GM/Delphi units (community decoding, not checked in this code). Bits 3-5 are copied into the stored fault record. Setting bits 0-1 to 0 stops the PCM reporting that code. Effect: changes how the PCM reports that trouble code Evidence: ledger:E0295, ledger:E0731</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>276</indexcount>
      <units>code</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="P0000" />
      <LABEL index="1" value="P0011" />
      <LABEL index="2" value="P0013" />
      <LABEL index="3" value="P0014" />
      <LABEL index="4" value="P0016" />
      <LABEL index="5" value="P0017" />
      <LABEL index="6" value="P0018" />
      <LABEL index="7" value="P0019" />
      <LABEL index="8" value="P0030" />
      <LABEL index="9" value="P0036" />
      <LABEL index="10" value="P0050" />
      <LABEL index="11" value="P0056" />
      <LABEL index="12" value="P0101" />
      <LABEL index="13" value="P0102" />
      <LABEL index="14" value="P0103" />
      <LABEL index="15" value="P0106" />
      <LABEL index="16" value="P0107" />
      <LABEL index="17" value="P0108" />
      <LABEL index="18" value="P0112" />
      <LABEL index="19" value="P0113" />
      <LABEL index="20" value="P0116" />
      <LABEL index="21" value="P0117" />
      <LABEL index="22" value="P0118" />
      <LABEL index="23" value="P0121" />
      <LABEL index="24" value="P0122" />
      <LABEL index="25" value="P0123" />
      <LABEL index="26" value="P0125" />
      <LABEL index="27" value="P0128" />
      <LABEL index="28" value="P0130" />
      <LABEL index="29" value="P0131" />
      <LABEL index="30" value="P0132" />
      <LABEL index="31" value="P0133" />
      <LABEL index="32" value="P0134" />
      <LABEL index="33" value="P0135" />
      <LABEL index="34" value="P0136" />
      <LABEL index="35" value="P0137" />
      <LABEL index="36" value="P0138" />
      <LABEL index="37" value="P0140" />
      <LABEL index="38" value="P0141" />
      <LABEL index="39" value="P0142" />
      <LABEL index="40" value="P0150" />
      <LABEL index="41" value="P0151" />
      <LABEL index="42" value="P0152" />
      <LABEL index="43" value="P0153" />
      <LABEL index="44" value="P0154" />
      <LABEL index="45" value="P0155" />
      <LABEL index="46" value="P0156" />
      <LABEL index="47" value="P0157" />
      <LABEL index="48" value="P0158" />
      <LABEL index="49" value="P0160" />
      <LABEL index="50" value="P0161" />
      <LABEL index="51" value="P0171" />
      <LABEL index="52" value="P0172" />
      <LABEL index="53" value="P0174" />
      <LABEL index="54" value="P0175" />
      <LABEL index="55" value="P0201" />
      <LABEL index="56" value="P0202" />
      <LABEL index="57" value="P0203" />
      <LABEL index="58" value="P0204" />
      <LABEL index="59" value="P0205" />
      <LABEL index="60" value="P0206" />
      <LABEL index="61" value="P0207" />
      <LABEL index="62" value="P0208" />
      <LABEL index="63" value="P0218" />
      <LABEL index="64" value="P0222" />
      <LABEL index="65" value="P0223" />
      <LABEL index="66" value="P0230" />
      <LABEL index="67" value="P0300" />
      <LABEL index="68" value="P0325" />
      <LABEL index="69" value="P0326" />
      <LABEL index="70" value="P0327" />
      <LABEL index="71" value="P0332" />
      <LABEL index="72" value="P0335" />
      <LABEL index="73" value="P0336" />
      <LABEL index="74" value="P0340" />
      <LABEL index="75" value="P0341" />
      <LABEL index="76" value="P0345" />
      <LABEL index="77" value="P0346" />
      <LABEL index="78" value="P0351" />
      <LABEL index="79" value="P0352" />
      <LABEL index="80" value="P0353" />
      <LABEL index="81" value="P0354" />
      <LABEL index="82" value="P0355" />
      <LABEL index="83" value="P0356" />
      <LABEL index="84" value="P0357" />
      <LABEL index="85" value="P0358" />
      <LABEL index="86" value="P0365" />
      <LABEL index="87" value="P0366" />
      <LABEL index="88" value="P0385" />
      <LABEL index="89" value="P0386" />
      <LABEL index="90" value="P0390" />
      <LABEL index="91" value="P0391" />
      <LABEL index="92" value="P0410" />
      <LABEL index="93" value="P0411" />
      <LABEL index="94" value="P0412" />
      <LABEL index="95" value="P0418" />
      <LABEL index="96" value="P0420" />
      <LABEL index="97" value="P0430" />
      <LABEL index="98" value="P0455" />
      <LABEL index="99" value="P0442" />
      <LABEL index="100" value="P0443" />
      <LABEL index="101" value="P0446" />
      <LABEL index="102" value="P0449" />
      <LABEL index="103" value="P0451" />
      <LABEL index="104" value="P0452" />
      <LABEL index="105" value="P0453" />
      <LABEL index="106" value="P0454" />
      <LABEL index="107" value="P0461" />
      <LABEL index="108" value="P0462" />
      <LABEL index="109" value="P0463" />
      <LABEL index="110" value="P0464" />
      <LABEL index="111" value="P0502" />
      <LABEL index="112" value="P0503" />
      <LABEL index="113" value="P0506" />
      <LABEL index="114" value="P0507" />
      <LABEL index="115" value="P0512" />
      <LABEL index="116" value="P0522" />
      <LABEL index="117" value="P0523" />
      <LABEL index="118" value="P0532" />
      <LABEL index="119" value="P0533" />
      <LABEL index="120" value="P0562" />
      <LABEL index="121" value="P0563" />
      <LABEL index="122" value="P0564" />
      <LABEL index="123" value="P0567" />
      <LABEL index="124" value="P0568" />
      <LABEL index="125" value="P0572" />
      <LABEL index="126" value="P0573" />
      <LABEL index="127" value="P0601" />
      <LABEL index="128" value="P0602" />
      <LABEL index="129" value="P0603" />
      <LABEL index="130" value="P0604" />
      <LABEL index="131" value="P0606" />
      <LABEL index="132" value="P0607" />
      <LABEL index="133" value="P0615" />
      <LABEL index="134" value="P0621" />
      <LABEL index="135" value="P0622" />
      <LABEL index="136" value="P0650" />
      <LABEL index="137" value="P0700" />
      <LABEL index="138" value="P0703" />
      <LABEL index="139" value="P0833" />
      <LABEL index="140" value="P0705" />
      <LABEL index="141" value="P0711" />
      <LABEL index="142" value="P0712" />
      <LABEL index="143" value="P0713" />
      <LABEL index="144" value="P0716" />
      <LABEL index="145" value="P0717" />
      <LABEL index="146" value="P0719" />
      <LABEL index="147" value="P0722" />
      <LABEL index="148" value="P0723" />
      <LABEL index="149" value="P0724" />
      <LABEL index="150" value="P0731" />
      <LABEL index="151" value="P0732" />
      <LABEL index="152" value="P0733" />
      <LABEL index="153" value="P0734" />
      <LABEL index="154" value="P0735" />
      <LABEL index="155" value="P0741" />
      <LABEL index="156" value="P0742" />
      <LABEL index="157" value="P0748" />
      <LABEL index="158" value="P0751" />
      <LABEL index="159" value="P0752" />
      <LABEL index="160" value="P0756" />
      <LABEL index="161" value="P0757" />
      <LABEL index="162" value="P0761" />
      <LABEL index="163" value="P0762" />
      <LABEL index="164" value="P0787" />
      <LABEL index="165" value="P0788" />
      <LABEL index="166" value="P1101" />
      <LABEL index="167" value="P1106" />
      <LABEL index="168" value="P1107" />
      <LABEL index="169" value="P1111" />
      <LABEL index="170" value="P1112" />
      <LABEL index="171" value="P1114" />
      <LABEL index="172" value="P1115" />
      <LABEL index="173" value="P0120" />
      <LABEL index="174" value="P1133" />
      <LABEL index="175" value="P1134" />
      <LABEL index="176" value="P1153" />
      <LABEL index="177" value="P1154" />
      <LABEL index="178" value="P0520" />
      <LABEL index="179" value="P0220" />
      <LABEL index="180" value="P2135" />
      <LABEL index="181" value="P2138" />
      <LABEL index="182" value="P2120" />
      <LABEL index="183" value="P2125" />
      <LABEL index="184" value="P0315" />
      <LABEL index="185" value="P1372" />
      <LABEL index="186" value="P1380" />
      <LABEL index="187" value="P1381" />
      <LABEL index="188" value="P1400" />
      <LABEL index="189" value="P0491" />
      <LABEL index="190" value="P0492" />
      <LABEL index="191" value="P2066" />
      <LABEL index="192" value="P2067" />
      <LABEL index="193" value="P2068" />
      <LABEL index="194" value="P0496" />
      <LABEL index="195" value="P2176" />
      <LABEL index="196" value="P0068" />
      <LABEL index="197" value="P2101" />
      <LABEL index="198" value="P1516" />
      <LABEL index="199" value="P2119" />
      <LABEL index="200" value="P1545" />
      <LABEL index="201" value="P0856" />
      <LABEL index="202" value="P1574" />
      <LABEL index="203" value="P1575" />
      <LABEL index="204" value="P250A" />
      <LABEL index="205" value="P062F" />
      <LABEL index="206" value="P1630" />
      <LABEL index="207" value="P1631" />
      <LABEL index="208" value="P1633" />
      <LABEL index="209" value="P1634" />
      <LABEL index="210" value="P0641" />
      <LABEL index="211" value="P0651" />
      <LABEL index="212" value="P060D" />
      <LABEL index="213" value="P060E" />
      <LABEL index="214" value="P1682" />
      <LABEL index="215" value="P2610" />
      <LABEL index="216" value="P1689" />
      <LABEL index="217" value="P1700" />
      <LABEL index="218" value="P1750" />
      <LABEL index="219" value="P2544" />
      <LABEL index="220" value="P278A" />
      <LABEL index="221" value="P1810" />
      <LABEL index="222" value="P1811" />
      <LABEL index="223" value="P1814" />
      <LABEL index="224" value="P1815" />
      <LABEL index="225" value="P1816" />
      <LABEL index="226" value="P1817" />
      <LABEL index="227" value="P1818" />
      <LABEL index="228" value="P1819" />
      <LABEL index="229" value="P1820" />
      <LABEL index="230" value="P1822" />
      <LABEL index="231" value="P1823" />
      <LABEL index="232" value="P1825" />
      <LABEL index="233" value="P1826" />
      <LABEL index="234" value="P0973" />
      <LABEL index="235" value="P0974" />
      <LABEL index="236" value="P0976" />
      <LABEL index="237" value="P0977" />
      <LABEL index="238" value="P2769" />
      <LABEL index="239" value="P2770" />
      <LABEL index="240" value="P0979" />
      <LABEL index="241" value="P0980" />
      <LABEL index="242" value="P2764" />
      <LABEL index="243" value="P2763" />
      <LABEL index="244" value="P0897" />
      <LABEL index="245" value="P0894" />
      <LABEL index="246" value="P2771" />
      <LABEL index="247" value="P1887" />
      <LABEL index="248" value="P2025" />
      <LABEL index="249" value="P2026" />
      <LABEL index="250" value="P2027" />
      <LABEL index="251" value="P2122" />
      <LABEL index="252" value="P2123" />
      <LABEL index="253" value="P2127" />
      <LABEL index="254" value="P2128" />
      <LABEL index="255" value="P2430" />
      <LABEL index="256" value="P2431" />
      <LABEL index="257" value="P2432" />
      <LABEL index="258" value="P2433" />
      <LABEL index="259" value="P2435" />
      <LABEL index="260" value="P2436" />
      <LABEL index="261" value="P2437" />
      <LABEL index="262" value="P2438" />
      <LABEL index="263" value="P2440" />
      <LABEL index="264" value="P2444" />
      <LABEL index="265" value="U1041" />
      <LABEL index="266" value="U1056" />
      <LABEL index="267" value="U1064" />
      <LABEL index="268" value="U1065" />
      <LABEL index="269" value="U1066" />
      <LABEL index="270" value="U1088" />
      <LABEL index="271" value="U1096" />
      <LABEL index="272" value="U1152" />
      <LABEL index="273" value="U1192" />
      <LABEL index="274" value="U1300" />
      <LABEL index="275" value="U1301" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x32D48" mmedelementsizebits="8" mmedrowcount="276" mmedcolcount="1" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>status bits (raw)</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>255.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x110" flags="0x0">
    <title>Coolant Hot Flag - On Above</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant temperature above which the PCM sets its coolant-hot status flag (sent to other modules). Stock 125 C. Effect: raise = hot flag comes on later Evidence: ledger:E0297</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x22482" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x111" flags="0x0">
    <title>Coolant Hot Flag - Off Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant temperature below which the coolant-hot flag clears. Stock 122 C. Effect: keep below the On value Evidence: ledger:E0297</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x22480" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x112" flags="0x0">
    <title>Coolant Over-Temp Flag 2 - On Above</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Second, higher coolant over-temperature flag, also broadcast to other modules on the vehicle network. Stock 129 C. Effect: raise = second flag comes on later Evidence: ledger:E0297</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x22486" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x113" flags="0x0">
    <title>Coolant Over-Temp Flag 2 - Off Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant temperature below which the second over-temperature flag clears. Stock 126 C. Effect: keep below the On value Evidence: ledger:E0297</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x22484" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x114" flags="0x0">
    <title>Catalyst Over-Temp Protection - Enter Above</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Modelled catalyst temperature above which over-temperature fuel enrichment ramps in. Stock 1015 C. Effect: lower = protection enrichment starts sooner (richer, cooler cats) Evidence: ledger:E0298</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x21620" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x115" flags="0x0">
    <title>Catalyst Over-Temp Protection - Enter Above (conditional)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower entry temperature used while protection was already active on the previous update. Stock 980 C. Effect: lower = protection starts sooner in that condition Evidence: ledger:E0298</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x21622" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x116" flags="0x0">
    <title>Catalyst Over-Temp Protection - Exit Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Modelled catalyst temperature below which the protection enrichment ramps back out. Stock 965 C. Effect: keep below the entry temperatures Evidence: ledger:E0298</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x21624" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x117" flags="0x0">
    <title>Catalyst Over-Temp Protection - Maximum EQ</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cap on commanded fuel (equivalence ratio) while protection enrichment is active. Stock 1.450 (lambda 0.69). Effect: raise = richer maximum protection fuel Evidence: ledger:E0298</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x21626" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>EQ</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x118" flags="0x0">
    <title>Catalyst Over-Temp Protection - Minimum Ramp-Out Step</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Smallest step by which protection enrichment is removed each update once the catalyst cools. Stock 0.040 EQ. Effect: raise = enrichment leaves faster Evidence: ledger:E0298</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x21628" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>EQ per update</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x119" flags="0x30">
    <title>Cranking Spark vs RPM vs Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark advance used while cranking, by coolant (rows) and engine speed (columns). Stock 3 to 12 deg. Effect: more advance = can start faster but risks kickback; less = softer, slower starts Evidence: ledger:E0299</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="50" />
      <LABEL index="2" value="100" />
      <LABEL index="3" value="150" />
      <LABEL index="4" value="200" />
      <LABEL index="5" value="250" />
      <LABEL index="6" value="300" />
      <LABEL index="7" value="350" />
      <LABEL index="8" value="400" />
      <LABEL index="9" value="450" />
      <LABEL index="10" value="500" />
      <LABEL index="11" value="550" />
      <LABEL index="12" value="600" />
      <LABEL index="13" value="650" />
      <LABEL index="14" value="700" />
      <LABEL index="15" value="750" />
      <LABEL index="16" value="800" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>10</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-20" />
      <LABEL index="2" value="0" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <LABEL index="9" value="140" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2CA75" mmedelementsizebits="8" mmedrowcount="10" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>1</decimalpl>
      <min>-64.000000</min>
      <max>63.500000</max>
      <MATH equation="X*0.5"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x11A" flags="0x0">
    <title>LTFT Maximum Adjustment</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest value a long-term fuel trim cell can learn. Stock 1.25 (+25 % fuel). Effect: raise = trims can add more fuel Evidence: ledger:E0300</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x250F0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>multiplier</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x11B" flags="0x0">
    <title>LTFT Minimum Adjustment</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest value a long-term fuel trim cell can learn. Stock 0.60 (-40 % fuel). Effect: lower = trims can remove more fuel Evidence: ledger:E0300</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x250F2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>multiplier</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x11C" flags="0x0">
    <title>LTFT Idle Cell - Throttle Enter Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The idle trim cell is used when throttle is below this (and speed below its limit). Stock 0.10 %. Effect: raise = idle cell used with slightly open throttle Evidence: ledger:E0300</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x250D2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x11D" flags="0x0">
    <title>LTFT Idle Cell - Throttle Leave Above</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The idle trim cell is left when throttle rises above this. Stock 0.20 %. Effect: keep above the enter value Evidence: ledger:E0300</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x250D0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x11E" flags="0x0">
    <title>LTFT Idle Cell - Speed Enter Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The idle trim cell is used below this vehicle speed. Stock 3 km/h. Effect: raise = idle cell used while rolling slowly Evidence: ledger:E0300</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x250D6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x11F" flags="0x0">
    <title>LTFT Idle Cell - Speed Leave Above</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The idle trim cell is left above this vehicle speed. Stock 6 km/h. Effect: keep above the enter value Evidence: ledger:E0300</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x250D4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x120" flags="0x0">
    <title>Clear Flood - Throttle Enable Above</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. While cranking, throttle above this switches cranking fuel to its clear-flood mode (for a flooded engine). Stock 90 %. Effect: lower = clear flood engages at less throttle Evidence: ledger:E0301</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x264CA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x121" flags="0x0">
    <title>Clear Flood - Throttle Disable Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Clear-flood mode ends when throttle falls below this. Stock 85 %. Effect: keep below the enable value Evidence: ledger:E0301</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x264CC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x122" flags="0x0">
    <title>Fuel Pump Prime Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long the fuel pump runs to prime the system at key-on. Stock 2.0 s. Effect: raise = longer prime (helps a slow-starting pump or long lines) Evidence: ledger:E0302</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x288DA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x123" flags="0x0">
    <title>Output Shaft Sensor Pulses Per Rev</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. Number of pulses the transmission output-shaft speed sensor makes per shaft revolution. The PCM divides by it to turn sensor pulses into output-shaft rpm, which drives vehicle speed, the speedometer and every speed-based table. Stock H3 40. It describes the sensor hardware: change it only for a different reluctor, never to correct the speedometer (use axle ratio and tire revs for that) (E0303). Effect: output-shaft rpm and vehicle speed scale as 1 / value Evidence: ledger:E0303</description>
    <CATEGORYMEM index="0" category="9" />
    <EMBEDDEDDATA mmedaddress="0x3DEDA" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>pulses/rev</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x124" flags="0x0">
    <title>PE Delay - Coolant Bypass Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Power enrichment is delayed only while coolant is at or above this; colder, PE comes in with no delay. Stock 0 C. Effect: raise = no PE delay over a wider cold range Evidence: ledger:E0307</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2860C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x125" flags="0x0">
    <title>PE Delay - Coolant Bypass Above</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Power enrichment is delayed only while coolant is at or below this; hotter, PE comes in with no delay. Stock 110 C. Effect: lower = no PE delay on a hot engine sooner Evidence: ledger:E0307</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2860E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x126" flags="0x0">
    <title>PE Delay - Throttle Rise Bypass</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A throttle rise at least this big since the last update skips the PE delay, but only below the speed bypass value. Stock 10 %. Effect: lower = smaller stabs of throttle skip the delay Evidence: ledger:E0307</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x28612" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% per update</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x127" flags="0x0">
    <title>PE Delay - Speed Bypass Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Below this vehicle speed a fast throttle rise skips the PE delay (for full-throttle launches). At or above it the delay always applies. Stock 8 km/h. Effect: raise = throttle-stab bypass works at higher speeds Evidence: ledger:E0307</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x28614" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x128" flags="0x0">
    <title>PE Delay - Maximum Delay Store</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The PE delay store fills with time spent out of power enrichment, up to this cap, and must drain before a delayed PE request takes effect. It drains at the rate set by the PE Delay Countdown Rate table. Stock 14.0 s. Effect: lower = shorter maximum PE delay; 0 = no delay Evidence: ledger:E0307</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2861A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x129" flags="0x0">
    <title>Closed Loop Idle - Throttle Enter Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Closed-loop fuel switches to its idle settings (short-term trim steps, O2 switch point) when throttle is below this and speed is below its limit. Stock 0.10 %. Effect: raise = idle settings used with slightly open throttle Evidence: ledger:E0305</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x253C4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x12A" flags="0x0">
    <title>Closed Loop Idle - Throttle Leave Above</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Closed-loop fuel leaves its idle settings when throttle reaches this. Stock 0.20 %. Effect: keep above the enter value Evidence: ledger:E0305</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x253C2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x12B" flags="0x0">
    <title>Closed Loop Idle - Speed Enter Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Closed-loop fuel uses its idle settings below this vehicle speed. Stock 3 km/h. Effect: raise = idle settings used while rolling slowly Evidence: ledger:E0305</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x253C8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x12C" flags="0x0">
    <title>Closed Loop Idle - Speed Leave Above</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Closed-loop fuel leaves its idle settings at this vehicle speed. Stock 6 km/h. Effect: keep above the enter value Evidence: ledger:E0305</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x253C6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x12D" flags="0x0">
    <title>DFCO Exit - RPM Drop per Update</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. While in decel fuel cut, an engine speed fall of at least this much between two updates ends the cut (guards against stalling when rpm drops fast). Stock 300 rpm. Effect: lower = fuel returns on smaller rpm drops Evidence: ledger:E0308</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2EE94" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x12E" flags="0x30">
    <title>DFCO Exit - Minimum RPM vs Desired Idle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. While in decel fuel cut, engine speed below this (looked up from the current desired idle) ends the cut. Stock 700 rpm at 800 rpm desired idle, 500 at 600. Effect: raise = fuel returns at a higher rpm (less chance of stalling, less fuel saved) Evidence: ledger:E0308</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>7</indexcount>
      <units>rpm (desired idle)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="600" />
      <LABEL index="2" value="800" />
      <LABEL index="3" value="1000" />
      <LABEL index="4" value="1200" />
      <LABEL index="5" value="1400" />
      <LABEL index="6" value="1600" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2EE98" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="7" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x12F" flags="0x30">
    <title>LTFT Cell RPM Boundaries</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine speeds that split the long-term fuel trim cells into 4 rpm columns (a column runs up to and including its boundary). Stock 100 / 6000 / 6500 rpm, so normal driving is all one column. Effect: spread these out to learn separate trims for different rpm bands (keep them rising) Evidence: ledger:E0310</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>boundary</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1" />
      <LABEL index="1" value="2" />
      <LABEL index="2" value="3" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x250DE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x130" flags="0x30">
    <title>LTFT Cell MAP Boundaries</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Manifold pressures that split the long-term fuel trim cells into 4 MAP rows. Stock 5 / 60 / 110 kPa, so normal driving uses two rows split at 60 kPa. Effect: move these to change which loads share a learned trim (keep them rising) Evidence: ledger:E0310</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>boundary</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1" />
      <LABEL index="1" value="2" />
      <LABEL index="2" value="3" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x250E4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>kPa</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>255.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x131" flags="0x0">
    <title>LTFT Cell RPM Hysteresis</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once in an LTFT cell, rpm must pass its boundaries by this much to change column. Stock 50 rpm. Effect: raise = fewer cell changes near a boundary Evidence: ledger:E0310</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x250DA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x132" flags="0x0">
    <title>LTFT Learn Deadband</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Short-term trim must be more than this far from 0 % before the long-term cell learns up or down. Stock 3.0 %. Effect: lower = long-term trims follow smaller errors (more hunting); higher = only larger errors are learned Evidence: ledger:E0311</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x250F8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x133" flags="0x30">
    <title>LTFT Learn Minimum MAP vs Baro</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Long-term fuel trim only learns when MAP is at least this, looked up from barometric pressure. Stock 0 (0.5 kPa at 105 kPa baro): no limit. Effect: raise = no learning at very light loads Evidence: ledger:E0311</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>kPa (baro)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="65" />
      <LABEL index="1" value="70" />
      <LABEL index="2" value="75" />
      <LABEL index="3" value="80" />
      <LABEL index="4" value="85" />
      <LABEL index="5" value="90" />
      <LABEL index="6" value="95" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="105" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x250FC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>kPa</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>255.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x134" flags="0x30">
    <title>Transmission Gear Ratios (1st-4th)</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. The PCM&#x27;s copy of the 4L60-E gear ratios (stock 3.06 / 1.63 / 1.00 / 0.70). Used to work out the transfer-case ratio for 4-Lo detection. Change only for a transmission with different ratios (E0337). A second copy at x2048 (Transmission Gear Ratios, second copy) feeds the torque estimate: change both (E0337). Effect: 4-Lo detection (transfer-case ratio) and any logic that divides by the current gear ratio Evidence: ledger:E0337</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>4</indexcount>
      <units>gear</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1st" />
      <LABEL index="1" value="2nd" />
      <LABEL index="2" value="3rd" />
      <LABEL index="3" value="4th" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3E956" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="4" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>:1</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x135" flags="0x0">
    <title>Transfer Case Low Range Ratio (4-Lo)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Low-range reduction of the transfer case, stock 4.03. The speed sensor sits after the transfer case, so in 4-Lo the PCM multiplies it by this value to get true transmission output speed for shifting and TCC, and divides it out of rpm per speed. Change it only for a transfer case with a different low range, and move the Low Range Detection band to match or 4-Lo will not be detected (E0314). Code-proven, not yet confirmed on a drive. Effect: 4-Lo shift points and TCC (trans output speed); vehicle speed is not affected Evidence: ledger:E0314, ledger:E0808</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DECA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>:1</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x136" flags="0x0">
    <title>Transfer Case Low Range Detection - Ratio Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower edge of the measured transfer-case ratio band that the PCM reads as 4-Lo (stock 3.70). Set it around the 4-Lo ratio when that changes (E0314). Code-proven, not yet confirmed on a drive. Effect: 4-Lo detection Evidence: ledger:E0314, ledger:E0808</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F7C0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>:1</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x137" flags="0x0">
    <title>Transfer Case Low Range Detection - Ratio Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper edge of the measured transfer-case ratio band that the PCM reads as 4-Lo (stock 4.28). Set it around the 4-Lo ratio when that changes (E0314). Code-proven, not yet confirmed on a drive. Effect: 4-Lo detection Evidence: ledger:E0314, ledger:E0808</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F7C2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>:1</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x138" flags="0x30">
    <title>Transient Fuel - Wall Deposit Fraction vs MAP vs Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fraction of each injection that sticks to the intake port wall instead of entering the cylinder (the wall-wetting &#x27;X&#x27;), by MAP (rows) and port temperature (columns). The PCM adds fuel to make up for it on tip-in and removes it on tip-out. Stock 0.75 cold to 0.37 hot. Effect: raise = more tip-in fuel and more tip-out fuel removal (fixes lean stumble on tip-in / rich on tip-out) Evidence: ledger:E0316</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (port temp model)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-24" />
      <LABEL index="2" value="-8" />
      <LABEL index="3" value="8" />
      <LABEL index="4" value="24" />
      <LABEL index="5" value="40" />
      <LABEL index="6" value="56" />
      <LABEL index="7" value="72" />
      <LABEL index="8" value="88" />
      <LABEL index="9" value="104" />
      <LABEL index="10" value="120" />
      <LABEL index="11" value="136" />
      <LABEL index="12" value="152" />
      <LABEL index="13" value="168" />
      <LABEL index="14" value="184" />
      <LABEL index="15" value="200" />
      <LABEL index="16" value="216" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>kPa (MAP)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="20" />
      <LABEL index="1" value="30" />
      <LABEL index="2" value="40" />
      <LABEL index="3" value="50" />
      <LABEL index="4" value="60" />
      <LABEL index="5" value="70" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="90" />
      <LABEL index="8" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x261EA" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x139" flags="0x30">
    <title>Transient Fuel - Deposit Multiplier vs Airflow</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplies the wall deposit fraction by engine airflow. Stock 1.0 everywhere. Effect: below 1.0 = less wall-wetting compensation at that airflow Evidence: ledger:E0316</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="8" />
      <LABEL index="2" value="16" />
      <LABEL index="3" value="24" />
      <LABEL index="4" value="32" />
      <LABEL index="5" value="40" />
      <LABEL index="6" value="48" />
      <LABEL index="7" value="56" />
      <LABEL index="8" value="64" />
      <LABEL index="9" value="72" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="88" />
      <LABEL index="12" value="96" />
      <LABEL index="13" value="104" />
      <LABEL index="14" value="112" />
      <LABEL index="15" value="120" />
      <LABEL index="16" value="128" />
      <LABEL index="17" value="136" />
      <LABEL index="18" value="144" />
      <LABEL index="19" value="152" />
      <LABEL index="20" value="160" />
      <LABEL index="21" value="168" />
      <LABEL index="22" value="176" />
      <LABEL index="23" value="184" />
      <LABEL index="24" value="192" />
      <LABEL index="25" value="200" />
      <LABEL index="26" value="208" />
      <LABEL index="27" value="216" />
      <LABEL index="28" value="224" />
      <LABEL index="29" value="232" />
      <LABEL index="30" value="240" />
      <LABEL index="31" value="248" />
      <LABEL index="32" value="256" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x26320" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>multiplier</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x13A" flags="0x30">
    <title>Transient Fuel - Tip-In Correction Multiplier vs Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. After a sudden MAP rise, the transient fuel correction is multiplied by this (by port temperature) until the throttle opens further or the wall film stops growing. Stock 1.5 cold, 0.7 hot. Effect: raise = more tip-in fuel Evidence: ledger:E0316</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (port temp model)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-24" />
      <LABEL index="2" value="-8" />
      <LABEL index="3" value="8" />
      <LABEL index="4" value="24" />
      <LABEL index="5" value="40" />
      <LABEL index="6" value="56" />
      <LABEL index="7" value="72" />
      <LABEL index="8" value="88" />
      <LABEL index="9" value="104" />
      <LABEL index="10" value="120" />
      <LABEL index="11" value="136" />
      <LABEL index="12" value="152" />
      <LABEL index="13" value="168" />
      <LABEL index="14" value="184" />
      <LABEL index="15" value="200" />
      <LABEL index="16" value="216" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x261C2" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>multiplier</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>3.999939</max>
      <MATH equation="X/16384"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x13B" flags="0x0">
    <title>Transient Fuel - MAP Filter Coefficient</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How fast the filtered MAP follows real MAP (tip-in is detected as MAP running ahead of it). Stock 0.20. Effect: lower = slower filter, tip-in detected more easily and for longer Evidence: ledger:E0316</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x261B6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x13C" flags="0x0">
    <title>Transient Fuel - Tip-In MAP Rise Trigger</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in mode starts when MAP is this far above its filtered value. Stock 2.0 kPa. Effect: lower = tip-in mode on smaller MAP rises Evidence: ledger:E0316</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x261BA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x13D" flags="0x0">
    <title>Transient Fuel - Tip-In End on Throttle Rise</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in mode ends when throttle rises by more than this between updates. Stock 0 %. Effect: raise = tip-in mode survives further throttle opening Evidence: ledger:E0316</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x261BC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% per update</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>399.993896</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/163.84"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x13E" flags="0x0">
    <title>Transient Fuel - Evaporation Cap</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper limit on the wall-film evaporation fraction, as a share of (1 - deposit fraction). Stock 0.9995 (no practical limit). Effect: lower = limits how fast the wall film can dry off Evidence: ledger:E0316</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x261BE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x13F" flags="0x30">
    <title>Cranking Dwell Multiplier vs Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. While cranking, the dwell from the base dwell table and modifier is multiplied by this, by battery voltage. Stock 1.0 everywhere. Effect: raise = longer coil charge while cranking (hotter spark, more coil heat) Evidence: ledger:E0318</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>22</indexcount>
      <units>V</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="4.5" />
      <LABEL index="1" value="5.5" />
      <LABEL index="2" value="6.5" />
      <LABEL index="3" value="7.5" />
      <LABEL index="4" value="8.5" />
      <LABEL index="5" value="9.5" />
      <LABEL index="6" value="10.5" />
      <LABEL index="7" value="11.5" />
      <LABEL index="8" value="12.5" />
      <LABEL index="9" value="13.5" />
      <LABEL index="10" value="14.5" />
      <LABEL index="11" value="15.5" />
      <LABEL index="12" value="16.5" />
      <LABEL index="13" value="17.5" />
      <LABEL index="14" value="18.5" />
      <LABEL index="15" value="19.5" />
      <LABEL index="16" value="20.5" />
      <LABEL index="17" value="21.5" />
      <LABEL index="18" value="22.5" />
      <LABEL index="19" value="23.5" />
      <LABEL index="20" value="24.5" />
      <LABEL index="21" value="25.5" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2F41E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="22" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>multiplier</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x140" flags="0x0">
    <title>Cranking Maximum Dwell Multiplier</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. While cranking, the maximum allowed dwell is the cranking dwell times this. Stock 1.20. Effect: sets how far cranking dwell may stretch or shrink Evidence: ledger:E0318</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2F44C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>multiplier</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x141" flags="0x0">
    <title>Cranking Minimum Dwell Multiplier</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. While cranking, the minimum dwell is the cranking dwell times this (further limited by the dwell ceiling). Stock 0.75. Effect: sets how far cranking dwell may stretch or shrink Evidence: ledger:E0318</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2F44A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>multiplier</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x142" flags="0x0">
    <title>Final Drive Ratio - Transmission Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The transmission&#x27;s own copy of the axle ratio (stock 4.5555 = 41/9). Shift points and converter lockup use a vehicle speed computed from this and Tire Revs per Distance - Transmission Speed, not from Final Drive Ratio. After an axle or tire change set both pairs, or the speedometer will be right and the shift points off (E0319). Change it together with Final Drive Ratio and VSS Tire Revs per Distance: this pair is what shift points and converter lockup use. Code-proven, not yet confirmed on a drive. Effect: shift points and converter lockup speed (transmission-side vehicle speed) Evidence: ledger:E0319, ledger:E0808</description>
    <CATEGORYMEM index="0" category="9" />
    <EMBEDDEDDATA mmedaddress="0x3DECE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>:1</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x143" flags="0x0">
    <title>Tire Revs per Distance - Transmission Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The transmission&#x27;s own tire size (stored as revs/km x64). Stock 639.4 revs/mi, about 1.8 % more than the speedometer&#x27;s 627.6, so the transmission sees speed about 1.8 % lower than the dash. Shift points and converter lockup follow this value, not VSS Tire Revs per Distance. Set both after a tire change (E0319). Change it together with Final Drive Ratio and VSS Tire Revs per Distance: this pair is what shift points and converter lockup use. Code-proven, not yet confirmed on a drive. Effect: shift points and converter lockup speed (transmission-side vehicle speed) Evidence: ledger:E0319, ledger:E0808</description>
    <CATEGORYMEM index="0" category="9" />
    <EMBEDDEDDATA mmedaddress="0x3DEF2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>revs/mi</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>1647.943110</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X*0.02514600"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x144" flags="0x30">
    <title>Idle Speed Control - Airflow Max (P/N)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Maximum airflow the idle speed controller may command in Park/Neutral, by desired idle rpm (rows) and coolant (columns). Cold (below about 0 C) the window is wide open (0 to 31.9 g/s); warm, max and min sit close together, so these tables largely set warm idle airflow. The A/C offset is added on top. Effect: raise = more idle air at that desired rpm and coolant (keep max &gt;= min) Evidence: ledger:E0322</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-21" />
      <LABEL index="2" value="-2" />
      <LABEL index="3" value="17" />
      <LABEL index="4" value="36" />
      <LABEL index="5" value="55" />
      <LABEL index="6" value="74" />
      <LABEL index="7" value="93" />
      <LABEL index="8" value="112" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>5</indexcount>
      <units>rpm (desired idle)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="550" />
      <LABEL index="1" value="650" />
      <LABEL index="2" value="750" />
      <LABEL index="3" value="850" />
      <LABEL index="4" value="950" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22198" mmedelementsizebits="16" mmedrowcount="5" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x145" flags="0x30">
    <title>Idle Speed Control - Airflow Min (P/N)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Minimum airflow the idle speed controller may command in Park/Neutral, by desired idle rpm (rows) and coolant (columns). Cold (below about 0 C) the window is wide open (0 to 31.9 g/s); warm, max and min sit close together, so these tables largely set warm idle airflow. The A/C offset is added on top. Effect: raise = more idle air at that desired rpm and coolant (keep max &gt;= min) Evidence: ledger:E0322</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-21" />
      <LABEL index="2" value="-2" />
      <LABEL index="3" value="17" />
      <LABEL index="4" value="36" />
      <LABEL index="5" value="55" />
      <LABEL index="6" value="74" />
      <LABEL index="7" value="93" />
      <LABEL index="8" value="112" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>5</indexcount>
      <units>rpm (desired idle)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="550" />
      <LABEL index="1" value="650" />
      <LABEL index="2" value="750" />
      <LABEL index="3" value="850" />
      <LABEL index="4" value="950" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x221F8" mmedelementsizebits="16" mmedrowcount="5" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x146" flags="0x30">
    <title>Idle Speed Control - Airflow Max (In Gear)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Maximum airflow the idle speed controller may command in in gear, by desired idle rpm (rows) and coolant (columns). Cold (below about 0 C) the window is wide open (0 to 31.9 g/s); warm, max and min sit close together, so these tables largely set warm idle airflow. The A/C offset is added on top. Effect: raise = more idle air at that desired rpm and coolant (keep max &gt;= min) Evidence: ledger:E0322</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-21" />
      <LABEL index="2" value="-2" />
      <LABEL index="3" value="17" />
      <LABEL index="4" value="36" />
      <LABEL index="5" value="55" />
      <LABEL index="6" value="74" />
      <LABEL index="7" value="93" />
      <LABEL index="8" value="112" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>5</indexcount>
      <units>rpm (desired idle)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="550" />
      <LABEL index="1" value="650" />
      <LABEL index="2" value="750" />
      <LABEL index="3" value="850" />
      <LABEL index="4" value="950" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22270" mmedelementsizebits="16" mmedrowcount="5" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x147" flags="0x30">
    <title>Idle Speed Control - Airflow Min (In Gear)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Minimum airflow the idle speed controller may command in in gear, by desired idle rpm (rows) and coolant (columns). Cold (below about 0 C) the window is wide open (0 to 31.9 g/s); warm, max and min sit close together, so these tables largely set warm idle airflow. The A/C offset is added on top. Effect: raise = more idle air at that desired rpm and coolant (keep max &gt;= min) Evidence: ledger:E0322</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-21" />
      <LABEL index="2" value="-2" />
      <LABEL index="3" value="17" />
      <LABEL index="4" value="36" />
      <LABEL index="5" value="55" />
      <LABEL index="6" value="74" />
      <LABEL index="7" value="93" />
      <LABEL index="8" value="112" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>5</indexcount>
      <units>rpm (desired idle)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="550" />
      <LABEL index="1" value="650" />
      <LABEL index="2" value="750" />
      <LABEL index="3" value="850" />
      <LABEL index="4" value="950" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x222D0" mmedelementsizebits="16" mmedrowcount="5" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x148" flags="0x0">
    <title>Idle Speed Control - A/C Airflow Offset Ramp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When the A/C is requested, the idle speed controller&#x27;s airflow limits are raised toward the A/C idle air term by this much per update. Stock 0.10 g/s. Effect: raise = limits follow the A/C air sooner Evidence: ledger:E0322</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x22162" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>g/s per update</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x149" flags="0x0">
    <title>RPM Limiter - Catalyst Hot Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Above this modelled catalyst temperature (and above the cut rpm) the ETC request is limited to its minimum to bring rpm down. Stock 800 C. Effect: raise = the catalyst-hot rpm cut needs a hotter catalyst Evidence: ledger:E0325</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x236EC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>4095.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x14A" flags="0x0">
    <title>RPM Limiter - Catalyst Hot Cut RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. With the catalyst hot, rpm above this starts the cut. Stock 3500 rpm. Effect: raise = cut starts at higher rpm Evidence: ledger:E0325</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x236DC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x14B" flags="0x0">
    <title>RPM Limiter - Catalyst Hot Cut Hold RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once started, the cut holds while rpm stays above this. Stock 3000 rpm. Effect: keep below the cut rpm Evidence: ledger:E0325</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x236DE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x14C" flags="0x0">
    <title>RPM Limiter - Engage RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The limiter / rpm control block becomes active once rpm exceeds this (when its enable flags are set). Stock 1100 rpm. Effect: raise = block engages at higher rpm Evidence: ledger:E0325</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x236E0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x14D" flags="0x0">
    <title>RPM Limiter - Release RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Below this rpm the limit is released (no limit). Stock 600 rpm. Effect: keep below idle Evidence: ledger:E0325</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x236E6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x14E" flags="0x0">
    <title>RPM Limiter - Release RPM (after release)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Release threshold used once released, for hysteresis. Stock 650 rpm. Effect: keep above the release rpm Evidence: ledger:E0325</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x236E4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x14F" flags="0x0">
    <title>RPM Control - Minimum Target RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The rpm controller&#x27;s target is the desired idle or this, whichever is higher. Stock 900 rpm. Effect: raise = higher minimum target Evidence: ledger:E0325</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x236E2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x150" flags="0x0">
    <title>RPM Control - Maximum Vehicle Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The rpm controller only runs below this vehicle speed. Stock 10 km/h. Effect: raise = runs at higher speeds Evidence: ledger:E0325</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x236F6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x151" flags="0x30">
    <title>Pedal Throttle Area - Rise Rate Limit vs RPM by Trans State</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Most the pedal throttle-area demand may increase per update, by transmission state (rows) and rpm (columns). Softens tip-in. Rows: 0 to 3 = 1st to 4th gear (4 and 5 unused on the 4-speed), 6 = Neutral, 7 = Reverse, 8 = Park. Effect: raise = sharper throttle response on tip-in Evidence: ledger:E0330</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>6</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>8</indexcount>
      <units>trans state</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="state 7" />
      <LABEL index="1" value="state 0 (1st)" />
      <LABEL index="2" value="state 1 (2nd)" />
      <LABEL index="3" value="state 2 (3rd)" />
      <LABEL index="4" value="state 3 (4th)" />
      <LABEL index="5" value="state 4" />
      <LABEL index="6" value="state 5" />
      <LABEL index="7" value="other (P / N)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x24678" mmedelementsizebits="16" mmedrowcount="8" mmedcolcount="6" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% area per update</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x152" flags="0x30">
    <title>Pedal Throttle Area - Fall Rate Limit vs RPM by Trans State</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Most the pedal throttle-area demand may decrease per update, by transmission state (rows) and rpm (columns). Softens tip-out. Rows: 0 to 3 = 1st to 4th gear (4 and 5 unused on the 4-speed), 6 = Neutral, 7 = Reverse, 8 = Park. Effect: raise = throttle closes faster on tip-out Evidence: ledger:E0330</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>6</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>8</indexcount>
      <units>trans state</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="state 7" />
      <LABEL index="1" value="state 0 (1st)" />
      <LABEL index="2" value="state 1 (2nd)" />
      <LABEL index="3" value="state 2 (3rd)" />
      <LABEL index="4" value="state 3 (4th)" />
      <LABEL index="5" value="state 4" />
      <LABEL index="6" value="state 5" />
      <LABEL index="7" value="other (P / N)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x24618" mmedelementsizebits="16" mmedrowcount="8" mmedcolcount="6" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% area per update</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x153" flags="0x30">
    <title>Cold Engine Forced Upshift Speed - 1st</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cold engine: when vehicle speed (transmission side) reaches this value in 1st gear, the PCM commands the next gear up. Stock 27.7 to 37.9 mph. Only active while corrected coolant is below 32 C (Cold Engine Shift Limits - Coolant Below) (E0331). Effect: cold-engine shift speed Evidence: ledger:E0331, ledger:E0725</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC (corrected coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-20" />
      <LABEL index="2" value="0" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38F5A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x154" flags="0x30">
    <title>Cold Engine Forced Upshift Speed - 2nd</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cold engine: when vehicle speed (transmission side) reaches this value in 2nd gear, the PCM commands the next gear up. Stock 53.7 to 75.8 mph. Only active while corrected coolant is below 32 C (Cold Engine Shift Limits - Coolant Below) (E0331). Effect: cold-engine shift speed Evidence: ledger:E0331, ledger:E0725</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC (corrected coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-20" />
      <LABEL index="2" value="0" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38F6E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x155" flags="0x30">
    <title>Cold Engine Forced Upshift Speed - 3rd</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cold engine: when vehicle speed (transmission side) reaches this value in 3rd gear, the PCM commands the next gear up. Stock 310.7 mph, i.e. off. Only active while corrected coolant is below 32 C (Cold Engine Shift Limits - Coolant Below) (E0331). Effect: cold-engine shift speed Evidence: ledger:E0331, ledger:E0725</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC (corrected coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-20" />
      <LABEL index="2" value="0" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38F82" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x156" flags="0x30">
    <title>Cold Engine Downshift Inhibit Speed - 2-1</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cold engine: while a 2-1 downshift is pending, it is held off whenever vehicle speed is at or above this value. Stock 25.2 to 32.6 mph. Only active while corrected coolant is below 32 C (Cold Engine Shift Limits - Coolant Below) (E0331). Effect: cold-engine shift speed Evidence: ledger:E0331, ledger:E0725</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC (corrected coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-20" />
      <LABEL index="2" value="0" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38F98" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x157" flags="0x30">
    <title>Cold Engine Downshift Inhibit Speed - 3-2</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cold engine: while a 3-2 downshift is pending, it is held off whenever vehicle speed is at or above this value. Stock 50.6 to 63.1 mph. Only active while corrected coolant is below 32 C (Cold Engine Shift Limits - Coolant Below) (E0331). Effect: cold-engine shift speed Evidence: ledger:E0331, ledger:E0725</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC (corrected coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-20" />
      <LABEL index="2" value="0" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38FAC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x158" flags="0x30">
    <title>Cold Engine Downshift Inhibit Speed - 4-3</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cold engine: while a 4-3 downshift is pending, it is held off whenever vehicle speed is at or above this value. Stock 307.6 mph, i.e. off. Only active while corrected coolant is below 32 C (Cold Engine Shift Limits - Coolant Below) (E0331). Effect: cold-engine shift speed Evidence: ledger:E0331, ledger:E0725</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC (corrected coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-20" />
      <LABEL index="2" value="0" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38FC0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x159" flags="0x0">
    <title>Cold Engine Shift Limits - Coolant Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The cold-engine shift speed limits (the cold forced-upshift and downshift-inhibit speed curves) apply while engine coolant is below this temperature. Stock 32 C. Effect: raise = the cold shift limits stay in force until the engine is warmer Evidence: ledger:E0331, ledger:E0725, ledger:E0791</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x38F94" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x15A" flags="0x30">
    <title>ETC Torque Control - Gain Switch Torque by Trans State</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. INACTIVE on the stock H3: the controller only runs when an enable = 1 (stock 0). Engine torque at which the throttle torque controller switches from its low-torque to its high-torque gains, per transmission state. Stock 150 / 140 / 135 / 120 Nm for states 0 to 3, 100 Nm above. Effect: raise = low-torque gains used up to higher torque Evidence: ledger:E0333, ledger:E0341</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>trans state</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="state 0" />
      <LABEL index="1" value="state 1" />
      <LABEL index="2" value="state 2" />
      <LABEL index="3" value="state 3" />
      <LABEL index="4" value="state 4" />
      <LABEL index="5" value="state 5" />
      <LABEL index="6" value="state 6" />
      <LABEL index="7" value="state 7" />
      <LABEL index="8" value="state 8" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x20476" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>Nm</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>16383.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x15B" flags="0x0">
    <title>ETC Torque Control - Gain Switch Hysteresis</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. INACTIVE on the stock H3: the controller only runs when an enable = 1 (stock 0). Once on the high-torque gains, the switch torque is lowered by half of this. Stock 10 Nm (5 Nm effective). Effect: raise = less switching back and forth Evidence: ledger:E0333, ledger:E0341</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x20470" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>16383.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x15C" flags="0x30">
    <title>2-1 Downshift Pressure vs Torque vs Speed (at or below 38.5 mph)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Shift pressure used for a 2-1 downshift that starts at or below 38.5 mph (62 km/h), by input torque and the speed when the downshift began. Stock 0 to 69.6 psi. Times the baro multiplier, plus the trans-temp adder, capped at max line pressure. Active only during a 2-1 downshift (from 2nd with a downshift commanded, until it leaves 2nd); replaces the normal shift pressure. Effect: 2-1 downshift firmness (low speed) Evidence: ledger:E0334, ledger:E0694</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>mph (speed when the 2-1 downshift started)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="15.5" />
      <LABEL index="1" value="17.1" />
      <LABEL index="2" value="18.6" />
      <LABEL index="3" value="20.2" />
      <LABEL index="4" value="21.7" />
      <LABEL index="5" value="23.3" />
      <LABEL index="6" value="24.9" />
      <LABEL index="7" value="26.4" />
      <LABEL index="8" value="28.0" />
      <LABEL index="9" value="29.5" />
      <LABEL index="10" value="31.1" />
      <LABEL index="11" value="32.6" />
      <LABEL index="12" value="34.2" />
      <LABEL index="13" value="35.7" />
      <LABEL index="14" value="37.3" />
      <LABEL index="15" value="38.8" />
      <LABEL index="16" value="40.4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>Nm (transmission input torque)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="12.5" />
      <LABEL index="2" value="25" />
      <LABEL index="3" value="37.5" />
      <LABEL index="4" value="50" />
      <LABEL index="5" value="62.5" />
      <LABEL index="6" value="75" />
      <LABEL index="7" value="87.5" />
      <LABEL index="8" value="100" />
      <LABEL index="9" value="112.5" />
      <LABEL index="10" value="125" />
      <LABEL index="11" value="137.5" />
      <LABEL index="12" value="150" />
      <LABEL index="13" value="162.5" />
      <LABEL index="14" value="175" />
      <LABEL index="15" value="187.5" />
      <LABEL index="16" value="200" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x37205" mmedelementsizebits="8" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>psi</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>147.938505</max>
      <MATH equation="X*0.580151"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x15D" flags="0x30">
    <title>2-1 Downshift Pressure vs Torque vs Speed (above 38.5 mph)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Shift pressure used for a 2-1 downshift that starts above 38.5 mph (62 km/h), by input torque and the speed when the downshift began. Stock 3.5 to 64.4 psi. Active only during a 2-1 downshift (from 2nd with a downshift commanded, until it leaves 2nd); replaces the normal shift pressure. Effect: 2-1 downshift firmness (high speed) Evidence: ledger:E0334, ledger:E0694</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>mph (speed when the 2-1 downshift started)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="44.7" />
      <LABEL index="1" value="46.9" />
      <LABEL index="2" value="48.5" />
      <LABEL index="3" value="50.6" />
      <LABEL index="4" value="52.8" />
      <LABEL index="5" value="55.0" />
      <LABEL index="6" value="57.2" />
      <LABEL index="7" value="59.3" />
      <LABEL index="8" value="61.5" />
      <LABEL index="9" value="63.7" />
      <LABEL index="10" value="65.9" />
      <LABEL index="11" value="68.0" />
      <LABEL index="12" value="70.2" />
      <LABEL index="13" value="72.4" />
      <LABEL index="14" value="74.6" />
      <LABEL index="15" value="76.7" />
      <LABEL index="16" value="79.5" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>Nm (transmission input torque)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="12.5" />
      <LABEL index="2" value="25" />
      <LABEL index="3" value="37.5" />
      <LABEL index="4" value="50" />
      <LABEL index="5" value="62.5" />
      <LABEL index="6" value="75" />
      <LABEL index="7" value="87.5" />
      <LABEL index="8" value="100" />
      <LABEL index="9" value="112.5" />
      <LABEL index="10" value="125" />
      <LABEL index="11" value="137.5" />
      <LABEL index="12" value="150" />
      <LABEL index="13" value="162.5" />
      <LABEL index="14" value="175" />
      <LABEL index="15" value="187.5" />
      <LABEL index="16" value="200" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x370DD" mmedelementsizebits="8" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>psi</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>147.938505</max>
      <MATH equation="X*0.580151"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x15E" flags="0x30">
    <title>2-1 Downshift Pressure Baro Multiplier (at or below 38.5 mph)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplies the low-speed 2-1 downshift pressure by barometric pressure. Stock 0.50 at 65 kPa rising to 1.00 at 95 kPa and above. Active only during a 2-1 downshift (from 2nd with a downshift commanded, until it leaves 2nd); replaces the normal shift pressure (E0334). Effect: 2-1 downshift pressure at altitude Evidence: ledger:E0334</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>kPa (barometric)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="65.0" />
      <LABEL index="1" value="67.5" />
      <LABEL index="2" value="70.0" />
      <LABEL index="3" value="72.5" />
      <LABEL index="4" value="75.0" />
      <LABEL index="5" value="77.5" />
      <LABEL index="6" value="80.0" />
      <LABEL index="7" value="82.5" />
      <LABEL index="8" value="85.0" />
      <LABEL index="9" value="87.5" />
      <LABEL index="10" value="90.0" />
      <LABEL index="11" value="92.5" />
      <LABEL index="12" value="95.0" />
      <LABEL index="13" value="97.5" />
      <LABEL index="14" value="100.0" />
      <LABEL index="15" value="102.5" />
      <LABEL index="16" value="105.0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3737C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>x</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x15F" flags="0x30">
    <title>2-1 Downshift Pressure Baro Multiplier (above 38.5 mph)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplies the high-speed 2-1 downshift pressure by barometric pressure. Stock 0.25 at 65 kPa rising to 1.00 at 100 kPa and above. Active only during a 2-1 downshift (from 2nd with a downshift commanded, until it leaves 2nd); replaces the normal shift pressure (E0334). Effect: 2-1 downshift pressure at altitude Evidence: ledger:E0334</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>kPa (barometric)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="65.0" />
      <LABEL index="1" value="67.5" />
      <LABEL index="2" value="70.0" />
      <LABEL index="3" value="72.5" />
      <LABEL index="4" value="75.0" />
      <LABEL index="5" value="77.5" />
      <LABEL index="6" value="80.0" />
      <LABEL index="7" value="82.5" />
      <LABEL index="8" value="85.0" />
      <LABEL index="9" value="87.5" />
      <LABEL index="10" value="90.0" />
      <LABEL index="11" value="92.5" />
      <LABEL index="12" value="95.0" />
      <LABEL index="13" value="97.5" />
      <LABEL index="14" value="100.0" />
      <LABEL index="15" value="102.5" />
      <LABEL index="16" value="105.0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x373A0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>x</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x160" flags="0x30">
    <title>2-1 Downshift Pressure Adder vs Trans Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Added to the 2-1 downshift pressure by transmission fluid temperature. Stock 15.1 psi at -28 C, 0 between 35 and 56 C, 15.1 psi at 119 C and above. Active only during a 2-1 downshift (from 2nd with a downshift commanded, until it leaves 2nd); replaces the normal shift pressure (E0334). Effect: 2-1 downshift pressure when cold or hot Evidence: ledger:E0334</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC (trans fluid)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-28" />
      <LABEL index="1" value="-7" />
      <LABEL index="2" value="14" />
      <LABEL index="3" value="35" />
      <LABEL index="4" value="56" />
      <LABEL index="5" value="77" />
      <LABEL index="6" value="98" />
      <LABEL index="7" value="119" />
      <LABEL index="8" value="140" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x37328" mmedelementsizebits="8" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>psi</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>73.969125</max>
      <MATH equation="X*0.290075"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x161" flags="0x0">
    <title>2-1 Downshift Pressure - Table Split Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. At or below this speed (when the 2-1 downshift starts) the low-speed pressure table and baro multiplier are used, above it the high-speed ones. Stock 38.5 mph (62 km/h). Active only during a 2-1 downshift (from 2nd with a downshift commanded, until it leaves 2nd); replaces the normal shift pressure (E0334). Effect: which 2-1 downshift pressure table applies Evidence: ledger:E0334</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x36E80" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>mph</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>318.137196</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/205.996032"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x162" flags="0x0">
    <title>2-1 Downshift Pressure Control - Enable</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. 1 = use the 2-1 downshift pressure tables during a 2-1 downshift, 0 = never (normal shift pressure throughout). Stock 1. Active only during a 2-1 downshift (from 2nd with a downshift commanded, until it leaves 2nd); replaces the normal shift pressure (E0334). Effect: turns 2-1 downshift pressure control on or off Evidence: ledger:E0334</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x36E88" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>0/1</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x163" flags="0x0">
    <title>2-1 Downshift Fixed Pressure - Manual Low Range Selected</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fixed 2-1 downshift pressure used instead of the pressure tables when the shifter has been moved into manual 1st or 2nd from a higher range during the downshift. Stock 40.6 psi (280 kPa). Effect: raise = a firmer 2-1 downshift after pulling the shifter into 1 or 2 Evidence: ledger:E0334, ledger:E0987</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x36E7C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>psi</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>594.066911</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X*0.00906488"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x164" flags="0x0">
    <title>2-1 Downshift Fixed Pressure - Engine Off or Solenoid Fault</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fixed 2-1 downshift pressure used instead of the pressure tables while the engine is not running or the shift timing solenoid fault reaction (P0787 / P0788) is active. Stock 5.1 psi (35 kPa). Effect: raise = more pressure on a 2-1 downshift in those two cases Evidence: ledger:E0334, ledger:E0987</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x36E7A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>psi</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>594.066911</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X*0.00906488"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x165" flags="0x30">
    <title>Engine Torque Map for Trans Torque Estimate (fraction of max)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Reference only. The transmission&#x27;s model of engine torque by throttle demand and rpm, as a percentage of maximum. It feeds the transmission&#x27;s torque estimate (times converter torque ratio and gear ratio) and its engine-speed predictor. Stock 0 at closed throttle, about 84 to 100 % at wide open. Changing it changes shift and line-pressure behaviour without changing the engine (E0336). Relative unit: the transmission&#x27;s torque model is scaled to its own full-scale engine torque, not to Nm (E0722). Effect: transmission torque estimate (shift pressure, shift timing) Evidence: ledger:E0336, ledger:E0722</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>% throttle demand</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.25" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.75" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31.25" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="56.25" />
      <LABEL index="10" value="62.5" />
      <LABEL index="11" value="68.75" />
      <LABEL index="12" value="75" />
      <LABEL index="13" value="81.25" />
      <LABEL index="14" value="87.5" />
      <LABEL index="15" value="93.75" />
      <LABEL index="16" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3E3FE" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% of full scale</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>99.998474</max>
      <MATH equation="X/655.36"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x166" flags="0x30">
    <title>Torque Converter Torque Ratio vs Speed Ratio</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Reference only. The transmission&#x27;s model of torque converter multiplication: 2.06 at stall (speed ratio 0) falling to 1.00 once the converter couples (speed ratio 0.94 and above). Used in the transmission torque estimate. Change it only to match a different converter (E0336). Effect: transmission torque estimate Evidence: ledger:E0336</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>speed ratio (turbine / engine)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.000" />
      <LABEL index="1" value="0.062" />
      <LABEL index="2" value="0.125" />
      <LABEL index="3" value="0.188" />
      <LABEL index="4" value="0.250" />
      <LABEL index="5" value="0.312" />
      <LABEL index="6" value="0.375" />
      <LABEL index="7" value="0.438" />
      <LABEL index="8" value="0.500" />
      <LABEL index="9" value="0.562" />
      <LABEL index="10" value="0.625" />
      <LABEL index="11" value="0.688" />
      <LABEL index="12" value="0.750" />
      <LABEL index="13" value="0.812" />
      <LABEL index="14" value="0.875" />
      <LABEL index="15" value="0.938" />
      <LABEL index="16" value="1.000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3E65E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>:1</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x167" flags="0x30">
    <title>Transmission Gear Ratios (1st-4th), second copy</title>
    <description>Code-validated and checked on the vehicle (see the live ledger ids). Change in small steps and log. A second copy of the 4L60-E gear ratios (stock 3.06 / 1.63 / 1.00 / 0.70), used by the transmission torque estimate. For a gearbox with other ratios change this and Transmission Gear Ratios (1st-4th) together (E0337). Effect: transmission torque estimate Evidence: ledger:E0337</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>4</indexcount>
      <units>gear</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1st" />
      <LABEL index="1" value="2nd" />
      <LABEL index="2" value="3rd" />
      <LABEL index="3" value="4th" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3E95E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="4" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>:1</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>31.999512</max>
      <MATH equation="X/2048"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x168" flags="0x30">
    <title>Garage Shift Pressure Adder - Into Drive, vs Speed vs Throttle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Extra engagement pressure when shifting from Park/Neutral (or Reverse) into a forward range, by vehicle speed and throttle. Stock 0 to 65 psi. Added to the 600 kPa garage base pressure; the sum is used when it is above normal line pressure. Pressure scale from the code (kPa x16); the PID documentation disagrees, so treat the psi values as provisional (E0338). Effect: Drive engagement firmness Evidence: ledger:E0338, ledger:E0713, ledger:E0931</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>% throttle demand</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.25" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.75" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31.25" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.75" />
      <LABEL index="8" value="50" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>5</indexcount>
      <units>mph</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="3.1" />
      <LABEL index="2" value="6.2" />
      <LABEL index="3" value="9.3" />
      <LABEL index="4" value="12.4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x37523" mmedelementsizebits="8" mmedrowcount="5" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>psi</units>
      <decimalpl>2</decimalpl>
      <min>-148.518656</min>
      <max>147.358354</max>
      <MATH equation="X*1.160302"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x169" flags="0x30">
    <title>Garage Shift Pressure Adder - Into Reverse, vs Speed vs Throttle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Extra engagement pressure when shifting into Reverse, by vehicle speed and throttle. Stock 0 to 45 psi. Added to the 600 kPa garage base pressure; the sum is used when it is above normal line pressure. Pressure scale from the code (kPa x16); the PID documentation disagrees, so treat the psi values as provisional (E0338). Effect: Reverse engagement firmness Evidence: ledger:E0338, ledger:E0713, ledger:E0931</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>% throttle demand</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.25" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.75" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31.25" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.75" />
      <LABEL index="8" value="50" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>5</indexcount>
      <units>mph</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="3.1" />
      <LABEL index="2" value="6.2" />
      <LABEL index="3" value="9.3" />
      <LABEL index="4" value="12.4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x37553" mmedelementsizebits="8" mmedrowcount="5" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>psi</units>
      <decimalpl>2</decimalpl>
      <min>-148.518656</min>
      <max>147.358354</max>
      <MATH equation="X*1.160302"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x16A" flags="0x30">
    <title>Garage Shift Pressure vs Trans Temp vs RPM - Into Drive (A)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engagement pressure adder into a forward range, timer below the P/N dwell threshold (mode 1; also used alone in mode 5), by transmission fluid temperature and engine rpm. Stock 0 to 44 psi. Added to the 600 kPa garage base pressure; the sum is used when it is above normal line pressure. Pressure scale from the code (kPa x16); the PID documentation disagrees, so treat the psi values as provisional (E0338). Effect: engagement firmness Evidence: ledger:E0338, ledger:E0713</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="512" />
      <LABEL index="1" value="640" />
      <LABEL index="2" value="768" />
      <LABEL index="3" value="896" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1152" />
      <LABEL index="6" value="1280" />
      <LABEL index="7" value="1408" />
      <LABEL index="8" value="1536" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>degC (trans fluid)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-28" />
      <LABEL index="1" value="-7" />
      <LABEL index="2" value="14" />
      <LABEL index="3" value="35" />
      <LABEL index="4" value="56" />
      <LABEL index="5" value="77" />
      <LABEL index="6" value="98" />
      <LABEL index="7" value="119" />
      <LABEL index="8" value="140" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x37645" mmedelementsizebits="8" mmedrowcount="9" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>psi</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>147.938505</max>
      <MATH equation="X*0.580151"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x16B" flags="0x30">
    <title>Garage Shift Pressure vs Trans Temp vs RPM - Into Drive (B)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engagement pressure adder into a forward range, timer above the P/N dwell threshold (mode 2), by transmission fluid temperature and engine rpm. Stock 0 to 44 psi. Added to the 600 kPa garage base pressure; the sum is used when it is above normal line pressure. Pressure scale from the code (kPa x16); the PID documentation disagrees, so treat the psi values as provisional (E0338). Effect: engagement firmness Evidence: ledger:E0338, ledger:E0713</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="512" />
      <LABEL index="1" value="640" />
      <LABEL index="2" value="768" />
      <LABEL index="3" value="896" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1152" />
      <LABEL index="6" value="1280" />
      <LABEL index="7" value="1408" />
      <LABEL index="8" value="1536" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>degC (trans fluid)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-28" />
      <LABEL index="1" value="-7" />
      <LABEL index="2" value="14" />
      <LABEL index="3" value="35" />
      <LABEL index="4" value="56" />
      <LABEL index="5" value="77" />
      <LABEL index="6" value="98" />
      <LABEL index="7" value="119" />
      <LABEL index="8" value="140" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x37755" mmedelementsizebits="8" mmedrowcount="9" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>psi</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>147.938505</max>
      <MATH equation="X*0.580151"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x16C" flags="0x30">
    <title>Garage Shift Pressure vs Trans Temp vs RPM - Into Reverse (A)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engagement pressure adder into Reverse, timer below the P/N dwell threshold (mode 3), by transmission fluid temperature and engine rpm. Stock 0 to 44 psi. Added to the 600 kPa garage base pressure; the sum is used when it is above normal line pressure. Pressure scale from the code (kPa x16); the PID documentation disagrees, so treat the psi values as provisional (E0338). Effect: engagement firmness Evidence: ledger:E0338, ledger:E0713</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="512" />
      <LABEL index="1" value="640" />
      <LABEL index="2" value="768" />
      <LABEL index="3" value="896" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1152" />
      <LABEL index="6" value="1280" />
      <LABEL index="7" value="1408" />
      <LABEL index="8" value="1536" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>degC (trans fluid)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-28" />
      <LABEL index="1" value="-7" />
      <LABEL index="2" value="14" />
      <LABEL index="3" value="35" />
      <LABEL index="4" value="56" />
      <LABEL index="5" value="77" />
      <LABEL index="6" value="98" />
      <LABEL index="7" value="119" />
      <LABEL index="8" value="140" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x376A5" mmedelementsizebits="8" mmedrowcount="9" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>psi</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>147.938505</max>
      <MATH equation="X*0.580151"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x16D" flags="0x30">
    <title>Garage Shift Pressure vs Trans Temp vs RPM - Into Reverse (B)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engagement pressure adder into Reverse, timer above the P/N dwell threshold (mode 4), by transmission fluid temperature and engine rpm. Stock 0 to 44 psi. Added to the 600 kPa garage base pressure; the sum is used when it is above normal line pressure. Pressure scale from the code (kPa x16); the PID documentation disagrees, so treat the psi values as provisional (E0338). Effect: engagement firmness Evidence: ledger:E0338, ledger:E0713</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="512" />
      <LABEL index="1" value="640" />
      <LABEL index="2" value="768" />
      <LABEL index="3" value="896" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1152" />
      <LABEL index="6" value="1280" />
      <LABEL index="7" value="1408" />
      <LABEL index="8" value="1536" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>degC (trans fluid)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-28" />
      <LABEL index="1" value="-7" />
      <LABEL index="2" value="14" />
      <LABEL index="3" value="35" />
      <LABEL index="4" value="56" />
      <LABEL index="5" value="77" />
      <LABEL index="6" value="98" />
      <LABEL index="7" value="119" />
      <LABEL index="8" value="140" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x377AD" mmedelementsizebits="8" mmedrowcount="9" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>psi</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>147.938505</max>
      <MATH equation="X*0.580151"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x16E" flags="0x0">
    <title>Garage Shift Base Pressure - Into Drive</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Base line pressure for a garage shift into a forward range (modes 1 and 2); the table adders are added to it and the sum is used when it is above normal line pressure. Stock 87.0 psi (600 kPa) (E0338). Effect: engagement firmness Evidence: ledger:E0338</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3E1E4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>psi</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>594.066911</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X*0.00906488"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x16F" flags="0x0">
    <title>Garage Shift Base Pressure - Into Reverse</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Base line pressure for a garage shift into Reverse (modes 3 and 4); the table adders are added to it and the sum is used when it is above normal line pressure. Stock 87.0 psi (600 kPa) (E0338). Effect: engagement firmness Evidence: ledger:E0338</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3E1E8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>psi</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>594.066911</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X*0.00906488"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x170" flags="0x0">
    <title>Garage Shift Base Pressure - Low-Speed Mode</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Base line pressure for a garage shift into the low-speed special mode 5; the table adders are added to it and the sum is used when it is above normal line pressure. Stock 87.0 psi (600 kPa) (E0338). Effect: engagement firmness Evidence: ledger:E0338</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3E1E6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>psi</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>594.066911</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X*0.00906488"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x171" flags="0x30">
    <title>Shift Torque Reduction - Ramp-In Start (gear ratio)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is a 1-D curve [COUNT = 17][17 points]; COUNT is a structure word, never edit it (E0340). During an upshift the measured gear ratio falls from the old gear to the new one. This sets the ratio at which the reduction starts ramping in, by engine torque, for each shift (rows 1-2, 2-3, 3-4). Stock 1-2 row 2.88 flat. Works with Torque Reduction vs Torque vs Shift (E0340). Effect: when during the shift engine torque is pulled and restored Evidence: ledger:E0340</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="30" />
      <LABEL index="3" value="59" />
      <LABEL index="4" value="89" />
      <LABEL index="5" value="118" />
      <LABEL index="6" value="148" />
      <LABEL index="7" value="177" />
      <LABEL index="8" value="207" />
      <LABEL index="9" value="236" />
      <LABEL index="10" value="266" />
      <LABEL index="11" value="295" />
      <LABEL index="12" value="325" />
      <LABEL index="13" value="354" />
      <LABEL index="14" value="384" />
      <LABEL index="15" value="413" />
      <LABEL index="16" value="443" />
      <LABEL index="17" value="472" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3F0F0" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gear ratio</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x172" flags="0x30">
    <title>Shift Torque Reduction - Full Reduction At (gear ratio)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is a 1-D curve [COUNT = 17][17 points]; COUNT is a structure word, never edit it (E0340). During an upshift the measured gear ratio falls from the old gear to the new one. This sets the ratio at which the reduction reaches its full value, by engine torque, for each shift (rows 1-2, 2-3, 3-4). Stock 1-2 row 2.88 flat. Works with Torque Reduction vs Torque vs Shift (E0340). Effect: when during the shift engine torque is pulled and restored Evidence: ledger:E0340</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="30" />
      <LABEL index="3" value="59" />
      <LABEL index="4" value="89" />
      <LABEL index="5" value="118" />
      <LABEL index="6" value="148" />
      <LABEL index="7" value="177" />
      <LABEL index="8" value="207" />
      <LABEL index="9" value="236" />
      <LABEL index="10" value="266" />
      <LABEL index="11" value="295" />
      <LABEL index="12" value="325" />
      <LABEL index="13" value="354" />
      <LABEL index="14" value="384" />
      <LABEL index="15" value="413" />
      <LABEL index="16" value="443" />
      <LABEL index="17" value="472" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3F160" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gear ratio</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x173" flags="0x30">
    <title>Shift Torque Reduction - Fade Start (gear ratio)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is a 1-D curve [COUNT = 17][17 points]; COUNT is a structure word, never edit it (E0340). During an upshift the measured gear ratio falls from the old gear to the new one. This sets the ratio at which the reduction starts fading out, by engine torque, for each shift (rows 1-2, 2-3, 3-4). Stock 1-2 row 2.00 to 2.50. Works with Torque Reduction vs Torque vs Shift (E0340). Effect: when during the shift engine torque is pulled and restored Evidence: ledger:E0340</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="30" />
      <LABEL index="3" value="59" />
      <LABEL index="4" value="89" />
      <LABEL index="5" value="118" />
      <LABEL index="6" value="148" />
      <LABEL index="7" value="177" />
      <LABEL index="8" value="207" />
      <LABEL index="9" value="236" />
      <LABEL index="10" value="266" />
      <LABEL index="11" value="295" />
      <LABEL index="12" value="325" />
      <LABEL index="13" value="354" />
      <LABEL index="14" value="384" />
      <LABEL index="15" value="413" />
      <LABEL index="16" value="443" />
      <LABEL index="17" value="472" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3F1D0" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gear ratio</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x174" flags="0x30">
    <title>Shift Torque Reduction - Fade End (gear ratio)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is a 1-D curve [COUNT = 17][17 points]; COUNT is a structure word, never edit it (E0340). During an upshift the measured gear ratio falls from the old gear to the new one. This sets the ratio at which the reduction has faded out completely, by engine torque, for each shift (rows 1-2, 2-3, 3-4). Stock 1-2 row 1.75 to 2.44. Works with Torque Reduction vs Torque vs Shift (E0340). Effect: when during the shift engine torque is pulled and restored Evidence: ledger:E0340</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="30" />
      <LABEL index="3" value="59" />
      <LABEL index="4" value="89" />
      <LABEL index="5" value="118" />
      <LABEL index="6" value="148" />
      <LABEL index="7" value="177" />
      <LABEL index="8" value="207" />
      <LABEL index="9" value="236" />
      <LABEL index="10" value="266" />
      <LABEL index="11" value="295" />
      <LABEL index="12" value="325" />
      <LABEL index="13" value="354" />
      <LABEL index="14" value="384" />
      <LABEL index="15" value="413" />
      <LABEL index="16" value="443" />
      <LABEL index="17" value="472" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3F240" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gear ratio</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x175" flags="0x30">
    <title>Trans Fluid Temp Sensor - Resistance Points</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Sensor resistance at each of the 33 temperature points of the fluid temperature sensor (stock 47 ohm at 150 C to 100.7 kohm at -40 C, the standard GM thermistor). Paired with Trans Fluid Temp Sensor - Temperature Points. Change only for a different sensor (E0342). Effect: reported and used transmission fluid temperature Evidence: ledger:E0342</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>point</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <LABEL index="31" value="31" />
      <LABEL index="32" value="32" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3DD94" mmedelementsizebits="32" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ohm</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>134217727.968750</max>
      <MATH equation="X/32"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x176" flags="0x30">
    <title>Trans Fluid Temp Sensor - Temperature Points</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Temperature at each of the 33 sensor resistance points (stock 150 C down to -40 C in 5.9 C steps); the PCM interpolates between them to get transmission fluid temperature (PID 1940) (E0342). Effect: reported and used transmission fluid temperature Evidence: ledger:E0342</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>point</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <LABEL index="31" value="31" />
      <LABEL index="32" value="32" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3DE1C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x177" flags="0x0">
    <title>Trans Hot Mode - Enter Above (fluid temp)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Hot mode starts when transmission fluid temperature rises above this. Stock 130.0 C (266 F). Hot mode switches the transmission to its hot shift and converter-lockup schedules. (E0343). Effect: transmission hot mode Evidence: ledger:E0343</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DCDE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x178" flags="0x0">
    <title>Trans Hot Mode - Leave Below (fluid temp)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Hot mode ends when fluid temperature is back below this and the minimum hot time has passed. Stock 123.0 C (253 F). Hot mode switches the transmission to its hot shift and converter-lockup schedules. (E0343). Effect: transmission hot mode Evidence: ledger:E0343</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DCE0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x179" flags="0x0">
    <title>Trans Hot Mode - Minimum Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once in hot mode the transmission stays in it at least this long. Stock 150 s. Hot mode switches the transmission to its hot shift and converter-lockup schedules. (E0343). Effect: transmission hot mode Evidence: ledger:E0343</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DCEA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x17A" flags="0x0">
    <title>Trans Hot Mode - Enable (fluid temp)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. 1 = enter hot mode on fluid temperature (sensor OK). Stock 1. Hot mode switches the transmission to its hot shift and converter-lockup schedules. (E0343). Effect: transmission hot mode Evidence: ledger:E0343</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DD8A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>0/1</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x17B" flags="0x0">
    <title>Trans Hot Mode - Enter Above (sensor fault)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Hot mode entry used while the fluid temperature sensor is faulted and a substitute temperature is used. Stock 115.0 C. Hot mode switches the transmission to its hot shift and converter-lockup schedules. (E0343). Effect: transmission hot mode Evidence: ledger:E0343</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DCE2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x17C" flags="0x0">
    <title>Trans Hot Mode - Leave Below (sensor fault)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Hot mode exit used while the fluid temperature sensor is faulted. Stock 110.0 C. Hot mode switches the transmission to its hot shift and converter-lockup schedules. (E0343). Effect: transmission hot mode Evidence: ledger:E0343</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DCE4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x17D" flags="0x30">
    <title>Torque-Based Upshift Inhibit - Enable by Shift Mode</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. 1 = the upshift inhibit runs in that shift mode. Stock on in modes 3, 6 and 10. Part of the torque-based upshift inhibit: an upshift is held off when the torque predicted after it would be below what the truck needs now. Effect: whether upshifts can be held for lack of torque Evidence: ledger:E0345</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>11</indexcount>
      <units>shift mode</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38B72" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="11" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>0/1</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x17E" flags="0x30">
    <title>Upshift Inhibit - Expected Throttle vs Speed (mode 6)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is a 1-D curve [COUNT = 17][17 points]; COUNT is a structure word, never edit it (E0345). The throttle the predictor assumes the driver will hold after an upshift, by vehicle speed and current gear, in shift mode 6. Stock 100 % in 1st and 4th; 2nd and 3rd dip to 25..37 % at mid speeds. Lower = the truck is assumed to need less torque, so upshifts are held less often. Part of the torque-based upshift inhibit: an upshift is held off when the torque predicted after it would be below what the truck needs now (E0345). Effect: how readily upshifts are held under load Evidence: ledger:E0345</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0.0" />
      <LABEL index="2" value="6.2" />
      <LABEL index="3" value="12.4" />
      <LABEL index="4" value="18.6" />
      <LABEL index="5" value="24.9" />
      <LABEL index="6" value="31.1" />
      <LABEL index="7" value="37.3" />
      <LABEL index="8" value="43.5" />
      <LABEL index="9" value="49.7" />
      <LABEL index="10" value="55.9" />
      <LABEL index="11" value="62.1" />
      <LABEL index="12" value="68.4" />
      <LABEL index="13" value="74.6" />
      <LABEL index="14" value="80.8" />
      <LABEL index="15" value="87.0" />
      <LABEL index="16" value="93.2" />
      <LABEL index="17" value="99.4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>4</indexcount>
      <units>current gear</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1st" />
      <LABEL index="1" value="2nd" />
      <LABEL index="2" value="3rd" />
      <LABEL index="3" value="4th" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38C32" mmedelementsizebits="16" mmedrowcount="4" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% throttle demand</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>99.998474</max>
      <MATH equation="X/655.36"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x17F" flags="0x30">
    <title>Upshift Inhibit - Expected Throttle vs Speed (other modes)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is a 1-D curve [COUNT = 17][17 points]; COUNT is a structure word, never edit it (E0345). The throttle the predictor assumes the driver will hold after an upshift, by vehicle speed and current gear, in shift modes other than 6 and 8. Stock 100 % in 1st and 4th; 2nd and 3rd dip to 25..37 % at mid speeds. Lower = the truck is assumed to need less torque, so upshifts are held less often. Part of the torque-based upshift inhibit: an upshift is held off when the torque predicted after it would be below what the truck needs now (E0345). Effect: how readily upshifts are held under load Evidence: ledger:E0345</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0.0" />
      <LABEL index="2" value="6.2" />
      <LABEL index="3" value="12.4" />
      <LABEL index="4" value="18.6" />
      <LABEL index="5" value="24.9" />
      <LABEL index="6" value="31.1" />
      <LABEL index="7" value="37.3" />
      <LABEL index="8" value="43.5" />
      <LABEL index="9" value="49.7" />
      <LABEL index="10" value="55.9" />
      <LABEL index="11" value="62.1" />
      <LABEL index="12" value="68.4" />
      <LABEL index="13" value="74.6" />
      <LABEL index="14" value="80.8" />
      <LABEL index="15" value="87.0" />
      <LABEL index="16" value="93.2" />
      <LABEL index="17" value="99.4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>4</indexcount>
      <units>current gear</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1st" />
      <LABEL index="1" value="2nd" />
      <LABEL index="2" value="3rd" />
      <LABEL index="3" value="4th" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38D52" mmedelementsizebits="16" mmedrowcount="4" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% throttle demand</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>99.998474</max>
      <MATH equation="X/655.36"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x180" flags="0x30">
    <title>Tip-In Torque Mgmt - Minimum Speed by Gear</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only, closed-throttle tip-ins): active only above this vehicle speed. Stock 5 km/h. Effect: widens or narrows the speed range where tip-ins are softened Evidence: ledger:E0346</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>6</indexcount>
      <units>trans state</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="state 0" />
      <LABEL index="1" value="state 1" />
      <LABEL index="2" value="state 2" />
      <LABEL index="3" value="state 3" />
      <LABEL index="4" value="state 4" />
      <LABEL index="5" value="state 5" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x20F2C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="6" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>km/h</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>511.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x181" flags="0x30">
    <title>Tip-In Torque Mgmt - Maximum Speed by Gear</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only, closed-throttle tip-ins): active only below this vehicle speed. Stock 64 km/h. Effect: widens or narrows the speed range where tip-ins are softened Evidence: ledger:E0346</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>6</indexcount>
      <units>trans state</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="state 0" />
      <LABEL index="1" value="state 1" />
      <LABEL index="2" value="state 2" />
      <LABEL index="3" value="state 3" />
      <LABEL index="4" value="state 4" />
      <LABEL index="5" value="state 5" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x20F20" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="6" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>km/h</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>511.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x182" flags="0x30">
    <title>Tip-In Torque Mgmt - Pedal Area Trigger by Gear</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only, closed-throttle tip-ins): a tip-in is detected when the pedal throttle-area demand reaches this. Stock 3.0 %. Effect: raise = only bigger tip-ins are softened Evidence: ledger:E0346</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>6</indexcount>
      <units>trans state</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="state 0" />
      <LABEL index="1" value="state 1" />
      <LABEL index="2" value="state 2" />
      <LABEL index="3" value="state 3" />
      <LABEL index="4" value="state 4" />
      <LABEL index="5" value="state 5" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2104C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="6" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% area</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x183" flags="0x0">
    <title>Tip-In Torque Mgmt - Closed Throttle Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only, closed-throttle tip-ins): throttle counts as closed below this. Stock 0.38 %. Effect: raise = counts as closed with slightly open throttle Evidence: ledger:E0346</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x20F50" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x184" flags="0x0">
    <title>Tip-In Torque Mgmt - Closed Throttle Ends Above</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only, closed-throttle tip-ins): the closed-throttle flag clears at this. Stock 0.47 %. Effect: keep above the closed value Evidence: ledger:E0346</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x20F4E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x185" flags="0x0">
    <title>Tip-In Torque Mgmt - Minimum Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only, closed-throttle tip-ins): only above this coolant temperature. Stock 75 C. Effect: lower = also when colder Evidence: ledger:E0346</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x20F52" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x186" flags="0x0">
    <title>Tip-In Torque Mgmt - Active Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only, closed-throttle tip-ins): how long the tip-in limits stay on after a trigger. Stock 0.40 s. Effect: raise = softer, longer tip-in Evidence: ledger:E0346</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x21064" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x187" flags="0x0">
    <title>Tip-In Torque Mgmt - Gear Change Settle Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only, closed-throttle tip-ins): after a transmission state change, triggers are blocked for this long. Stock 0.05 s. Effect: raise = longer block after shifts Evidence: ledger:E0346</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x21066" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x188" flags="0x0">
    <title>Idle Airflow Learn - Stored Copy Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle airflow learn. Upper clamp on the filtered copy of the learned idle airflow kept in keep-alive memory. Stock 3.5 g/s. Effect: raise = the stored learn can hold more air Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28C52" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>g/s</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x189" flags="0x0">
    <title>Idle Airflow Learn - Stored Copy Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle airflow learn. Lower clamp on the filtered stored copy. Stock 0. Effect: lower = the stored learn can take air away Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28C54" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>g/s</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x18A" flags="0x0">
    <title>Idle Airflow Learn - Saved Value Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle airflow learn. Upper clamp applied when the learn is written to keep-alive memory. Stock 3.5 g/s. Effect: raise = a larger learned value survives key-off Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28C56" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>g/s</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x18B" flags="0x0">
    <title>Idle Airflow Learn - Saved Value Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle airflow learn. Lower clamp applied when the learn is written to keep-alive memory. Stock -1.0 g/s. Effect: lower = a more negative learned value survives key-off Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28C58" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>g/s</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x18C" flags="0x0">
    <title>Idle Airflow Learn - Stored Copy Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle airflow learn. How fast the stored copy follows the learned value each update (first-order filter). Stock 0.01. Effect: raise = the stored learn tracks changes faster Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28C5E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x18D" flags="0x0">
    <title>Idle Airflow Learn - Restore Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle airflow learn. How fast the working learned value is pulled toward the stored copy when the truck is moving above the speed and rpm limits. Stock 0.1; the stock speed limit is 255 km/h, so on stock it never runs. Effect: raise = faster pull back to the stored value Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28C5C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x18E" flags="0x0">
    <title>Idle Airflow Learn - Filter Enable Run Time (learn below stored)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle airflow learn. The stored copy is only filtered after the engine has run this long, when the new learn is at or below the stored copy. Stock 90 s. Effect: raise = later learning after a start Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28C6E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x18F" flags="0x0">
    <title>Idle Airflow Learn - Filter Enable Run Time (learn above stored)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle airflow learn. As the other run-time gate, when the new learn is above the stored copy. Stock 90 s. Effect: raise = later learning after a start Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28C70" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x190" flags="0x0">
    <title>Idle Airflow Learn - Filter Minimum Idle-Mode Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle airflow learn. Minimum time in the idle-control timer before the stored copy is filtered. Stock 5 s. Effect: raise = only long idles update the stored learn Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28C72" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x191" flags="0x0">
    <title>Idle Airflow Learn - Capture Minimum Idle-Mode Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle airflow learn. Minimum time in the idle-control timer before a new learned value is captured. Stock 30 s. Effect: raise = only long idles capture a new learn Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28C74" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x192" flags="0x0">
    <title>Idle Airflow Learn - Capture Stable-State Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle airflow learn. The trans-state and A/C state must be unchanged this long before a capture. Stock 2 s. Effect: raise = more settling before a capture Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28C6C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x193" flags="0x0">
    <title>Idle Airflow Learn - Filter Stable-State Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle airflow learn. The same stable-state timer, for the stored-copy filter. Stock 1 s. Effect: raise = more settling before filtering Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28C6A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x194" flags="0x0">
    <title>Idle Airflow Learn - Filter Maximum Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle airflow learn. The stored copy is only filtered below this vehicle speed. Stock 2 km/h. Effect: raise = learning while creeping Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28C68" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x195" flags="0x0">
    <title>Altitude/Cold Idle-Up - Hold Maximum Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Start-up flare and altitude idle-up gating. The altitude/cold idle-up (stock amount 0) is held while vehicle speed is below this. Stock 8 km/h. Effect: affects only a non-zero idle-up amount Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29F40" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x196" flags="0x0">
    <title>Altitude/Cold Idle-Up - Hold Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Start-up flare and altitude idle-up gating. How long the altitude/cold idle-up is held (timer in 1/20 s). Stock 30 s. Effect: raise = idle-up lasts longer Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29F44" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x197" flags="0x0">
    <title>Altitude/Cold Idle-Up - Baro Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Start-up flare and altitude idle-up gating. The idle-up applies when barometric pressure is below this. Stock 80 kPa. Effect: raise = applies at lower altitude Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29F30" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x198" flags="0x0">
    <title>Start-Up RPM Flare - Cancel After Run Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Start-up flare and altitude idle-up gating. After this run time the start-up flare is cancelled as soon as the truck moves or the throttle opens. Stock 8 s. Effect: raise = the flare survives an early drive-away longer Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29F46" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x199" flags="0x0">
    <title>Start-Up RPM Flare - Cancel Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Start-up flare and altitude idle-up gating. Vehicle speed above which the flare is cancelled (after the cancel run time). Stock 30 km/h. Effect: raise = flare kept to a higher speed Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29F42" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x19A" flags="0x0">
    <title>Start-Up RPM Flare - Cancel Throttle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Start-up flare and altitude idle-up gating. Throttle above which the flare is cancelled (after the cancel run time). Stock 5 %. Effect: raise = flare kept with more throttle Evidence: ledger:E0347</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29F32" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% throttle</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x19B" flags="0x0">
    <title>Idle RPM-Control Mode - Maximum Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle rpm-control mode entry. The mode is only entered below this vehicle speed (plus the hysteresis once active). Stock 17.5 km/h. Effect: raise = mode entered at higher speed Evidence: ledger:E0347, ledger:E0429, ledger:E0441</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x291A8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x19C" flags="0x0">
    <title>Idle RPM-Control Mode - Speed Hysteresis</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle rpm-control mode entry. Added to the maximum speed while the mode is active. Stock 2 km/h. Effect: raise = mode held to a higher speed Evidence: ledger:E0347, ledger:E0429, ledger:E0441</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x291B2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x19D" flags="0x0">
    <title>Idle RPM-Control Mode - Entry Delay (rpm at/above desired)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle rpm-control mode entry. Time since the throttle closed before the mode is entered, when rpm is at or above desired. Stock 0.75 s. Effect: raise = later entry after a lift Evidence: ledger:E0347, ledger:E0429, ledger:E0441</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x291B4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x19E" flags="0x0">
    <title>Idle RPM-Control Mode - Entry Delay (rpm below desired)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle rpm-control mode entry. As above when rpm is below desired. Stock 0.0125 s. Effect: raise = later entry when rpm sags Evidence: ledger:E0347, ledger:E0429, ledger:E0441</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x291B6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x19F" flags="0x0">
    <title>Upshift Hold RPM Ceiling - Enable</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. 1 = run the engine-speed ceiling while an upshift is held. Stock 0 (off). Part of the upshift-hold engine-speed ceiling: while the torque-based upshift inhibit holds a gear, this limits engine speed through a request to the engine side. Switched off on the stock H3 (enable = 0) (E0349). Effect: engine speed while an upshift is held Evidence: ledger:E0349</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x38B14" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>0/1</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1A0" flags="0x0">
    <title>Upshift Hold RPM Ceiling - Release Offset</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. In the release gear or above, the ceiling is dropped once engine rpm plus this offset passes it (stock 400 rpm). Part of the upshift-hold engine-speed ceiling: while the torque-based upshift inhibit holds a gear, this limits engine speed through a request to the engine side. Switched off on the stock H3 (enable = 0) (E0349). Effect: engine speed while an upshift is held Evidence: ledger:E0349</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x38B16" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1A1" flags="0x0">
    <title>Upshift Hold RPM Ceiling - Band</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Band below the ceiling in which engine speed is tracked instead of clamped (stock 200 rpm). Part of the upshift-hold engine-speed ceiling: while the torque-based upshift inhibit holds a gear, this limits engine speed through a request to the engine side. Switched off on the stock H3 (enable = 0) (E0349). Effect: engine speed while an upshift is held Evidence: ledger:E0349</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x38B18" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x1A2" flags="0x30">
    <title>Upshift Hold RPM Ceiling - Release Gear by Mode</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. At or above this gear (per mode) the ceiling only releases, it does not clamp. Stock 4th in every mode. Part of the upshift-hold engine-speed ceiling: while the torque-based upshift inhibit holds a gear, this limits engine speed through a request to the engine side. Switched off on the stock H3 (enable = 0). Effect: engine speed while an upshift is held Evidence: ledger:E0349</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>8</indexcount>
      <units>mode</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38B1E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gear</units>
      <decimalpl>0</decimalpl>
      <min>1.000000</min>
      <max>65536.000000</max>
      <MATH equation="X+1"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1A3" flags="0x30">
    <title>Upshift Hold RPM Ceiling - Reduction Gain by Gear</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplies the coolant curve before it is subtracted from the base speed (stock 0.205 / 0.215 / 0.225 / 0.234). Part of the upshift-hold engine-speed ceiling: while the torque-based upshift inhibit holds a gear, this limits engine speed through a request to the engine side. Switched off on the stock H3 (enable = 0) (E0349). Effect: engine speed while an upshift is held Evidence: ledger:E0349</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>4</indexcount>
      <units>current gear</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1st" />
      <LABEL index="1" value="2nd" />
      <LABEL index="2" value="3rd" />
      <LABEL index="3" value="4th" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38B2E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="4" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>x</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1A4" flags="0x30">
    <title>Upshift Hold RPM Ceiling - Reduction vs Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Amount taken off the WOT shift rpm by coolant temperature, before the per-gear gain. Part of the upshift-hold engine-speed ceiling: while the torque-based upshift inhibit holds a gear, this limits engine speed through a request to the engine side. Switched off on the stock H3 (enable = 0) (E0349). Effect: engine speed while an upshift is held Evidence: ledger:E0349, ledger:E0727</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38B38" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x1A5" flags="0x0">
    <title>TCC Slip Control - Fixed Step Gate</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The TCC slip controller uses its fixed step only while the slip target is below this value and slip is close to zero. Stock 31 rpm. Effect: TCC slip control response Evidence: ledger:E0351, ledger:E0679</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3CDB2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1A6" flags="0x0">
    <title>TCC Slip Control - Fixed Step Slip Band</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The TCC slip controller uses its fixed step only while filtered slip (either direction) is below this. Stock 7 rpm. Each loop the controller adds a step sized by how far converter slip is from its target. Effect: TCC slip control response Evidence: ledger:E0351, ledger:E0679</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3CDB6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1A7" flags="0x0">
    <title>TCC Slip Control - In-Shift Step Disable</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. 1 = skip the in-shift step override. Stock 1 (override off). Part of the TCC slip controller: each loop the controller adds a step sized by how far converter slip is from its target (E0351). Effect: TCC slip control response Evidence: ledger:E0351, ledger:E0728</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D032" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>on/off (non-zero = override off)</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1A8" flags="0x0">
    <title>TCC Slip Control - In-Shift Step Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. During a shift, with the torque band state set, the fixed shift step replaces the normal TCC slip step while filtered slip is below this value. Only used when the shift-step disable is 0 (stock 1, so off) (E0728). Effect: TCC slip control response Evidence: ledger:E0351, ledger:E0728</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3CDB4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x1A9" flags="0x30">
    <title>Road Load Torque vs Vehicle Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Torque needed to hold a steady speed, before the learned offset (stock 0.08 at rest to 2.43 at 159 mph). Part of the road-load torque estimate: on throttle lift the upshift inhibit compares against the torque needed to hold speed (from this curve plus a learned offset) instead of the torque being delivered (E0352). Relative unit: the transmission&#x27;s torque model is scaled to its own full-scale engine torque, not to Nm (E0722). Effect: upshift hold on throttle lift Evidence: ledger:E0352, ledger:E0722</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>mph</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="10" />
      <LABEL index="2" value="20" />
      <LABEL index="3" value="30" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="50" />
      <LABEL index="6" value="60" />
      <LABEL index="7" value="70" />
      <LABEL index="8" value="80" />
      <LABEL index="9" value="89" />
      <LABEL index="10" value="99" />
      <LABEL index="11" value="109" />
      <LABEL index="12" value="119" />
      <LABEL index="13" value="129" />
      <LABEL index="14" value="139" />
      <LABEL index="15" value="149" />
      <LABEL index="16" value="159" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3F4B2" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>x full-scale engine torque (at output)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>255.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1AA" flags="0x30">
    <title>Road Load Learn Step vs Error</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Step added to the learned road-load offset each update at steady speed, by half the difference between delivered torque and the estimate (stock -163..122). Part of the road-load torque estimate: on throttle lift the upshift inhibit compares against the torque needed to hold speed (from this curve plus a learned offset) instead of the torque being delivered (E0352). Relative unit: the transmission&#x27;s torque model is scaled to its own full-scale engine torque, not to Nm (E0722). Effect: road-load learning rate Evidence: ledger:E0352, ledger:E0722</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>(delivered - estimate) / 2 (raw)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-320" />
      <LABEL index="1" value="-280" />
      <LABEL index="2" value="-240" />
      <LABEL index="3" value="-200" />
      <LABEL index="4" value="-160" />
      <LABEL index="5" value="-120" />
      <LABEL index="6" value="-80" />
      <LABEL index="7" value="-40" />
      <LABEL index="8" value="0" />
      <LABEL index="9" value="40" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="120" />
      <LABEL index="12" value="160" />
      <LABEL index="13" value="200" />
      <LABEL index="14" value="240" />
      <LABEL index="15" value="280" />
      <LABEL index="16" value="320" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3F4D6" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>x full-scale engine torque (at output)</units>
      <decimalpl>3</decimalpl>
      <min>-128.000000</min>
      <max>127.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x1AB" flags="0x0">
    <title>Road Load - Block Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long the road-load block lasts once triggered (stock 0). Part of the road-load torque estimate: on throttle lift the upshift inhibit compares against the torque needed to hold speed (from the road-load curve plus a learned offset) instead of the torque being delivered. Effect: upshift hold on throttle lift Evidence: ledger:E0352, ledger:E0722</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F4AC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1AC" flags="0x0">
    <title>Road Load - Lift Hold Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Longest the road-load lift hold lasts (stock 0, so a single pass). Part of the road-load torque estimate: on throttle lift the upshift inhibit compares against the torque needed to hold speed (from the road-load curve plus a learned offset) instead of the torque being delivered. Effect: upshift hold on throttle lift Evidence: ledger:E0352, ledger:E0722</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F4AE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x1AD" flags="0x30">
    <title>Pressure Control - Low Voltage Enter vs Trans Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. System voltage below this suspends pressure control (stock 10.5 V at -40 C to 12.5 V at 152 C). Part of the pressure-control supply check: outside the voltage window the PCM suspends pressure-control solenoid operation until the voltage recovers (E0353). Effect: pressure control supply check Evidence: ledger:E0353, ledger:E0936</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>degC (trans temp)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3E1A6" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>V</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1AE" flags="0x30">
    <title>Pressure Control - Low Voltage Exit vs Trans Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Voltage must rise above this to clear the low-voltage state (stock 11.0 V to 13.0 V). Part of the pressure-control supply check: outside the voltage window the PCM suspends pressure-control solenoid operation until the voltage recovers (E0353). Effect: pressure control supply check Evidence: ledger:E0353, ledger:E0936</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>degC (trans temp)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3E1AC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>V</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x1AF" flags="0x0">
    <title>Pressure Control - High Voltage Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. System voltage above this also suspends pressure control (stock 18.0 V). Part of the pressure-control supply check: outside the voltage window the PCM suspends pressure-control solenoid operation until the voltage recovers (E0353). Effect: pressure control supply check Evidence: ledger:E0353</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3E1C2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>63.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1B0" flags="0x0">
    <title>Pressure Control - Voltage Recovery Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long the supply voltage must stay back inside the normal range before pressure control solenoid operation, suspended for low or high voltage, resumes. Stock about 0.04 seconds (37.5 ms). Effect: pressure control supply check Evidence: ledger:E0353, ledger:E0794</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3E1C4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x1B1" flags="0x30">
    <title>Line Pressure Direction Hysteresis vs Trans Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How far commanded line pressure must reverse before the PCM switches between the rising and falling force-motor tables, by transmission temperature. Stock 4 kPa flat. Effect: line pressure force-motor table selection Evidence: ledger:E0353</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (trans temp)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3DF16" mmedelementsizebits="8" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>kPa</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>1020.000000</max>
      <MATH equation="X*4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1B2" flags="0x30">
    <title>TCC Pressure at Full Command vs Line Pressure</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. TCC apply pressure a 100 % command produces at each line pressure (stock 414 kPa at 0, 827 kPa from 320 kPa up). The TCC command is the commanded TCC pressure divided by this, so raising it lowers the command for the same requested pressure (softer apply); lowering it firms the apply (E0354). Effect: TCC apply command for a requested pressure Evidence: ledger:E0354</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>kPa (line pressure)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="80" />
      <LABEL index="2" value="160" />
      <LABEL index="3" value="240" />
      <LABEL index="4" value="320" />
      <LABEL index="5" value="400" />
      <LABEL index="6" value="480" />
      <LABEL index="7" value="560" />
      <LABEL index="8" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3D0D4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>kPa</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x1B3" flags="0x0">
    <title>TCC Command - Offset Path Enable</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. 1 = subtract the line-pressure offset curve from TCC pressure before scaling the command. Stock 0 (off). (E0354) Effect: TCC apply command Evidence: ledger:E0354</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C4DC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>0/1</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x1B4" flags="0x30">
    <title>TCC Command - Pressure Offset vs Line Pressure (offset path)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Pressure subtracted from the commanded TCC pressure when the offset path is enabled (stock 265..709 kPa; unused, enable = 0). (E0354) Effect: TCC apply command (offset path only) Evidence: ledger:E0354</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>kPa (line pressure)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="80" />
      <LABEL index="2" value="160" />
      <LABEL index="3" value="240" />
      <LABEL index="4" value="320" />
      <LABEL index="5" value="400" />
      <LABEL index="6" value="480" />
      <LABEL index="7" value="560" />
      <LABEL index="8" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3C4F4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>kPa</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x1B5" flags="0x0">
    <title>P0741 - Fail Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time slip must stay above the threshold in one apply to count a failure (stock 12.75 s). Part of the P0741 (TCC stuck off / performance) monitor: after each TCC apply, too much slip for too long counts a failure; two failures set the code (E0355). Effect: P0741 detection Evidence: ledger:E0355</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F73F" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>12.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1B6" flags="0x0">
    <title>P0741 - Failures to Set</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Failed applies needed to report P0741 (stock 2). Part of the P0741 (TCC stuck off / performance) monitor: after each TCC apply, too much slip for too long counts a failure; two failures set the code (E0355). Effect: P0741 detection Evidence: ledger:E0355</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F6FB" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>count</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1B7" flags="0x0">
    <title>P0741 - Pass Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time slip must stay inside the pass window to report a pass (stock 4.0 s). Part of the P0741 (TCC stuck off / performance) monitor: after each TCC apply, too much slip for too long counts a failure; two failures set the code (E0355). Effect: P0741 detection Evidence: ledger:E0355</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F740" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>12.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1B8" flags="0x0">
    <title>P0741 - Pass Window Max Slip</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper edge of the pass window (stock 400 raw). Part of the P0741 (TCC stuck off / performance) monitor: after each TCC apply, too much slip for too long counts a failure; two failures set the code (E0355). Effect: P0741 detection Evidence: ledger:E0355, ledger:E0679</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F70C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>-4096.000000</min>
    <max>4095.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1B9" flags="0x0">
    <title>P0741 - Pass Window Min Slip</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower edge of the pass window (stock -160 raw). Part of the P0741 (TCC stuck off / performance) monitor: after each TCC apply, too much slip for too long counts a failure; two failures set the code (E0355). Effect: P0741 detection Evidence: ledger:E0355, ledger:E0679</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F70E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>-4096.000000</min>
    <max>4095.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1BA" flags="0x0">
    <title>P0741 - Enable Min TCC Pressure</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Commanded TCC pressure needed to run the test (stock 10 kPa). Part of the P0741 (TCC stuck off / performance) monitor: after each TCC apply, too much slip for too long counts a failure; two failures set the code (E0355). Effect: P0741 detection Evidence: ledger:E0355</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F75C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>4095.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1BB" flags="0x0">
    <title>P0741 - Enable TCC Pressure Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long the TCC pressure condition must hold (stock 0.05 s). Part of the P0741 (TCC stuck off / performance) monitor: after each TCC apply, too much slip for too long counts a failure; two failures set the code (E0355). Effect: P0741 detection Evidence: ledger:E0355</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F75E" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>12.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1BC" flags="0x0">
    <title>P0741 - Enable Min TCC Command</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. TCC command needed to run the test (stock 65 %). Part of the P0741 (TCC stuck off / performance) monitor: after each TCC apply, too much slip for too long counts a failure; two failures set the code (E0355). Effect: P0741 detection Evidence: ledger:E0355</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F714" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1BD" flags="0x0">
    <title>P0741 - Enable TCC Command Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long the TCC command condition must hold (stock 2.0 s). Part of the P0741 (TCC stuck off / performance) monitor: after each TCC apply, too much slip for too long counts a failure; two failures set the code (E0355). Effect: P0741 detection Evidence: ledger:E0355</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F73E" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>12.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x1BE" flags="0x30">
    <title>Tip-In Torque Mgmt - Starting Torque by Range and Gear</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): the tip-in torque limit starts from the current engine torque or this, whichever is higher, by forward range (rows) and gear (columns). Stock 0 / 5 / 10 / 20 / 20 / 20 Nm in every range. Effect: raise = tip-ins start from more torque (less softening) Evidence: ledger:E0356</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>6</indexcount>
      <units>trans state</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="state 0" />
      <LABEL index="1" value="state 1" />
      <LABEL index="2" value="state 2" />
      <LABEL index="3" value="state 3" />
      <LABEL index="4" value="state 4" />
      <LABEL index="5" value="state 5" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>5</indexcount>
      <units>forward range</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="range 0" />
      <LABEL index="1" value="range 1" />
      <LABEL index="2" value="range 2" />
      <LABEL index="3" value="range 3" />
      <LABEL index="4" value="range 4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x20EE4" mmedelementsizebits="16" mmedrowcount="5" mmedcolcount="6" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>Nm</units>
      <decimalpl>1</decimalpl>
      <min>-8192.000000</min>
      <max>8191.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x1BF" flags="0x0">
    <title>Tip-In Torque Mgmt - Arm Below Torque</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): a tip-in can only be armed while engine torque is below this. Stock 50 Nm. Effect: raise = arms at higher coast torque Evidence: ledger:E0356</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x20F38" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1C0" flags="0x0">
    <title>Tip-In Torque Mgmt - Cancel Above Torque</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): the tip-in limit is cancelled once engine torque is above this. Stock 100 Nm. Effect: raise = limit stays on to higher torque Evidence: ledger:E0356</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x20F3A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1C1" flags="0x0">
    <title>Tip-In Torque Mgmt - Ramp End Margin</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): the torque ramp counts as complete once it has climbed this far above its starting torque. Stock 130 Nm. Effect: raise = longer ramp Evidence: ledger:E0356</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x20F3E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x1C2" flags="0x30">
    <title>Tip-In Torque Ramp - Fast Step</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after a closed-throttle tip-in the torque limit ramps up by a step each update. The step is the default step normally, the slow lash step while the driveline is taking up slack (gearbox slip above about 10 rpm, or engine speed rising faster than the slip-based limit), and the fast step once the limit has passed its target. This is the fast step, by throttle. Effect: raise = the torque limit catches up faster at the end of a tip-in Evidence: ledger:E0356, ledger:E0395, ledger:E0845</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% throttle</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.25" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.75" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31.25" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="56.25" />
      <LABEL index="10" value="62.5" />
      <LABEL index="11" value="68.75" />
      <LABEL index="12" value="75" />
      <LABEL index="13" value="81.25" />
      <LABEL index="14" value="87.5" />
      <LABEL index="15" value="93.75" />
      <LABEL index="16" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x20F6C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>Nm per update</units>
      <decimalpl>1</decimalpl>
      <min>-8192.000000</min>
      <max>8191.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1C3" flags="0x30">
    <title>Tip-In Torque Ramp - Lash Step</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after a closed-throttle tip-in the torque limit ramps up by a step each update. The step is the default step normally, the slow lash step while the driveline is taking up slack (gearbox slip above about 10 rpm, or engine speed rising faster than the slip-based limit), and the fast step once the limit has passed its target. This is the lash step, by throttle, before the engine speed factor is applied (the step used is this value times the factor). Effect: raise = torque builds faster while the driveline takes up slack (more clunk) Evidence: ledger:E0356, ledger:E0395, ledger:E0845</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% throttle</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.25" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.75" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31.25" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="56.25" />
      <LABEL index="10" value="62.5" />
      <LABEL index="11" value="68.75" />
      <LABEL index="12" value="75" />
      <LABEL index="13" value="81.25" />
      <LABEL index="14" value="87.5" />
      <LABEL index="15" value="93.75" />
      <LABEL index="16" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x20F90" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>Nm per update</units>
      <decimalpl>1</decimalpl>
      <min>-8192.000000</min>
      <max>8191.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1C4" flags="0x30">
    <title>Tip-In Torque Ramp - Default Step</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after a closed-throttle tip-in the torque limit ramps up by a step each update. The step is the default step normally, the slow lash step while the driveline is taking up slack (gearbox slip above about 10 rpm, or engine speed rising faster than the slip-based limit), and the fast step once the limit has passed its target. This is the default step, by throttle. Effect: raise = faster torque build-up after a tip-in Evidence: ledger:E0356, ledger:E0395, ledger:E0845</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% throttle</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.25" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.75" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31.25" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="56.25" />
      <LABEL index="10" value="62.5" />
      <LABEL index="11" value="68.75" />
      <LABEL index="12" value="75" />
      <LABEL index="13" value="81.25" />
      <LABEL index="14" value="87.5" />
      <LABEL index="15" value="93.75" />
      <LABEL index="16" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x20FB4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>Nm per update</units>
      <decimalpl>1</decimalpl>
      <min>-8192.000000</min>
      <max>8191.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1C5" flags="0x30">
    <title>Tip-In Torque Ramp - Lash Step Engine Speed Factor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after a closed-throttle tip-in the torque limit ramps up by a step each update. The step is the default step normally, the slow lash step while the driveline is taking up slack (gearbox slip above about 10 rpm, or engine speed rising faster than the slip-based limit), and the fast step once the limit has passed its target. Multiplies the lash step, by engine speed. Stock about 0.10 to 0.14. Effect: raise = larger lash step at that engine speed Evidence: ledger:E0356, ledger:E0395, ledger:E0845</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="800" />
      <LABEL index="2" value="1600" />
      <LABEL index="3" value="2400" />
      <LABEL index="4" value="3200" />
      <LABEL index="5" value="4000" />
      <LABEL index="6" value="4800" />
      <LABEL index="7" value="5600" />
      <LABEL index="8" value="6400" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x20F58" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>factor</units>
      <decimalpl>3</decimalpl>
      <min>-8.000000</min>
      <max>7.999756</max>
      <MATH equation="X/4096"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1C6" flags="0x30">
    <title>Tip-In Torque Ramp - Engine Speed Rise Limit vs Slip</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after a closed-throttle tip-in the torque limit ramps up by a step each update. The step is the default step normally, the slow lash step while the driveline is taking up slack (gearbox slip above about 10 rpm, or engine speed rising faster than the slip-based limit), and the fast step once the limit has passed its target. If engine speed rises faster than this per update at the current gearbox slip, the lash step is used. Stock 90 rpm per update at negative slip, tapering to 0 by 50 rpm. Effect: lower = the lash step engages on smaller engine speed flares Evidence: ledger:E0356, ledger:E0395, ledger:E0845</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm (gearbox slip)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-750" />
      <LABEL index="1" value="-700" />
      <LABEL index="2" value="-650" />
      <LABEL index="3" value="-600" />
      <LABEL index="4" value="-550" />
      <LABEL index="5" value="-500" />
      <LABEL index="6" value="-450" />
      <LABEL index="7" value="-400" />
      <LABEL index="8" value="-350" />
      <LABEL index="9" value="-300" />
      <LABEL index="10" value="-250" />
      <LABEL index="11" value="-200" />
      <LABEL index="12" value="-150" />
      <LABEL index="13" value="-100" />
      <LABEL index="14" value="-50" />
      <LABEL index="15" value="0" />
      <LABEL index="16" value="50" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x20FD8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>rpm per update</units>
      <decimalpl>1</decimalpl>
      <min>-8192.000000</min>
      <max>8191.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1C7" flags="0x30">
    <title>Tip-In Torque Mgmt - Input Speed Rate Threshold (rise)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after a closed-throttle tip-in the torque limit ramps up (default, lash and fast steps). The fast step starts once the limit passes its target, once gearbox slip is large, or once the driveline has shunted forward, swung back and started climbing again. Shunt detection: transmission input speed rising faster than this per update, by input speed, marks a driveline shunt. Stock 16 to 40 rpm per update. Effect: lower = shunt / swing-back detected sooner, so the fast step comes in sooner Evidence: ledger:E0356, ledger:E0689, ledger:E0845, ledger:E0846</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.1" />
      <LABEL index="1" value="800" />
      <LABEL index="2" value="1599.9" />
      <LABEL index="3" value="2399.8" />
      <LABEL index="4" value="3199.7" />
      <LABEL index="5" value="3999.6" />
      <LABEL index="6" value="4799.5" />
      <LABEL index="7" value="5599.4" />
      <LABEL index="8" value="6399.3" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x20FFC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>rpm per update</units>
      <decimalpl>1</decimalpl>
      <min>-8192.000000</min>
      <max>8191.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1C8" flags="0x30">
    <title>Tip-In Torque Mgmt - Input Speed Rate Threshold (fall)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after a closed-throttle tip-in the torque limit ramps up (default, lash and fast steps). The fast step starts once the limit passes its target, once gearbox slip is large, or once the driveline has shunted forward, swung back and started climbing again. Swing-back detection: after a shunt, input speed falling faster than this per update, by input speed, marks the swing back. Stock -20 to -70 rpm per update. Effect: closer to zero = swing-back detected sooner Evidence: ledger:E0356, ledger:E0689, ledger:E0845, ledger:E0846</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.1" />
      <LABEL index="1" value="800" />
      <LABEL index="2" value="1599.9" />
      <LABEL index="3" value="2399.8" />
      <LABEL index="4" value="3199.7" />
      <LABEL index="5" value="3999.6" />
      <LABEL index="6" value="4799.5" />
      <LABEL index="7" value="5599.4" />
      <LABEL index="8" value="6399.3" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x21010" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>rpm per update</units>
      <decimalpl>1</decimalpl>
      <min>-8192.000000</min>
      <max>8191.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1C9" flags="0x30">
    <title>Tip-In Torque Mgmt - Vehicle Speed Rate Threshold (rise)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after a closed-throttle tip-in the torque limit ramps up (default, lash and fast steps). The fast step starts once the limit passes its target, once gearbox slip is large, or once the driveline has shunted forward, swung back and started climbing again. Shunt detection on vehicle speed change per update, by vehicle speed. Stock off (maximum value). Effect: lower = shunt / swing-back detected sooner, so the fast step comes in sooner Evidence: ledger:E0356, ledger:E0845, ledger:E0846</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>km/h</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="16" />
      <LABEL index="2" value="32" />
      <LABEL index="3" value="48" />
      <LABEL index="4" value="64" />
      <LABEL index="5" value="80" />
      <LABEL index="6" value="96" />
      <LABEL index="7" value="112" />
      <LABEL index="8" value="128" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x21024" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>km/h per update</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1CA" flags="0x30">
    <title>Tip-In Torque Mgmt - Vehicle Speed Rate Threshold (fall)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after a closed-throttle tip-in the torque limit ramps up (default, lash and fast steps). The fast step starts once the limit passes its target, once gearbox slip is large, or once the driveline has shunted forward, swung back and started climbing again. Swing-back detection on vehicle speed change per update, by vehicle speed. Stock off (minimum value). Effect: closer to zero = swing-back detected sooner Evidence: ledger:E0356, ledger:E0845, ledger:E0846</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>km/h</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="16" />
      <LABEL index="2" value="32" />
      <LABEL index="3" value="48" />
      <LABEL index="4" value="64" />
      <LABEL index="5" value="80" />
      <LABEL index="6" value="96" />
      <LABEL index="7" value="112" />
      <LABEL index="8" value="128" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x21038" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>km/h per update</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1CB" flags="0x30">
    <title>Cam Phasing (load) - Target vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Load-based exhaust cam phasing: desired cam angle by rpm. Stock 0 deg up to 1600 rpm, 9 deg from 2000, 10 to 11 deg above. The code path is traced; a loaded drive log has not yet shown the cam moving. Values are desired-cam degrees; the VE model&#x27;s cam axis counts twice as many units per degree (9 here is about 18 on that axis). Effect: changes exhaust cam phasing under load Evidence: ledger:E0358</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="400" />
      <LABEL index="2" value="800" />
      <LABEL index="3" value="1200" />
      <LABEL index="4" value="1600" />
      <LABEL index="5" value="2000" />
      <LABEL index="6" value="2400" />
      <LABEL index="7" value="2800" />
      <LABEL index="8" value="3200" />
      <LABEL index="9" value="3600" />
      <LABEL index="10" value="4000" />
      <LABEL index="11" value="4400" />
      <LABEL index="12" value="4800" />
      <LABEL index="13" value="5200" />
      <LABEL index="14" value="5600" />
      <LABEL index="15" value="6000" />
      <LABEL index="16" value="6400" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22BE4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1CC" flags="0x30">
    <title>Cam Phasing (load) - Coolant Factor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Load-based exhaust cam phasing: multiplies the target by coolant temperature. Stock 0.5 cold, 1.0 warm. The code path is traced; a loaded drive log has not yet shown the cam moving. Effect: changes exhaust cam phasing under load Evidence: ledger:E0358</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-16" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="32" />
      <LABEL index="4" value="56" />
      <LABEL index="5" value="80" />
      <LABEL index="6" value="104" />
      <LABEL index="7" value="128" />
      <LABEL index="8" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22C08" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1CD" flags="0x30">
    <title>Load-Based Cam Phasing - Pedal Demand Threshold vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Load-based cam phasing: above this pedal demand (percent of throttle area the driver is asking for) the cam is phased by the load-based cam target instead of the base schedule. Threshold by engine speed. Stock 110 % (never) up to 1200 rpm, 28.2 % from 1600 rpm. Effect: lower = load-based cam phasing starts at lighter pedal Evidence: ledger:E0358, ledger:E0872</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="400" />
      <LABEL index="2" value="800" />
      <LABEL index="3" value="1200" />
      <LABEL index="4" value="1600" />
      <LABEL index="5" value="2000" />
      <LABEL index="6" value="2400" />
      <LABEL index="7" value="2800" />
      <LABEL index="8" value="3200" />
      <LABEL index="9" value="3600" />
      <LABEL index="10" value="4000" />
      <LABEL index="11" value="4400" />
      <LABEL index="12" value="4800" />
      <LABEL index="13" value="5200" />
      <LABEL index="14" value="5600" />
      <LABEL index="15" value="6000" />
      <LABEL index="16" value="6400" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22CE4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% (pedal area demand)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.000000</max>
      <MATH equation="X/327.675"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1CE" flags="0x30">
    <title>Cam Phasing (load) - Run-Time Delay vs Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Load-based exhaust cam phasing: run time after start, by coolant temperature, before the path may act. The code path is traced; a loaded drive log has not yet shown the cam moving. Effect: changes exhaust cam phasing under load Evidence: ledger:E0358</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x229C6" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x1CF" flags="0x0">
    <title>Load-Based Cam Ramp - Throttle Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Load-based cam phasing: when the load-based cam target takes over, the commanded cam angle ramps toward it by the ramp step each update while throttle is below the throttle limit and vehicle speed is above the speed limit; otherwise it jumps straight to the target. At or above this throttle the cam jumps to the target. Stock 80 %. Effect: lower = the cam jumps sooner at high throttle Evidence: ledger:E0358, ledger:E0874</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22CDC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x1D0" flags="0x30">
    <title>Line Pressure - Source 4 Pressure vs Throttle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Commanded line pressure, by throttle, while the transmission&#x27;s slip monitor has caught possible clutch slip: converter slip between 120 and 550 rpm, with throttle inside the monitor&#x27;s window, for about 10 seconds. At that point the PCM records a slipping sample and uses this table until the slip or throttle condition ends. Stock 68 kPa across the whole throttle range. Effect: raise = increases the line pressure commanded while the slip-check mode is active Evidence: ledger:E0360, ledger:E0786, ledger:E0791, ledger:E0796</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% throttle area</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="6.2" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.8" />
      <LABEL index="4" value="25.0" />
      <LABEL index="5" value="31.2" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.8" />
      <LABEL index="8" value="50.0" />
      <LABEL index="9" value="56.2" />
      <LABEL index="10" value="62.5" />
      <LABEL index="11" value="68.8" />
      <LABEL index="12" value="75.0" />
      <LABEL index="13" value="81.2" />
      <LABEL index="14" value="87.5" />
      <LABEL index="15" value="93.8" />
      <LABEL index="16" value="100.0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3E1CE" mmedelementsizebits="8" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>kPa</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>1020.000000</max>
      <MATH equation="X*4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1D1" flags="0x30">
    <title>Catalyst Temp Model - Steady State vs RPM vs Airflow</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst temperature model: the base catalyst temperature the model heads toward, by rpm (rows) and engine airflow (columns). The over-temperature protection enriches when the model runs hot. Effect: raise = model runs hotter, protection enrichment starts sooner Evidence: ledger:E0363</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="10" />
      <LABEL index="2" value="20" />
      <LABEL index="3" value="30" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="50" />
      <LABEL index="6" value="60" />
      <LABEL index="7" value="70" />
      <LABEL index="8" value="80" />
      <LABEL index="9" value="90" />
      <LABEL index="10" value="100" />
      <LABEL index="11" value="110" />
      <LABEL index="12" value="120" />
      <LABEL index="13" value="130" />
      <LABEL index="14" value="140" />
      <LABEL index="15" value="150" />
      <LABEL index="16" value="160" />
      <LABEL index="17" value="170" />
      <LABEL index="18" value="180" />
      <LABEL index="19" value="190" />
      <LABEL index="20" value="200" />
      <LABEL index="21" value="210" />
      <LABEL index="22" value="220" />
      <LABEL index="23" value="230" />
      <LABEL index="24" value="240" />
      <LABEL index="25" value="250" />
      <LABEL index="26" value="260" />
      <LABEL index="27" value="270" />
      <LABEL index="28" value="280" />
      <LABEL index="29" value="290" />
      <LABEL index="30" value="300" />
      <LABEL index="31" value="310" />
      <LABEL index="32" value="320" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="400" />
      <LABEL index="2" value="800" />
      <LABEL index="3" value="1200" />
      <LABEL index="4" value="1600" />
      <LABEL index="5" value="2000" />
      <LABEL index="6" value="2400" />
      <LABEL index="7" value="2800" />
      <LABEL index="8" value="3200" />
      <LABEL index="9" value="3600" />
      <LABEL index="10" value="4000" />
      <LABEL index="11" value="4400" />
      <LABEL index="12" value="4800" />
      <LABEL index="13" value="5200" />
      <LABEL index="14" value="5600" />
      <LABEL index="15" value="6000" />
      <LABEL index="16" value="6400" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2171E" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC</units>
      <decimalpl>2</decimalpl>
      <min>-2048.000000</min>
      <max>2047.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1D2" flags="0x30">
    <title>Catalyst Temp Model - Vehicle Speed Term</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst temperature model: added to the target by vehicle speed. Stock +58 C flat. Effect: raise = model runs hotter in that range Evidence: ledger:E0363</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>km/h</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="32" />
      <LABEL index="2" value="64" />
      <LABEL index="3" value="96" />
      <LABEL index="4" value="128" />
      <LABEL index="5" value="160" />
      <LABEL index="6" value="192" />
      <LABEL index="7" value="224" />
      <LABEL index="8" value="256" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x21B82" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC</units>
      <decimalpl>2</decimalpl>
      <min>-2048.000000</min>
      <max>2047.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1D3" flags="0x30">
    <title>Catalyst Temp Model - Commanded EQ Term</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst temperature model: added to the target by commanded fuel (EQ); richer fuel lowers it. Stock +434 C at EQ 0.92 to +179 C at EQ 1.56. Effect: raise = model runs hotter in that range Evidence: ledger:E0363</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>EQ</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.92" />
      <LABEL index="1" value="0.96" />
      <LABEL index="2" value="1" />
      <LABEL index="3" value="1.04" />
      <LABEL index="4" value="1.08" />
      <LABEL index="5" value="1.12" />
      <LABEL index="6" value="1.16" />
      <LABEL index="7" value="1.2" />
      <LABEL index="8" value="1.24" />
      <LABEL index="9" value="1.28" />
      <LABEL index="10" value="1.32" />
      <LABEL index="11" value="1.36" />
      <LABEL index="12" value="1.4" />
      <LABEL index="13" value="1.44" />
      <LABEL index="14" value="1.48" />
      <LABEL index="15" value="1.52" />
      <LABEL index="16" value="1.56" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x216D0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC</units>
      <decimalpl>2</decimalpl>
      <min>-2048.000000</min>
      <max>2047.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1D4" flags="0x30">
    <title>Catalyst Temp Model - RPM Term</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst temperature model: added to the target by rpm (times a cylinder factor). Stock 0 to -300 C. Effect: raise = model runs hotter in that range Evidence: ledger:E0363</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="400" />
      <LABEL index="2" value="800" />
      <LABEL index="3" value="1200" />
      <LABEL index="4" value="1600" />
      <LABEL index="5" value="2000" />
      <LABEL index="6" value="2400" />
      <LABEL index="7" value="2800" />
      <LABEL index="8" value="3200" />
      <LABEL index="9" value="3600" />
      <LABEL index="10" value="4000" />
      <LABEL index="11" value="4400" />
      <LABEL index="12" value="4800" />
      <LABEL index="13" value="5200" />
      <LABEL index="14" value="5600" />
      <LABEL index="15" value="6000" />
      <LABEL index="16" value="6400" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x216AC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC</units>
      <decimalpl>2</decimalpl>
      <min>-2048.000000</min>
      <max>2047.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1D5" flags="0x30">
    <title>Catalyst Over-Temp Protection - Ramp-In Step vs Over-Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. how fast protection enrichment rises, by how far the model&#x27;s target is above the base temperature. Stock 0 to 0.535 EQ per update over 0-200 C. Effect: raise = faster enrichment change Evidence: ledger:E0363</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="12.5" />
      <LABEL index="2" value="25" />
      <LABEL index="3" value="37.5" />
      <LABEL index="4" value="50" />
      <LABEL index="5" value="62.5" />
      <LABEL index="6" value="75" />
      <LABEL index="7" value="87.5" />
      <LABEL index="8" value="100" />
      <LABEL index="9" value="112.5" />
      <LABEL index="10" value="125" />
      <LABEL index="11" value="137.5" />
      <LABEL index="12" value="150" />
      <LABEL index="13" value="162.5" />
      <LABEL index="14" value="175" />
      <LABEL index="15" value="187.5" />
      <LABEL index="16" value="200" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x215DA" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>EQ per update</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1D6" flags="0x30">
    <title>Catalyst Over-Temp Protection - Ramp-Out Step vs Under-Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. how fast protection enrichment is removed, by how far the target is below the base temperature. Stock 0 to 0.268 EQ per update. Effect: raise = faster enrichment change Evidence: ledger:E0363</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="12.5" />
      <LABEL index="2" value="25" />
      <LABEL index="3" value="37.5" />
      <LABEL index="4" value="50" />
      <LABEL index="5" value="62.5" />
      <LABEL index="6" value="75" />
      <LABEL index="7" value="87.5" />
      <LABEL index="8" value="100" />
      <LABEL index="9" value="112.5" />
      <LABEL index="10" value="125" />
      <LABEL index="11" value="137.5" />
      <LABEL index="12" value="150" />
      <LABEL index="13" value="162.5" />
      <LABEL index="14" value="175" />
      <LABEL index="15" value="187.5" />
      <LABEL index="16" value="200" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x215FE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>EQ per update</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x1D7" flags="0x0">
    <title>Catalyst Over-Temp Protection - Ramp Base Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The ramp-in and ramp-out steps are looked up by how far the model&#x27;s target temperature is above or below this. Stock 975 C. Effect: lower = ramps react at cooler targets Evidence: ledger:E0363</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x215D6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x1D8" flags="0x30">
    <title>Catalyst Temperature Model - Heating Rate Factor vs Airflow</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Factor on how fast the PCM&#x27;s modelled catalyst temperature rises toward its target when the target is higher, by airflow (0 to 400 g/s); it multiplies the heating rate. Stock 0.01 at no airflow rising to 0.43. Changes the modelled temperature that drives catalyst overtemperature protection. Effect: raise = the modelled catalyst temperature climbs faster Evidence: ledger:E0363, ledger:E0689, ledger:E0936, ledger:E0949</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>g/s (airflow)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="25" />
      <LABEL index="2" value="50" />
      <LABEL index="3" value="75" />
      <LABEL index="4" value="100" />
      <LABEL index="5" value="125" />
      <LABEL index="6" value="150" />
      <LABEL index="7" value="175" />
      <LABEL index="8" value="200" />
      <LABEL index="9" value="225" />
      <LABEL index="10" value="250" />
      <LABEL index="11" value="275" />
      <LABEL index="12" value="300" />
      <LABEL index="13" value="325" />
      <LABEL index="14" value="350" />
      <LABEL index="15" value="375" />
      <LABEL index="16" value="400" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x21652" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1D9" flags="0x30">
    <title>Catalyst Temperature Model - Cooling Rate vs Airflow</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How fast the PCM&#x27;s modelled catalyst temperature falls toward its target when the target is lower, by airflow (0 to 400 g/s): the fraction of the gap closed per update. Stock 0.02 at no airflow rising to 0.32. Changes the modelled temperature that drives catalyst overtemperature protection. Effect: raise = the modelled catalyst temperature drops faster Evidence: ledger:E0363, ledger:E0936, ledger:E0949</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>g/s (airflow)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="25" />
      <LABEL index="2" value="50" />
      <LABEL index="3" value="75" />
      <LABEL index="4" value="100" />
      <LABEL index="5" value="125" />
      <LABEL index="6" value="150" />
      <LABEL index="7" value="175" />
      <LABEL index="8" value="200" />
      <LABEL index="9" value="225" />
      <LABEL index="10" value="250" />
      <LABEL index="11" value="275" />
      <LABEL index="12" value="300" />
      <LABEL index="13" value="325" />
      <LABEL index="14" value="350" />
      <LABEL index="15" value="375" />
      <LABEL index="16" value="400" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2162E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction per update</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1DA" flags="0x30">
    <title>Knock Detection - Threshold Gain, Slot 1</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock detection (safety relevant). Threshold gain for knock loop slot 1 (the slot is the position in the knock module&#x27;s per-cylinder loop), by airmass (rows) and rpm (columns). The knock threshold is the background level plus this gain times the knock noise deviation, so 1.0 means one noise deviation above background. Stock 2.50 to 3.50. Raising it makes knock detection less sensitive. Effect: raise = a stronger knock signal is needed before knock retard (less sensitive) Evidence: ledger:E0364, ledger:E0703</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="500" />
      <LABEL index="2" value="1000" />
      <LABEL index="3" value="1500" />
      <LABEL index="4" value="2000" />
      <LABEL index="5" value="2500" />
      <LABEL index="6" value="3000" />
      <LABEL index="7" value="3500" />
      <LABEL index="8" value="4000" />
      <LABEL index="9" value="4500" />
      <LABEL index="10" value="5000" />
      <LABEL index="11" value="5500" />
      <LABEL index="12" value="6000" />
      <LABEL index="13" value="6500" />
      <LABEL index="14" value="7000" />
      <LABEL index="15" value="7500" />
      <LABEL index="16" value="8000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>g/cyl (airmass)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.24" />
      <LABEL index="1" value="0.3" />
      <LABEL index="2" value="0.36" />
      <LABEL index="3" value="0.42" />
      <LABEL index="4" value="0.48" />
      <LABEL index="5" value="0.54" />
      <LABEL index="6" value="0.6" />
      <LABEL index="7" value="0.66" />
      <LABEL index="8" value="0.72" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x318E4" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gain (x knock noise)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>127.998047</max>
      <MATH equation="X/512"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1DB" flags="0x30">
    <title>Knock Detection - Threshold Gain, Slot 2</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock detection (safety relevant). Threshold gain for knock loop slot 2 (the slot is the position in the knock module&#x27;s per-cylinder loop), by airmass (rows) and rpm (columns). The knock threshold is the background level plus this gain times the knock noise deviation, so 1.0 means one noise deviation above background. Stock 4.00 to 5.50. Raising it makes knock detection less sensitive. Effect: raise = a stronger knock signal is needed before knock retard (less sensitive) Evidence: ledger:E0364, ledger:E0703</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="500" />
      <LABEL index="2" value="1000" />
      <LABEL index="3" value="1500" />
      <LABEL index="4" value="2000" />
      <LABEL index="5" value="2500" />
      <LABEL index="6" value="3000" />
      <LABEL index="7" value="3500" />
      <LABEL index="8" value="4000" />
      <LABEL index="9" value="4500" />
      <LABEL index="10" value="5000" />
      <LABEL index="11" value="5500" />
      <LABEL index="12" value="6000" />
      <LABEL index="13" value="6500" />
      <LABEL index="14" value="7000" />
      <LABEL index="15" value="7500" />
      <LABEL index="16" value="8000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>g/cyl (airmass)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.24" />
      <LABEL index="1" value="0.3" />
      <LABEL index="2" value="0.36" />
      <LABEL index="3" value="0.42" />
      <LABEL index="4" value="0.48" />
      <LABEL index="5" value="0.54" />
      <LABEL index="6" value="0.6" />
      <LABEL index="7" value="0.66" />
      <LABEL index="8" value="0.72" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x31A1A" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gain (x knock noise)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>127.998047</max>
      <MATH equation="X/512"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1DC" flags="0x30">
    <title>Knock Detection - Threshold Gain, Slot 3</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock detection (safety relevant). Threshold gain for knock loop slot 3 (the slot is the position in the knock module&#x27;s per-cylinder loop), by airmass (rows) and rpm (columns). The knock threshold is the background level plus this gain times the knock noise deviation, so 1.0 means one noise deviation above background. Stock 2.75 to 3.50. Raising it makes knock detection less sensitive. Effect: raise = a stronger knock signal is needed before knock retard (less sensitive) Evidence: ledger:E0364, ledger:E0703</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="500" />
      <LABEL index="2" value="1000" />
      <LABEL index="3" value="1500" />
      <LABEL index="4" value="2000" />
      <LABEL index="5" value="2500" />
      <LABEL index="6" value="3000" />
      <LABEL index="7" value="3500" />
      <LABEL index="8" value="4000" />
      <LABEL index="9" value="4500" />
      <LABEL index="10" value="5000" />
      <LABEL index="11" value="5500" />
      <LABEL index="12" value="6000" />
      <LABEL index="13" value="6500" />
      <LABEL index="14" value="7000" />
      <LABEL index="15" value="7500" />
      <LABEL index="16" value="8000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>g/cyl (airmass)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.24" />
      <LABEL index="1" value="0.3" />
      <LABEL index="2" value="0.36" />
      <LABEL index="3" value="0.42" />
      <LABEL index="4" value="0.48" />
      <LABEL index="5" value="0.54" />
      <LABEL index="6" value="0.6" />
      <LABEL index="7" value="0.66" />
      <LABEL index="8" value="0.72" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x31B50" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gain (x knock noise)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>127.998047</max>
      <MATH equation="X/512"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1DD" flags="0x30">
    <title>Knock Detection - Threshold Gain, Slot 4</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock detection (safety relevant). Threshold gain for knock loop slot 4 (the slot is the position in the knock module&#x27;s per-cylinder loop), by airmass (rows) and rpm (columns). The knock threshold is the background level plus this gain times the knock noise deviation, so 1.0 means one noise deviation above background. Stock 3.25 to 4.50. Raising it makes knock detection less sensitive. Effect: raise = a stronger knock signal is needed before knock retard (less sensitive) Evidence: ledger:E0364, ledger:E0703</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="500" />
      <LABEL index="2" value="1000" />
      <LABEL index="3" value="1500" />
      <LABEL index="4" value="2000" />
      <LABEL index="5" value="2500" />
      <LABEL index="6" value="3000" />
      <LABEL index="7" value="3500" />
      <LABEL index="8" value="4000" />
      <LABEL index="9" value="4500" />
      <LABEL index="10" value="5000" />
      <LABEL index="11" value="5500" />
      <LABEL index="12" value="6000" />
      <LABEL index="13" value="6500" />
      <LABEL index="14" value="7000" />
      <LABEL index="15" value="7500" />
      <LABEL index="16" value="8000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>g/cyl (airmass)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.24" />
      <LABEL index="1" value="0.3" />
      <LABEL index="2" value="0.36" />
      <LABEL index="3" value="0.42" />
      <LABEL index="4" value="0.48" />
      <LABEL index="5" value="0.54" />
      <LABEL index="6" value="0.6" />
      <LABEL index="7" value="0.66" />
      <LABEL index="8" value="0.72" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x31C86" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gain (x knock noise)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>127.998047</max>
      <MATH equation="X/512"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1DE" flags="0x30">
    <title>Knock Detection - Threshold Gain, Slot 5</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock detection (safety relevant). Threshold gain for knock loop slot 5 (the slot is the position in the knock module&#x27;s per-cylinder loop), by airmass (rows) and rpm (columns). The knock threshold is the background level plus this gain times the knock noise deviation, so 1.0 means one noise deviation above background. Stock 4.00 to 5.50. Raising it makes knock detection less sensitive. Effect: raise = a stronger knock signal is needed before knock retard (less sensitive) Evidence: ledger:E0364, ledger:E0703</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="500" />
      <LABEL index="2" value="1000" />
      <LABEL index="3" value="1500" />
      <LABEL index="4" value="2000" />
      <LABEL index="5" value="2500" />
      <LABEL index="6" value="3000" />
      <LABEL index="7" value="3500" />
      <LABEL index="8" value="4000" />
      <LABEL index="9" value="4500" />
      <LABEL index="10" value="5000" />
      <LABEL index="11" value="5500" />
      <LABEL index="12" value="6000" />
      <LABEL index="13" value="6500" />
      <LABEL index="14" value="7000" />
      <LABEL index="15" value="7500" />
      <LABEL index="16" value="8000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>g/cyl (airmass)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.24" />
      <LABEL index="1" value="0.3" />
      <LABEL index="2" value="0.36" />
      <LABEL index="3" value="0.42" />
      <LABEL index="4" value="0.48" />
      <LABEL index="5" value="0.54" />
      <LABEL index="6" value="0.6" />
      <LABEL index="7" value="0.66" />
      <LABEL index="8" value="0.72" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x31DBC" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gain (x knock noise)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>127.998047</max>
      <MATH equation="X/512"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1DF" flags="0x30">
    <title>Knock Detection - Threshold Gain Factor vs Commanded EQ</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock detection (safety relevant). Multiplies every slot&#x27;s threshold gain by the commanded equivalence ratio. Stock 1.00 at EQ 1.00 rising to 1.35 from EQ 1.34 (richer = less sensitive). Effect: raise = less knock sensitivity when running rich Evidence: ledger:E0364</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>EQ ratio</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1" />
      <LABEL index="1" value="1.056" />
      <LABEL index="2" value="1.113" />
      <LABEL index="3" value="1.169" />
      <LABEL index="4" value="1.225" />
      <LABEL index="5" value="1.281" />
      <LABEL index="6" value="1.337" />
      <LABEL index="7" value="1.394" />
      <LABEL index="8" value="1.45" />
      <LABEL index="9" value="1.506" />
      <LABEL index="10" value="1.562" />
      <LABEL index="11" value="1.619" />
      <LABEL index="12" value="1.675" />
      <LABEL index="13" value="1.731" />
      <LABEL index="14" value="1.788" />
      <LABEL index="15" value="1.844" />
      <LABEL index="16" value="1.9" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3204A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1E0" flags="0x30">
    <title>Knock Detection - Transient Threshold Adder vs RPM (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock detection (safety relevant). Added to the threshold gain while a transient (rpm, throttle or airmass change) is active. All zero on the stock H3, so it has no effect as delivered. Effect: raise = less knock sensitivity during transients Evidence: ledger:E0364, ledger:E0703</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="500" />
      <LABEL index="2" value="1000" />
      <LABEL index="3" value="1500" />
      <LABEL index="4" value="2000" />
      <LABEL index="5" value="2500" />
      <LABEL index="6" value="3000" />
      <LABEL index="7" value="3500" />
      <LABEL index="8" value="4000" />
      <LABEL index="9" value="4500" />
      <LABEL index="10" value="5000" />
      <LABEL index="11" value="5500" />
      <LABEL index="12" value="6000" />
      <LABEL index="13" value="6500" />
      <LABEL index="14" value="7000" />
      <LABEL index="15" value="7500" />
      <LABEL index="16" value="8000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x32026" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gain (x knock noise)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>127.998047</max>
      <MATH equation="X/512"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1E1" flags="0x30">
    <title>Shift Torque Reduction Profile - Hold Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT=17][TYPE=6][17 points]; COUNT and TYPE are structure bytes, never edit them (E0365). How long full reduction is held after the ratio change, by gear (stock 0.40 / 0.35 / 0.30 s). Part of the shift torque-reduction profile: ramp in with the measured ratio, hold for the hold time, ramp out by the end time. On the stock H3 the reduction target is zero, so the profile does nothing until that is set. Effect: shift torque reduction timing Evidence: ledger:E0365, ledger:E0706</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>19</indexcount>
      <units>COUNT/TYPE + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="TYPE" />
      <LABEL index="2" value="0" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <LABEL index="9" value="140" />
      <LABEL index="10" value="160" />
      <LABEL index="11" value="180" />
      <LABEL index="12" value="200" />
      <LABEL index="13" value="220" />
      <LABEL index="14" value="240" />
      <LABEL index="15" value="260" />
      <LABEL index="16" value="280" />
      <LABEL index="17" value="300" />
      <LABEL index="18" value="320" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>current gear</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1st" />
      <LABEL index="1" value="2nd" />
      <LABEL index="2" value="3rd" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3EFC8" mmedelementsizebits="8" mmedrowcount="3" mmedcolcount="19" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>6.375000</max>
      <MATH equation="X/40"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1E2" flags="0x30">
    <title>Shift Torque Reduction Profile - End Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT=17][TYPE=6][17 points]; COUNT and TYPE are structure bytes, never edit them (E0365). Time at which the reduction has ramped fully out, by gear (stock 0.60 / 0.55 / 0.50 s). Part of the shift torque-reduction profile: ramp in with the measured ratio, hold for the hold time, ramp out by the end time. On the stock H3 the reduction target is zero, so the profile does nothing until that is set. Effect: shift torque reduction timing Evidence: ledger:E0365, ledger:E0706</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>19</indexcount>
      <units>COUNT/TYPE + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="TYPE" />
      <LABEL index="2" value="0" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <LABEL index="9" value="140" />
      <LABEL index="10" value="160" />
      <LABEL index="11" value="180" />
      <LABEL index="12" value="200" />
      <LABEL index="13" value="220" />
      <LABEL index="14" value="240" />
      <LABEL index="15" value="260" />
      <LABEL index="16" value="280" />
      <LABEL index="17" value="300" />
      <LABEL index="18" value="320" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>current gear</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1st" />
      <LABEL index="1" value="2nd" />
      <LABEL index="2" value="3rd" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3F001" mmedelementsizebits="8" mmedrowcount="3" mmedcolcount="19" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>6.375000</max>
      <MATH equation="X/40"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1E3" flags="0x30">
    <title>TAP Learn - Max Vehicle Speed by Shift</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT = 17][17 points]; COUNT is a structure word, never edit it (E0366). Above this trans-side vehicle speed a shift is not learned. Stock 500 km/h (no limit) for 1-2 and 2-3, 0 for 3-4 (3-4 never learns). TAP (adaptive shift pressure) only learns on shifts inside every enable window (E0366). Effect: which shifts TAP learns from Evidence: ledger:E0366, ledger:E0714</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3BE0E" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>km/h</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>511.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1E4" flags="0x30">
    <title>TAP Learn - Min Torque by Shift</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Below this shift torque, a shift is not used to adjust the learned shift pressure. Applies separately to the 1-2 and 2-3 upshifts (stock 200 Nm) and to the 3-4 upshift (stock 0, so learning is disabled for that shift). The adaptive shift pressure learning only updates from shifts whose torque falls inside this window. Effect: which shifts TAP learns from Evidence: ledger:E0366, ledger:E0794</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3C030" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>Nm</units>
      <decimalpl>1</decimalpl>
      <min>-8192.000000</min>
      <max>8191.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1E5" flags="0x30">
    <title>TAP Learn - Max Torque by Shift</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Above this shift torque, a shift is not used to adjust the learned shift pressure. Applies separately to the 1-2 and 2-3 upshifts (stock about 2034 Nm, so it never limits in practice) and to the 3-4 upshift (stock 0). The adaptive shift pressure learning only updates from shifts whose torque falls inside this window. Effect: which shifts TAP learns from Evidence: ledger:E0366, ledger:E0794</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3C02A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>Nm</units>
      <decimalpl>1</decimalpl>
      <min>-8192.000000</min>
      <max>8191.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1E6" flags="0x30">
    <title>Shift Pressure Multiplier 1-2</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Shift pressure multiplier for the 1-2 shift by shift torque and an engine-side ratio (stock 1.0 with a 0.875 diagonal band). Header [17][17], never edit it. Multiplies base shift pressure only when the enable is set; stock 0, so unused on the H3. Effect: shift firmness Evidence: ledger:E0368, ledger:E0710</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>shift torque (Nm)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="40" />
      <LABEL index="2" value="80" />
      <LABEL index="3" value="120" />
      <LABEL index="4" value="160" />
      <LABEL index="5" value="200" />
      <LABEL index="6" value="240" />
      <LABEL index="7" value="280" />
      <LABEL index="8" value="320" />
      <LABEL index="9" value="360" />
      <LABEL index="10" value="400" />
      <LABEL index="11" value="440" />
      <LABEL index="12" value="480" />
      <LABEL index="13" value="520" />
      <LABEL index="14" value="560" />
      <LABEL index="15" value="600" />
      <LABEL index="16" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>ratio (trans input torque / shift torque adder)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.00" />
      <LABEL index="1" value="0.25" />
      <LABEL index="2" value="0.50" />
      <LABEL index="3" value="0.75" />
      <LABEL index="4" value="1.00" />
      <LABEL index="5" value="1.25" />
      <LABEL index="6" value="1.50" />
      <LABEL index="7" value="1.75" />
      <LABEL index="8" value="2.00" />
      <LABEL index="9" value="2.25" />
      <LABEL index="10" value="2.50" />
      <LABEL index="11" value="2.75" />
      <LABEL index="12" value="3.00" />
      <LABEL index="13" value="3.25" />
      <LABEL index="14" value="3.50" />
      <LABEL index="15" value="3.75" />
      <LABEL index="16" value="4.00" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3B012" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>x</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1E7" flags="0x30">
    <title>Shift Pressure Multiplier 2-3</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Shift pressure multiplier for the 2-3 shift by shift torque and an engine-side ratio (stock 1.0 with a 0.875 diagonal band). Header [17][17], never edit it. Multiplies base shift pressure only when the enable is set; stock 0, so unused on the H3. Effect: shift firmness Evidence: ledger:E0368, ledger:E0710</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>shift torque (Nm)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="40" />
      <LABEL index="2" value="80" />
      <LABEL index="3" value="120" />
      <LABEL index="4" value="160" />
      <LABEL index="5" value="200" />
      <LABEL index="6" value="240" />
      <LABEL index="7" value="280" />
      <LABEL index="8" value="320" />
      <LABEL index="9" value="360" />
      <LABEL index="10" value="400" />
      <LABEL index="11" value="440" />
      <LABEL index="12" value="480" />
      <LABEL index="13" value="520" />
      <LABEL index="14" value="560" />
      <LABEL index="15" value="600" />
      <LABEL index="16" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>ratio (trans input torque / shift torque adder)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.00" />
      <LABEL index="1" value="0.25" />
      <LABEL index="2" value="0.50" />
      <LABEL index="3" value="0.75" />
      <LABEL index="4" value="1.00" />
      <LABEL index="5" value="1.25" />
      <LABEL index="6" value="1.50" />
      <LABEL index="7" value="1.75" />
      <LABEL index="8" value="2.00" />
      <LABEL index="9" value="2.25" />
      <LABEL index="10" value="2.50" />
      <LABEL index="11" value="2.75" />
      <LABEL index="12" value="3.00" />
      <LABEL index="13" value="3.25" />
      <LABEL index="14" value="3.50" />
      <LABEL index="15" value="3.75" />
      <LABEL index="16" value="4.00" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3B258" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>x</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1E8" flags="0x30">
    <title>Shift Pressure Multiplier 3-4</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Shift pressure multiplier for the 3-4 shift by shift torque and an engine-side ratio (stock 1.0 with a 0.875 diagonal band). Header [17][17], never edit it. Multiplies base shift pressure only when the enable is set; stock 0, so unused on the H3. Effect: shift firmness Evidence: ledger:E0368, ledger:E0710</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>shift torque (Nm)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="40" />
      <LABEL index="2" value="80" />
      <LABEL index="3" value="120" />
      <LABEL index="4" value="160" />
      <LABEL index="5" value="200" />
      <LABEL index="6" value="240" />
      <LABEL index="7" value="280" />
      <LABEL index="8" value="320" />
      <LABEL index="9" value="360" />
      <LABEL index="10" value="400" />
      <LABEL index="11" value="440" />
      <LABEL index="12" value="480" />
      <LABEL index="13" value="520" />
      <LABEL index="14" value="560" />
      <LABEL index="15" value="600" />
      <LABEL index="16" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>ratio (trans input torque / shift torque adder)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.00" />
      <LABEL index="1" value="0.25" />
      <LABEL index="2" value="0.50" />
      <LABEL index="3" value="0.75" />
      <LABEL index="4" value="1.00" />
      <LABEL index="5" value="1.25" />
      <LABEL index="6" value="1.50" />
      <LABEL index="7" value="1.75" />
      <LABEL index="8" value="2.00" />
      <LABEL index="9" value="2.25" />
      <LABEL index="10" value="2.50" />
      <LABEL index="11" value="2.75" />
      <LABEL index="12" value="3.00" />
      <LABEL index="13" value="3.25" />
      <LABEL index="14" value="3.50" />
      <LABEL index="15" value="3.75" />
      <LABEL index="16" value="4.00" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3B49E" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>x</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x1E9" flags="0x0">
    <title>Shift Pressure Multiplier - Enable</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. 1 = apply the per-shift shift pressure multiplier tables. Stock 0 (off). Multiplies base shift pressure only when the enable is set; stock 0, so unused on the H3. Effect: shift firmness Evidence: ledger:E0368</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x39B96" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>0/1</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x1EA" flags="0x30">
    <title>Start-Up Fuel - Second Multiplier vs Count x Events To Come (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Start-up fuel events (one-shot pulses written for the first cylinder events at start-up). Second per-event multiplier, row = event count - 1, column = events still to come. All 1.0 on the stock H3 (inert). Effect: raise = richer start-up pulses Evidence: ledger:E0369</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>16</indexcount>
      <units>events to come</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>16</indexcount>
      <units>event count</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1" />
      <LABEL index="1" value="2" />
      <LABEL index="2" value="3" />
      <LABEL index="3" value="4" />
      <LABEL index="4" value="5" />
      <LABEL index="5" value="6" />
      <LABEL index="6" value="7" />
      <LABEL index="7" value="8" />
      <LABEL index="8" value="9" />
      <LABEL index="9" value="10" />
      <LABEL index="10" value="11" />
      <LABEL index="11" value="12" />
      <LABEL index="12" value="13" />
      <LABEL index="13" value="14" />
      <LABEL index="14" value="15" />
      <LABEL index="15" value="16" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x24E20" mmedelementsizebits="8" mmedrowcount="16" mmedcolcount="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>1.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1EB" flags="0x30">
    <title>TCC Slip Target - 1-2</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. TCC slip target by engine torque (0 to 320 Nm) and turbine speed for the 1-2 shift index. The slip controller aims converter slip at this value. Stock 20 rpm everywhere. Effect: TCC lock-up slip Evidence: ledger:E0370, ledger:E0373, ledger:E0702</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm (turbine)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1000" />
      <LABEL index="1" value="1200" />
      <LABEL index="2" value="1400" />
      <LABEL index="3" value="1600" />
      <LABEL index="4" value="1800" />
      <LABEL index="5" value="2000" />
      <LABEL index="6" value="2200" />
      <LABEL index="7" value="2400" />
      <LABEL index="8" value="2800" />
      <LABEL index="9" value="3000" />
      <LABEL index="10" value="3200" />
      <LABEL index="11" value="3400" />
      <LABEL index="12" value="3600" />
      <LABEL index="13" value="3800" />
      <LABEL index="14" value="4000" />
      <LABEL index="15" value="4200" />
      <LABEL index="16" value="4400" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>Nm (positive net engine torque)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="40" />
      <LABEL index="2" value="80" />
      <LABEL index="3" value="120" />
      <LABEL index="4" value="160" />
      <LABEL index="5" value="200" />
      <LABEL index="6" value="240" />
      <LABEL index="7" value="280" />
      <LABEL index="8" value="320" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3D128" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1EC" flags="0x30">
    <title>TCC Slip Target - 2-3</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. TCC slip target by engine torque (0 to 320 Nm) and turbine speed for the 2-3 shift index. The slip controller aims converter slip at this value. Stock 20 rpm everywhere. Effect: TCC lock-up slip Evidence: ledger:E0370, ledger:E0373, ledger:E0702</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm (turbine)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1000" />
      <LABEL index="1" value="1200" />
      <LABEL index="2" value="1400" />
      <LABEL index="3" value="1600" />
      <LABEL index="4" value="1800" />
      <LABEL index="5" value="2000" />
      <LABEL index="6" value="2200" />
      <LABEL index="7" value="2400" />
      <LABEL index="8" value="2800" />
      <LABEL index="9" value="3000" />
      <LABEL index="10" value="3200" />
      <LABEL index="11" value="3400" />
      <LABEL index="12" value="3600" />
      <LABEL index="13" value="3800" />
      <LABEL index="14" value="4000" />
      <LABEL index="15" value="4200" />
      <LABEL index="16" value="4400" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>Nm (positive net engine torque)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="40" />
      <LABEL index="2" value="80" />
      <LABEL index="3" value="120" />
      <LABEL index="4" value="160" />
      <LABEL index="5" value="200" />
      <LABEL index="6" value="240" />
      <LABEL index="7" value="280" />
      <LABEL index="8" value="320" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3D25E" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1ED" flags="0x30">
    <title>TCC Slip Target - 3-4</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. TCC slip target by engine torque (0 to 320 Nm) and turbine speed for the 3-4 shift index. The slip controller aims converter slip at this value. Stock 20 rpm everywhere. Effect: TCC lock-up slip Evidence: ledger:E0370, ledger:E0373, ledger:E0702</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm (turbine)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1000" />
      <LABEL index="1" value="1200" />
      <LABEL index="2" value="1400" />
      <LABEL index="3" value="1600" />
      <LABEL index="4" value="1800" />
      <LABEL index="5" value="2000" />
      <LABEL index="6" value="2200" />
      <LABEL index="7" value="2400" />
      <LABEL index="8" value="2800" />
      <LABEL index="9" value="3000" />
      <LABEL index="10" value="3200" />
      <LABEL index="11" value="3400" />
      <LABEL index="12" value="3600" />
      <LABEL index="13" value="3800" />
      <LABEL index="14" value="4000" />
      <LABEL index="15" value="4200" />
      <LABEL index="16" value="4400" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>Nm (positive net engine torque)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="40" />
      <LABEL index="2" value="80" />
      <LABEL index="3" value="120" />
      <LABEL index="4" value="160" />
      <LABEL index="5" value="200" />
      <LABEL index="6" value="240" />
      <LABEL index="7" value="280" />
      <LABEL index="8" value="320" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3D394" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x1EE" flags="0x0">
    <title>TCC Slip Target - Floor After Event</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Minimum TCC slip target while the post-event timer runs. Stock 20 rpm. Effect: TCC lock-up slip Evidence: ledger:E0370, ledger:E0702</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D0CA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x1EF" flags="0x30">
    <title>EVAP Leak Test Vacuum Decay Limit - Low Range</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP leak test, vacuum hold phase: the PCM seals the EVAP system under vacuum and measures how fast tank vacuum decays (the decay slope it reports on PID 1296). A slope above this limit fails the test. Rows cover the lower half of the EVAP vapour reference, which the PCM derives from fuel level (the row labels give the fuel level on stock settings, n/a = not reached); columns are intake air temperature 0 to 40 C. Stock 0.039 inH2O per second in every cell. Raising it lets a faster leak pass. Not used by the stock calibration: this belongs to the engine-running small leak phase, which the stock calibration switches off (small leaks are checked by the engine-off test instead). Effect: no effect in the stock calibration Evidence: ledger:E0374, ledger:E0828, ledger:E0899, ledger:E0933, ledger:E0936, ledger:E0941, ledger:E1054, ledger:E1071</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>degC (IAT)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1.25" />
      <LABEL index="2" value="2.5" />
      <LABEL index="3" value="3.75" />
      <LABEL index="4" value="5" />
      <LABEL index="5" value="6.25" />
      <LABEL index="6" value="7.5" />
      <LABEL index="7" value="8.75" />
      <LABEL index="8" value="10" />
      <LABEL index="9" value="11.25" />
      <LABEL index="10" value="12.5" />
      <LABEL index="11" value="13.75" />
      <LABEL index="12" value="15" />
      <LABEL index="13" value="16.25" />
      <LABEL index="14" value="17.5" />
      <LABEL index="15" value="18.75" />
      <LABEL index="16" value="20" />
      <LABEL index="17" value="21.25" />
      <LABEL index="18" value="22.5" />
      <LABEL index="19" value="23.75" />
      <LABEL index="20" value="25" />
      <LABEL index="21" value="26.25" />
      <LABEL index="22" value="27.5" />
      <LABEL index="23" value="28.75" />
      <LABEL index="24" value="30" />
      <LABEL index="25" value="31.25" />
      <LABEL index="26" value="32.5" />
      <LABEL index="27" value="33.75" />
      <LABEL index="28" value="35" />
      <LABEL index="29" value="36.25" />
      <LABEL index="30" value="37.5" />
      <LABEL index="31" value="38.75" />
      <LABEL index="32" value="40" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>% fuel level (stock settings)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="n/a" />
      <LABEL index="1" value="95" />
      <LABEL index="2" value="77" />
      <LABEL index="3" value="59" />
      <LABEL index="4" value="41" />
      <LABEL index="5" value="23" />
      <LABEL index="6" value="4" />
      <LABEL index="7" value="n/a" />
      <LABEL index="8" value="n/a" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35038" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>inH2O/s</units>
      <decimalpl>3</decimalpl>
      <min>-8.000000</min>
      <max>7.999756</max>
      <MATH equation="X/4096"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1F0" flags="0x30">
    <title>EVAP Leak Test Vacuum Decay Limit - High Range</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP leak test, vacuum hold phase: the PCM seals the EVAP system under vacuum and measures how fast tank vacuum decays (the decay slope it reports on PID 1296). A slope above this limit fails the test. Rows cover the upper half of the EVAP vapour reference, which the PCM derives from fuel level (the row labels give the fuel level on stock settings, n/a = not reached); columns are intake air temperature 0 to 40 C. Stock 0.039 inH2O per second in every cell. Raising it lets a faster leak pass. Not used by the stock calibration: this belongs to the engine-running small leak phase, which the stock calibration switches off (small leaks are checked by the engine-off test instead). Effect: no effect in the stock calibration Evidence: ledger:E0374, ledger:E0828, ledger:E0899, ledger:E0933, ledger:E0936, ledger:E0941, ledger:E1054, ledger:E1071</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>degC (IAT)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1.25" />
      <LABEL index="2" value="2.5" />
      <LABEL index="3" value="3.75" />
      <LABEL index="4" value="5" />
      <LABEL index="5" value="6.25" />
      <LABEL index="6" value="7.5" />
      <LABEL index="7" value="8.75" />
      <LABEL index="8" value="10" />
      <LABEL index="9" value="11.25" />
      <LABEL index="10" value="12.5" />
      <LABEL index="11" value="13.75" />
      <LABEL index="12" value="15" />
      <LABEL index="13" value="16.25" />
      <LABEL index="14" value="17.5" />
      <LABEL index="15" value="18.75" />
      <LABEL index="16" value="20" />
      <LABEL index="17" value="21.25" />
      <LABEL index="18" value="22.5" />
      <LABEL index="19" value="23.75" />
      <LABEL index="20" value="25" />
      <LABEL index="21" value="26.25" />
      <LABEL index="22" value="27.5" />
      <LABEL index="23" value="28.75" />
      <LABEL index="24" value="30" />
      <LABEL index="25" value="31.25" />
      <LABEL index="26" value="32.5" />
      <LABEL index="27" value="33.75" />
      <LABEL index="28" value="35" />
      <LABEL index="29" value="36.25" />
      <LABEL index="30" value="37.5" />
      <LABEL index="31" value="38.75" />
      <LABEL index="32" value="40" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>% fuel level (stock settings)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="n/a" />
      <LABEL index="1" value="n/a" />
      <LABEL index="2" value="n/a" />
      <LABEL index="3" value="n/a" />
      <LABEL index="4" value="n/a" />
      <LABEL index="5" value="n/a" />
      <LABEL index="6" value="n/a" />
      <LABEL index="7" value="n/a" />
      <LABEL index="8" value="n/a" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35290" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>inH2O/s</units>
      <decimalpl>3</decimalpl>
      <min>-8.000000</min>
      <max>7.999756</max>
      <MATH equation="X/4096"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x1F1" flags="0x0">
    <title>TCC Adapt - Min Trans Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. TCC adapt only learns above this trans temp (stock 40 C). Part of TCC adaptive learning: while the converter clutch is applied and conditions are steady, the PCM learns an offset for the slip controller in five cells across 50..210 Nm (E0376). Effect: TCC adaptive learning Evidence: ledger:E0376</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C9BE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1F2" flags="0x0">
    <title>TCC Adapt - Max Trans Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. TCC adapt only learns below this trans temp (stock 120 C). Part of TCC adaptive learning: while the converter clutch is applied and conditions are steady, the PCM learns an offset for the slip controller in five cells across 50..210 Nm (E0376). Effect: TCC adaptive learning Evidence: ledger:E0376</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C9C0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1F3" flags="0x0">
    <title>TCC Adapt - Min Vehicle Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. TCC adapt only learns above this trans-side speed (stock 16.2 km/h). Part of TCC adaptive learning: while the converter clutch is applied and conditions are steady, the PCM learns an offset for the slip controller in five cells across 50..210 Nm (E0376). Effect: TCC adaptive learning Evidence: ledger:E0376</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C9B8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1F4" flags="0x0">
    <title>TCC Adapt - Max Vehicle Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. TCC adapt only learns below this trans-side speed (stock 321 km/h). Part of TCC adaptive learning: while the converter clutch is applied and conditions are steady, the PCM learns an offset for the slip controller in five cells across 50..210 Nm (E0376). Effect: TCC adaptive learning Evidence: ledger:E0376</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C9BA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1F5" flags="0x0">
    <title>TCC Adapt - Min Throttle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. TCC adapt only learns above this throttle area (stock 2.5 %). Part of TCC adaptive learning: while the converter clutch is applied and conditions are steady, the PCM learns an offset for the slip controller in five cells across 50..210 Nm (E0376). Effect: TCC adaptive learning Evidence: ledger:E0376</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C9C8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1F6" flags="0x0">
    <title>TCC Adapt - Max Throttle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. TCC adapt only learns below this throttle area (stock 100 %). Part of TCC adaptive learning: while the converter clutch is applied and conditions are steady, the PCM learns an offset for the slip controller in five cells across 50..210 Nm (E0376). Effect: TCC adaptive learning Evidence: ledger:E0376</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C9CA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1F7" flags="0x0">
    <title>TCC Adapt - Max Torque Change</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Learning stops while torque differs from its filtered value by more than this (stock 13.5 Nm). Part of TCC adaptive learning: while the converter clutch is applied and conditions are steady, the PCM learns an offset for the slip controller in five cells across 50..210 Nm (E0376). Effect: TCC adaptive learning Evidence: ledger:E0376</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C9D4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1F8" flags="0x0">
    <title>TCC Adapt - Max Throttle Change</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Learning stops while throttle differs from its filtered value by more than this (stock 2.0 %). Part of TCC adaptive learning: while the converter clutch is applied and conditions are steady, the PCM learns an offset for the slip controller in five cells across 50..210 Nm (E0376). Effect: TCC adaptive learning Evidence: ledger:E0376</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C9CE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1F9" flags="0x0">
    <title>TCC Adapt - Settle Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Conditions must hold this long before learning starts (stock 2.0 s). Part of TCC adaptive learning: while the converter clutch is applied and conditions are steady, the PCM learns an offset for the slip controller in five cells across 50..210 Nm (E0376). Effect: TCC adaptive learning Evidence: ledger:E0376</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C9D6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1FA" flags="0x0">
    <title>TCC Adapt - Learn Interval</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time between learn updates once settled (stock 1.0 s). Part of TCC adaptive learning: while the converter clutch is applied and conditions are steady, the PCM learns an offset for the slip controller in five cells across 50..210 Nm (E0376). Effect: TCC adaptive learning Evidence: ledger:E0376</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C9D8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1FB" flags="0x0">
    <title>TCC Adapt - Max Slip Error</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. While the torque converter clutch is locked up and driving conditions are steady, the PCM slowly learns a small correction to how it controls the clutch. Learning pauses whenever the actual clutch slip is off from its target by more than this amount. Stock 15 rpm. Effect: raise = learning keeps working through a bigger slip error before it pauses Evidence: ledger:E0376, ledger:E0797</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C9BC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>4095.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x1FC" flags="0x30">
    <title>Engine Torque Estimate vs Throttle x RPM (throttle-based model)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Gross torque the PCM predicts from throttle area and rpm, before the baro and intake air temperature multipliers and minus losses and inertia; the electronic throttle&#x27;s torque control and others read it. Rows are the total throttle area request (idle plus pedal), in % of full throttle area. Stock 0 at closed throttle up to 400 Nm. Model: do not edit to change power. Effect: DO NOT EDIT (torque model) Evidence: ledger:E0377, ledger:E0452, ledger:E0927, ledger:E0936</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8191" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>% throttle area</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="0.2" />
      <LABEL index="2" value="0.4" />
      <LABEL index="3" value="0.6" />
      <LABEL index="4" value="0.8" />
      <LABEL index="5" value="1.0" />
      <LABEL index="6" value="1.2" />
      <LABEL index="7" value="1.4" />
      <LABEL index="8" value="1.6" />
      <LABEL index="9" value="1.8" />
      <LABEL index="10" value="2.0" />
      <LABEL index="11" value="2.5" />
      <LABEL index="12" value="3.0" />
      <LABEL index="13" value="3.5" />
      <LABEL index="14" value="4.0" />
      <LABEL index="15" value="5.0" />
      <LABEL index="16" value="6.0" />
      <LABEL index="17" value="7.0" />
      <LABEL index="18" value="8.0" />
      <LABEL index="19" value="9.0" />
      <LABEL index="20" value="10.0" />
      <LABEL index="21" value="12.0" />
      <LABEL index="22" value="14.0" />
      <LABEL index="23" value="16.0" />
      <LABEL index="24" value="18.0" />
      <LABEL index="25" value="20.0" />
      <LABEL index="26" value="25.0" />
      <LABEL index="27" value="30.0" />
      <LABEL index="28" value="35.0" />
      <LABEL index="29" value="40.0" />
      <LABEL index="30" value="45.0" />
      <LABEL index="31" value="50.0" />
      <LABEL index="32" value="100.0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x309B4" mmedelementsizebits="16" mmedrowcount="33" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>Nm</units>
      <decimalpl>1</decimalpl>
      <min>-8192.000000</min>
      <max>8191.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x1FD" flags="0x30">
    <title>Engine Torque Estimate - RPM Breakpoints (axis, edit with care)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stored rpm breakpoints of the throttle-based torque estimate table: 0 to 7680 rpm in 512 rpm steps, then 8191. Effect: moves the axis of every table that uses it: edit with care Evidence: ledger:E0377</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x30944" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x1FE" flags="0x0">
    <title>First Idle After Start - Speed Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The first-idle-after-start idle settings end when rpm falls to desired idle (plus the offset) at or below this speed; above it only the airflow test applies. Stock 17.5 km/h. Effect: raise = rpm test used up to a higher speed Evidence: ledger:E0378</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x291A6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x1FF" flags="0x0">
    <title>First Idle After Start - End RPM Offset</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The first-idle settings end once rpm is at or below desired idle plus this. Stock 0 rpm. Effect: raise = first-idle settings end sooner Evidence: ledger:E0378</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x2A344" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>-4096.000000</min>
    <max>4095.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x200" flags="0x0">
    <title>First Idle After Start - End Airflow Offset</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Above the speed threshold, the first-idle settings end when predicted idle airflow plus this exceeds a limit. Stock -32 g/s (off). Effect: raise toward 0 to enable the airflow test Evidence: ledger:E0378</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x2A342" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>g/s</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x201" flags="0x30">
    <title>A/C Idle Air Ramp-In Step vs A/C Compressor Torque</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle airflow added per update while the A/C idle air ramps in when the compressor engages, by A/C compressor torque (0 to 80 Nm), until the A/C idle air target is reached. Stock 0.9 down to 0.5 g/s. Effect: raise = the extra idle air for the A/C comes in faster Evidence: ledger:E0379, ledger:E0948</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>Nm (A/C compressor torque)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="10" />
      <LABEL index="2" value="20" />
      <LABEL index="3" value="30" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="50" />
      <LABEL index="6" value="60" />
      <LABEL index="7" value="70" />
      <LABEL index="8" value="80" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x29952" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s per update</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x202" flags="0x30">
    <title>A/C Idle Air Sequence Hold Time vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time the A/C idle air sequence holds after the air has ramped in before it ends, by engine speed (0 to 4096 rpm). Stock 1.3 s at low rpm down to 0.16 s. Effect: raise = the A/C idle air sequence stays active longer Evidence: ledger:E0379, ledger:E0936, ledger:E0948</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2999E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x203" flags="0x30">
    <title>Ambient Air Temp Estimate - Intake Heat Rise vs Airflow x Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The ambient temperature estimate (PID 0x46) targets IAT minus this rise; only updated above 5 g/s and 48 km/h. Stock 50 C at standstill, 7.5 C at 80 km/h, about 4 C at 160 km/h (E0385). Effect: raise = lower ambient estimate Evidence: ledger:E0385, ledger:E0936</description>
    <CATEGORYMEM index="0" category="10" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>km/h</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="10" />
      <LABEL index="2" value="20" />
      <LABEL index="3" value="30" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="50" />
      <LABEL index="6" value="60" />
      <LABEL index="7" value="70" />
      <LABEL index="8" value="80" />
      <LABEL index="9" value="90" />
      <LABEL index="10" value="100" />
      <LABEL index="11" value="110" />
      <LABEL index="12" value="120" />
      <LABEL index="13" value="130" />
      <LABEL index="14" value="140" />
      <LABEL index="15" value="150" />
      <LABEL index="16" value="160" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="8" />
      <LABEL index="2" value="16" />
      <LABEL index="3" value="24" />
      <LABEL index="4" value="32" />
      <LABEL index="5" value="40" />
      <LABEL index="6" value="48" />
      <LABEL index="7" value="56" />
      <LABEL index="8" value="64" />
      <LABEL index="9" value="72" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="88" />
      <LABEL index="12" value="96" />
      <LABEL index="13" value="104" />
      <LABEL index="14" value="112" />
      <LABEL index="15" value="120" />
      <LABEL index="16" value="128" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x33A72" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x204" flags="0x30">
    <title>Ambient Air Temp Estimate - Step per Update vs Airflow</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How far the ambient estimate moves toward its target each update. Stock 0.1 C at every airflow (E0385). Effect: raise = ambient estimate follows faster Evidence: ledger:E0385</description>
    <CATEGORYMEM index="0" category="10" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="8" />
      <LABEL index="2" value="16" />
      <LABEL index="3" value="24" />
      <LABEL index="4" value="32" />
      <LABEL index="5" value="40" />
      <LABEL index="6" value="48" />
      <LABEL index="7" value="56" />
      <LABEL index="8" value="64" />
      <LABEL index="9" value="72" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="88" />
      <LABEL index="12" value="96" />
      <LABEL index="13" value="104" />
      <LABEL index="14" value="112" />
      <LABEL index="15" value="120" />
      <LABEL index="16" value="128" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x33A20" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x205" flags="0x30">
    <title>Spark Ceiling - Hot Mode Ceiling vs Airmass x RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The lower spark ceiling used by the hot high-load mode: after the hot, high-rpm, high-load condition lasts the arm time, spark above this value is pulled back (blended in by the ramp-in curve). Also the level at which the blend starts. Stock 18 deg to 1536 rpm rising to 24 deg from 6656 rpm, the same in every airmass row. Effect: raise = blend engages at higher spark Evidence: ledger:E0386, ledger:E0719</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>g/cyl (airmass)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.08" />
      <LABEL index="1" value="0.16" />
      <LABEL index="2" value="0.24" />
      <LABEL index="3" value="0.32" />
      <LABEL index="4" value="0.4" />
      <LABEL index="5" value="0.48" />
      <LABEL index="6" value="0.56" />
      <LABEL index="7" value="0.64" />
      <LABEL index="8" value="0.72" />
      <LABEL index="9" value="0.8" />
      <LABEL index="10" value="0.88" />
      <LABEL index="11" value="0.96" />
      <LABEL index="12" value="1.04" />
      <LABEL index="13" value="1.12" />
      <LABEL index="14" value="1.2" />
      <LABEL index="15" value="1.28" />
      <LABEL index="16" value="1.36" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2F8AE" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x206" flags="0x30">
    <title>Spark Limit Blend - Ramp-In Step vs Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Hot high-load spark ceiling blend (E0719). Blend added per update (fraction of full = X/128). Stock 0.09 cold to 0.26 hot (E0386). Effect: raise = limit engages faster Evidence: ledger:E0386, ledger:E0719</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2FC02" mmedelementsizebits="8" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>1.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x207" flags="0x30">
    <title>Spark Limit Blend - Ramp-Out Step vs Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Hot high-load spark ceiling blend (E0719). Blend removed per update (fraction of full = X/128). Stock 0.09 cold to 0.26 hot (E0386). Effect: raise = limit releases faster Evidence: ledger:E0386, ledger:E0719</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2FC15" mmedelementsizebits="8" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>1.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x208" flags="0x30">
    <title>Shift Speed vs TPS - Mode 0</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0387). Full shift schedule used in shift mode 0. Rows in slot order. Read through the shift schedule pointer table. Effect: raise = hold gears longer; keep each downshift below its upshift (hysteresis) Evidence: ledger:E0176, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0387, ledger:E0705</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2 up" />
      <LABEL index="1" value="2-1 down" />
      <LABEL index="2" value="2-3 up" />
      <LABEL index="3" value="3-2 down" />
      <LABEL index="4" value="3-4 up" />
      <LABEL index="5" value="4-3 down" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x397C6" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x209" flags="0x30">
    <title>Shift Speed vs TPS - Mode 1 Upshifts</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0387). Upshift curves used in shift mode 1; its downshifts share the hot schedule&#x27;s curves. Read through the shift schedule pointer table. Effect: raise = hold gears longer; keep each downshift below its upshift (hysteresis) Evidence: ledger:E0176, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0387, ledger:E0705</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2 up" />
      <LABEL index="1" value="2-3 up" />
      <LABEL index="2" value="3-4 up" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3975A" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x20A" flags="0x30">
    <title>Shift Speed vs TPS - 1st Gear Hold (range limit 1)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0387). Range column 0 of every mode above 1 uses this record: 1-2 at 311 mph (never) so the truck holds 1st; 2-1 at 40.4 mph. Read through the shift schedule pointer table. Effect: raise = hold gears longer; keep each downshift below its upshift (hysteresis) Evidence: ledger:E0176, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0387, ledger:E0705</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2 up" />
      <LABEL index="1" value="2-1 down" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3910C" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x20B" flags="0x30">
    <title>Shift Speed - 1st Gear Hold, Upper Shifts (2-point)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 points]; COUNT is a structure word, never edit it (E0387). Upper-gear points in the 1st-hold record (2-point curves, flat over throttle). Read through the shift schedule pointer table. Effect: raise = hold gears longer; keep each downshift below its upshift (hysteresis) Evidence: ledger:E0176, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0387, ledger:E0705</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>4</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2-3 up" />
      <LABEL index="1" value="3-4 up" />
      <LABEL index="2" value="3-2 down" />
      <LABEL index="3" value="4-3 down" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x39154" mmedelementsizebits="16" mmedrowcount="4" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x20C" flags="0x30">
    <title>Shift Speed vs TPS - 2nd Gear Max (range limit 2), 1-2 / 2-1</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0387). Range column 1: 1-2 / 2-1 curves while the range limits the truck to 2nd. Read through the shift schedule pointer table. Effect: raise = hold gears longer; keep each downshift below its upshift (hysteresis) Evidence: ledger:E0176, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0387, ledger:E0705</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>8</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="Normal 1-2 up" />
      <LABEL index="1" value="Normal 2-1 down" />
      <LABEL index="2" value="Hot 1-2 up" />
      <LABEL index="3" value="Hot 2-1 down" />
      <LABEL index="4" value="Cruise 1-2 up" />
      <LABEL index="5" value="Cruise 2-1 down" />
      <LABEL index="6" value="Performance 1-2 up" />
      <LABEL index="7" value="Performance 2-1 down" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3916C" mmedelementsizebits="16" mmedrowcount="8" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x20D" flags="0x30">
    <title>Shift Speed - 2nd Gear Max, Locked Upper Shifts (2-point)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 points]; COUNT is a structure word, never edit it (E0387). Upper shifts in the 2nd-max records: upshifts at 311 mph and downshifts at 307.6 mph, i.e. never shifts above 2nd. Read through the shift schedule pointer table. Effect: raise = hold gears longer; keep each downshift below its upshift (hysteresis) Evidence: ledger:E0176, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0387, ledger:E0705</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>4</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2-3 up" />
      <LABEL index="1" value="3-4 up" />
      <LABEL index="2" value="3-2 down" />
      <LABEL index="3" value="4-3 down" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3928C" mmedelementsizebits="16" mmedrowcount="4" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x20E" flags="0x30">
    <title>Shift Speed vs TPS - 3rd Gear Max (range column 2), 3-4 / 4-3</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0387). 3-4 slots of the 3rd-max records k4 / k10 / k15 / k21 (hot / cruise / performance / normal): 3-4 at 311 mph (never). Read through the shift schedule pointer table. Effect: raise = hold gears longer; keep each downshift below its upshift (hysteresis) Evidence: ledger:E0176, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0387, ledger:E0705</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="3-4 up" />
      <LABEL index="1" value="4-3 down" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3937C" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x20F" flags="0x30">
    <title>WOT Shift Speed vs Shift - Cruise (Set 1)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 points]; COUNT is a structure word, never edit it (E0387). WOT shift speeds (shift mode 4, E0180). Read through the shift schedule pointer table. Effect: raise = hold gears longer; keep each downshift below its upshift (hysteresis) Evidence: ledger:E0176, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0387, ledger:E0705</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2 up" />
      <LABEL index="1" value="2-3 up" />
      <LABEL index="2" value="3-4 up" />
      <LABEL index="3" value="2-1 down" />
      <LABEL index="4" value="3-2 down" />
      <LABEL index="5" value="4-3 down" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x394D2" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x210" flags="0x30">
    <title>WOT Shift RPM - Cruise (Set 1)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 points]; COUNT is a structure word, never edit it (E0387). WOT upshift rpm rows ; stock 6100 rpm. Read through the shift schedule pointer table. Effect: raise = hold gears longer; keep each downshift below its upshift (hysteresis) Evidence: ledger:E0176, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0387, ledger:E0705</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x394F6" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X*0.125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x211" flags="0x30">
    <title>WOT Shift Speed vs Shift - Cruise (Set 2)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 points]; COUNT is a structure word, never edit it (E0387). WOT shift speeds (shift mode 5, E0180). Read through the shift schedule pointer table. Effect: raise = hold gears longer; keep each downshift below its upshift (hysteresis) Evidence: ledger:E0176, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0387, ledger:E0705</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2 up" />
      <LABEL index="1" value="2-3 up" />
      <LABEL index="2" value="3-4 up" />
      <LABEL index="3" value="2-1 down" />
      <LABEL index="4" value="3-2 down" />
      <LABEL index="5" value="4-3 down" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x39616" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x212" flags="0x30">
    <title>WOT Shift RPM - Cruise (Set 2)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 points]; COUNT is a structure word, never edit it (E0387). WOT upshift rpm rows ; stock 6100 rpm. Read through the shift schedule pointer table. Effect: raise = hold gears longer; keep each downshift below its upshift (hysteresis) Evidence: ledger:E0176, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0387, ledger:E0705</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3963A" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X*0.125"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x213" flags="0x30">
    <title>Airflow Rationality - Engine Airflow Multiplier</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101), diagnostic model only: multiplier on the engine airflow the two manifold pressure models assume, by engine speed (400 to 6400 rpm) and barometric pressure (55 to 105 kPa). Stock 1.0 everywhere. Effect: raise = the models assume the engine draws more air at that speed and barometric pressure Evidence: ledger:E0388, ledger:E1074</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="775" />
      <LABEL index="2" value="1150" />
      <LABEL index="3" value="1525" />
      <LABEL index="4" value="1900" />
      <LABEL index="5" value="2275" />
      <LABEL index="6" value="2650" />
      <LABEL index="7" value="3025" />
      <LABEL index="8" value="3400" />
      <LABEL index="9" value="3775" />
      <LABEL index="10" value="4150" />
      <LABEL index="11" value="4525" />
      <LABEL index="12" value="4900" />
      <LABEL index="13" value="5275" />
      <LABEL index="14" value="5650" />
      <LABEL index="15" value="6025" />
      <LABEL index="16" value="6400" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>kPa (baro)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="55" />
      <LABEL index="1" value="61.25" />
      <LABEL index="2" value="67.5" />
      <LABEL index="3" value="73.75" />
      <LABEL index="4" value="80" />
      <LABEL index="5" value="86.25" />
      <LABEL index="6" value="92.5" />
      <LABEL index="7" value="98.75" />
      <LABEL index="8" value="105" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35D1A" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>multiplier</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x214" flags="0x30">
    <title>TCC Apply / Release Speed vs TPS - Mode 0 and Mode 1</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0389). TCC apply and release speeds for shift mode 0 (all rows) and the apply rows of mode 1 (its release rows are the hot table&#x27;s). Read through the TCC schedule pointer table. Effect: raise apply = lock up later; keep each release below its apply Evidence: ledger:E0177, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0389, ledger:E0705</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="Mode 0 2nd apply" />
      <LABEL index="1" value="Mode 0 3rd apply" />
      <LABEL index="2" value="Mode 0 4th apply" />
      <LABEL index="3" value="Mode 1 2nd apply" />
      <LABEL index="4" value="Mode 1 3rd apply" />
      <LABEL index="5" value="Mode 1 4th apply" />
      <LABEL index="6" value="Mode 0 2nd release" />
      <LABEL index="7" value="Mode 0 3rd release" />
      <LABEL index="8" value="Mode 0 4th release" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3D4E4" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x215" flags="0x30">
    <title>TCC WOT Apply / Release Speed (Set 1)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 points]; COUNT is a structure word, never edit it (E0389). WOT TCC speeds (shift mode 4, range column 2). Read through the TCC schedule pointer table. Effect: raise apply = lock up later; keep each release below its apply Evidence: ledger:E0177, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0389, ledger:E0705</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2nd apply" />
      <LABEL index="1" value="3rd apply" />
      <LABEL index="2" value="4th apply" />
      <LABEL index="3" value="2nd release" />
      <LABEL index="4" value="3rd release" />
      <LABEL index="5" value="4th release" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3D628" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x216" flags="0x30">
    <title>TCC WOT Apply / Release Speed (Set 2)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 2][2 points]; COUNT is a structure word, never edit it (E0389). WOT TCC speeds (shift mode 5, range column 2). Read through the TCC schedule pointer table. Effect: raise apply = lock up later; keep each release below its apply Evidence: ledger:E0177, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0389, ledger:E0705</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2nd apply" />
      <LABEL index="1" value="3rd apply" />
      <LABEL index="2" value="4th apply" />
      <LABEL index="3" value="2nd release" />
      <LABEL index="4" value="3rd release" />
      <LABEL index="5" value="4th release" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3D91C" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x217" flags="0x30">
    <title>TCC Apply / Release Speed vs TPS - 2nd Gear Max, Hot</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0389). 2nd-gear TCC rows while the range caps at 2nd (range column 1), hot modes; 3rd / 4th rows are the hot table&#x27;s. Read through the TCC schedule pointer table. The PCM uses the Hot schedules while hot transmission mode is on; hot mode takes priority over cruise and 4-Lo. Effect: raise apply = lock up later; keep each release below its apply Evidence: ledger:E0177, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0389, ledger:E0705, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2nd apply" />
      <LABEL index="1" value="2nd release" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3D748" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x218" flags="0x30">
    <title>TCC Apply / Release Speed vs TPS - 2nd Gear Max, Normal</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0389). 2nd-gear TCC rows while the range caps at 2nd, normal modes 4 / 9 / 10. Read through the TCC schedule pointer table. The PCM uses the Normal schedules in ordinary driving: not in hot transmission mode, cruise or 4-Lo. Effect: raise apply = lock up later; keep each release below its apply Evidence: ledger:E0177, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0389, ledger:E0705, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2nd apply" />
      <LABEL index="1" value="2nd release" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3D88C" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x219" flags="0x30">
    <title>TCC Apply / Release Speed vs TPS - Range Column 0</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0389). TCC rows for range column 0 (the 1st-hold range, ): only 2nd-gear rows exist, 3rd / 4th pointers are null. Read through the TCC schedule pointer table. Effect: raise apply = lock up later; keep each release below its apply Evidence: ledger:E0177, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0389, ledger:E0705</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2nd apply" />
      <LABEL index="1" value="2nd release" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3D8D4" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x21A" flags="0x30">
    <title>TCC Apply / Release Speed vs TPS - 2nd Gear Max, Cruise</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0389). 2nd-gear TCC rows while the range caps at 2nd, cruise modes 5 / 6. Read through the TCC schedule pointer table. The PCM uses the Cruise schedules while cruise control is engaged; cruise takes priority over 4-Lo. Effect: raise apply = lock up later; keep each release below its apply Evidence: ledger:E0177, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0389, ledger:E0705, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2nd apply" />
      <LABEL index="1" value="2nd release" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3DA18" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x21B" flags="0x30">
    <title>TCC Apply / Release Speed vs TPS - 2nd Gear Max, 4-Lo</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0389). 2nd-gear TCC rows while the range caps at 2nd, 4-Lo (modes 7 / 8). Read through the TCC schedule pointer table. The PCM uses these schedules while the transfer case is in 4-Lo (named Performance before v3.7; the stock calibration has no separate performance mode). In 4-Lo the transmission&#x27;s speed reading is 4.03 times road speed (it is worked out from transmission output speed with the high-range ratio), so a value of 40 km/h here acts at about 10 km/h on the road. Effect: raise apply = lock up later; keep each release below its apply Evidence: ledger:E0177, ledger:E0180, ledger:E0208, ledger:E0269, ledger:E0389, ledger:E0705, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>2</indexcount>
      <units>row</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2nd apply" />
      <LABEL index="1" value="2nd release" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3DB5C" mmedelementsizebits="16" mmedrowcount="2" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>318.137196</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x21C" flags="0x30">
    <title>Pedal to Throttle-Area Demand - Slot k7 (not used on the H3)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A populated pedal map (pedal % by vehicle speed to throttle-area demand) in a slot that no mode selects on the H3, so editing it has no effect on this truck. Effect: no effect on the stock H3 Evidence: ledger:E0228, ledger:E0232, ledger:E0240, ledger:E0391</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% pedal</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="3.1" />
      <LABEL index="2" value="6.3" />
      <LABEL index="3" value="12.5" />
      <LABEL index="4" value="18.8" />
      <LABEL index="5" value="25.0" />
      <LABEL index="6" value="31.3" />
      <LABEL index="7" value="37.5" />
      <LABEL index="8" value="43.8" />
      <LABEL index="9" value="50.0" />
      <LABEL index="10" value="56.3" />
      <LABEL index="11" value="62.5" />
      <LABEL index="12" value="68.8" />
      <LABEL index="13" value="75.0" />
      <LABEL index="14" value="81.3" />
      <LABEL index="15" value="87.5" />
      <LABEL index="16" value="97.0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>km/h (filtered vehicle speed)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="3" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="20" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="120" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x242EC" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% (throttle-area demand)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x21D" flags="0x30">
    <title>Coolant Temp Sensor - Temperature Points</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Temperature at each of the 33 sensor resistance points (stock 150 C down to -40 C in 5.9 C steps); the PCM interpolates between them to get coolant temperature. Effect: reported and used coolant temperature Evidence: ledger:E0392, ledger:E1047</description>
    <CATEGORYMEM index="0" category="10" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>point</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <LABEL index="31" value="31" />
      <LABEL index="32" value="32" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22512" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x21E" flags="0x30">
    <title>Coolant Temp Sensor - Resistance Points</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Sensor resistance at each of the 33 temperature points of the coolant temperature sensor (stock 47 ohm at 150 C to 100.7 kohm at -40 C, the standard GM thermistor). Paired with Coolant Temp Sensor - Temperature Points. Change only for a different sensor. Effect: reported and used coolant temperature Evidence: ledger:E0392, ledger:E1047</description>
    <CATEGORYMEM index="0" category="10" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>point</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <LABEL index="31" value="31" />
      <LABEL index="32" value="32" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2248A" mmedelementsizebits="32" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ohm</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>134217727.968750</max>
      <MATH equation="X/32"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x21F" flags="0x30">
    <title>Shift Pressure Phase - Start Ratio (torque band 0)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0393). Start ratio for torque band state 0 (below the E0350 net-torque threshold); stock 3.000 / 1.625 / 1.000. Ratio points of the shift pressure phase (measured gear ratio): the phase ramps its pressure in between start and full and out by end. On the stock H3 the phase pressure curves are all zero, so these only matter if those are filled (E0393). Effect: shift pressure phase timing Evidence: ledger:E0393</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="40" />
      <LABEL index="3" value="80" />
      <LABEL index="4" value="120" />
      <LABEL index="5" value="160" />
      <LABEL index="6" value="200" />
      <LABEL index="7" value="240" />
      <LABEL index="8" value="280" />
      <LABEL index="9" value="320" />
      <LABEL index="10" value="360" />
      <LABEL index="11" value="400" />
      <LABEL index="12" value="440" />
      <LABEL index="13" value="480" />
      <LABEL index="14" value="520" />
      <LABEL index="15" value="560" />
      <LABEL index="16" value="600" />
      <LABEL index="17" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3A4B6" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ratio</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x220" flags="0x30">
    <title>Shift Pressure Phase - Full Ratio (torque band 0)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0393). Full ratio for torque band state 0 (below the E0350 net-torque threshold); stock 2.750 / 1.500 / 0.875. Ratio points of the shift pressure phase (measured gear ratio): the phase ramps its pressure in between start and full and out by end. On the stock H3 the phase pressure curves are all zero, so these only matter if those are filled (E0393). Effect: shift pressure phase timing Evidence: ledger:E0393</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="40" />
      <LABEL index="3" value="80" />
      <LABEL index="4" value="120" />
      <LABEL index="5" value="160" />
      <LABEL index="6" value="200" />
      <LABEL index="7" value="240" />
      <LABEL index="8" value="280" />
      <LABEL index="9" value="320" />
      <LABEL index="10" value="360" />
      <LABEL index="11" value="400" />
      <LABEL index="12" value="440" />
      <LABEL index="13" value="480" />
      <LABEL index="14" value="520" />
      <LABEL index="15" value="560" />
      <LABEL index="16" value="600" />
      <LABEL index="17" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3A526" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ratio</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x221" flags="0x30">
    <title>Shift Pressure Phase - End Ratio (torque band 0)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0393). End ratio for torque band state 0 (below the E0350 net-torque threshold); stock 2.000 / 1.250 / 0.750. Ratio points of the shift pressure phase (measured gear ratio): the phase ramps its pressure in between start and full and out by end. On the stock H3 the phase pressure curves are all zero, so these only matter if those are filled (E0393). Effect: shift pressure phase timing Evidence: ledger:E0393</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="40" />
      <LABEL index="3" value="80" />
      <LABEL index="4" value="120" />
      <LABEL index="5" value="160" />
      <LABEL index="6" value="200" />
      <LABEL index="7" value="240" />
      <LABEL index="8" value="280" />
      <LABEL index="9" value="320" />
      <LABEL index="10" value="360" />
      <LABEL index="11" value="400" />
      <LABEL index="12" value="440" />
      <LABEL index="13" value="480" />
      <LABEL index="14" value="520" />
      <LABEL index="15" value="560" />
      <LABEL index="16" value="600" />
      <LABEL index="17" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3A596" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ratio</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x222" flags="0x30">
    <title>Shift Pressure Phase - Start Ratio (torque band 1)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0393). Start ratio for torque band state 1 (above the E0350 net-torque threshold); stock 3.000 / 1.600 / 0.938. Ratio points of the shift pressure phase (measured gear ratio): the phase ramps its pressure in between start and full and out by end. On the stock H3 the phase pressure curves are all zero, so these only matter if those are filled (E0393). Effect: shift pressure phase timing Evidence: ledger:E0393</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="40" />
      <LABEL index="3" value="80" />
      <LABEL index="4" value="120" />
      <LABEL index="5" value="160" />
      <LABEL index="6" value="200" />
      <LABEL index="7" value="240" />
      <LABEL index="8" value="280" />
      <LABEL index="9" value="320" />
      <LABEL index="10" value="360" />
      <LABEL index="11" value="400" />
      <LABEL index="12" value="440" />
      <LABEL index="13" value="480" />
      <LABEL index="14" value="520" />
      <LABEL index="15" value="560" />
      <LABEL index="16" value="600" />
      <LABEL index="17" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x39F8E" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ratio</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x223" flags="0x30">
    <title>Shift Pressure Phase - Full Ratio (torque band 1)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0393). Full ratio for torque band state 1 (above the E0350 net-torque threshold); stock 2.750 / 1.500 / 0.875. Ratio points of the shift pressure phase (measured gear ratio): the phase ramps its pressure in between start and full and out by end. On the stock H3 the phase pressure curves are all zero, so these only matter if those are filled (E0393). Effect: shift pressure phase timing Evidence: ledger:E0393</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="40" />
      <LABEL index="3" value="80" />
      <LABEL index="4" value="120" />
      <LABEL index="5" value="160" />
      <LABEL index="6" value="200" />
      <LABEL index="7" value="240" />
      <LABEL index="8" value="280" />
      <LABEL index="9" value="320" />
      <LABEL index="10" value="360" />
      <LABEL index="11" value="400" />
      <LABEL index="12" value="440" />
      <LABEL index="13" value="480" />
      <LABEL index="14" value="520" />
      <LABEL index="15" value="560" />
      <LABEL index="16" value="600" />
      <LABEL index="17" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x39FFE" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ratio</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x224" flags="0x30">
    <title>Shift Pressure Phase - End Ratio (torque band 1)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Each row is [COUNT u16 = 17][17 points]; COUNT is a structure word, never edit it (E0393). End ratio for torque band state 1 (above the E0350 net-torque threshold); stock 2.000 / 1.250 / 0.750. Ratio points of the shift pressure phase (measured gear ratio): the phase ramps its pressure in between start and full and out by end. On the stock H3 the phase pressure curves are all zero, so these only matter if those are filled (E0393). Effect: shift pressure phase timing Evidence: ledger:E0393</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>COUNT + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="COUNT" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="40" />
      <LABEL index="3" value="80" />
      <LABEL index="4" value="120" />
      <LABEL index="5" value="160" />
      <LABEL index="6" value="200" />
      <LABEL index="7" value="240" />
      <LABEL index="8" value="280" />
      <LABEL index="9" value="320" />
      <LABEL index="10" value="360" />
      <LABEL index="11" value="400" />
      <LABEL index="12" value="440" />
      <LABEL index="13" value="480" />
      <LABEL index="14" value="520" />
      <LABEL index="15" value="560" />
      <LABEL index="16" value="600" />
      <LABEL index="17" value="640" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2" />
      <LABEL index="1" value="2-3" />
      <LABEL index="2" value="3-4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3A06E" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ratio</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x225" flags="0x30">
    <title>Tip-In Torque Mgmt - Throttle Rise Cap by Gear and RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): during a tip-in, the pedal throttle-area demand may rise at most this much per update, by gear (rows) and rpm (columns). Stock about 0.04 to 0.07 % per update. Effect: raise = sharper tip-in (more driveline clunk) Evidence: ledger:E0395</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="500" />
      <LABEL index="2" value="1000" />
      <LABEL index="3" value="1500" />
      <LABEL index="4" value="2000" />
      <LABEL index="5" value="2500" />
      <LABEL index="6" value="3000" />
      <LABEL index="7" value="3500" />
      <LABEL index="8" value="4000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>trans state</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="state 0" />
      <LABEL index="1" value="state 1" />
      <LABEL index="2" value="state 2" />
      <LABEL index="3" value="state 3" />
      <LABEL index="4" value="state 4" />
      <LABEL index="5" value="state 5" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2106A" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% area per update</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x226" flags="0x30">
    <title>Tip-In Torque Mgmt - Rise Cap Factor vs Pedal Area</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): multiplies the rise cap by pedal throttle-area demand. Stock 1.0 flat. Effect: raise = sharper tip-in at that pedal Evidence: ledger:E0395</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>% area</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="10" />
      <LABEL index="2" value="20" />
      <LABEL index="3" value="30" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="50" />
      <LABEL index="6" value="60" />
      <LABEL index="7" value="70" />
      <LABEL index="8" value="80" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2114A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>3.999939</max>
      <MATH equation="X/16384"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x227" flags="0x30">
    <title>Tip-In Torque Mgmt - Release Ramp Length by Gear and RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after the tip-in limit ends, the rise cap opens back up over this many updates, by gear (rows) and rpm (columns). Stock 50. Effect: raise = slower return to full throttle response Evidence: ledger:E0395</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="500" />
      <LABEL index="2" value="1000" />
      <LABEL index="3" value="1500" />
      <LABEL index="4" value="2000" />
      <LABEL index="5" value="2500" />
      <LABEL index="6" value="3000" />
      <LABEL index="7" value="3500" />
      <LABEL index="8" value="4000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>trans state</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="state 0" />
      <LABEL index="1" value="state 1" />
      <LABEL index="2" value="state 2" />
      <LABEL index="3" value="state 3" />
      <LABEL index="4" value="state 4" />
      <LABEL index="5" value="state 5" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x210DA" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>updates</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x228" flags="0x0">
    <title>Tip-In Release Ramp - Cruise Engaged</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after a tip-in limit ends, the pedal rise cap opens back up over this many updates while cruise control is engaged (otherwise the release ramp table by transmission state and engine speed is used). Stock 60 updates. Effect: lower = the rise cap opens up faster after a tip-in while cruise is on Evidence: ledger:E0395, ledger:E0838, ledger:E0844</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x21146" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>updates</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x229" flags="0x0">
    <title>Tip-In Arming - Slip Threshold A</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only) can only arm while the engine is turning less than a set amount faster than the transmission output implies in the current gear (torque converter plus gearbox slip). Below Threshold A it can arm; from Threshold A up to Threshold B it can arm only while engine torque is below the arm torque; at or above Threshold B it cannot arm. Once armed at closed throttle, opening the throttle starts the tip-in torque ramp. Stock both 250 rpm, so there is no in-between band. This is Threshold A. Effect: raise = tip-in management still arms with more converter slip Evidence: ledger:E0356, ledger:E0845, ledger:E0846, ledger:E0848</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x20F44" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>-4096.000000</min>
    <max>4095.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x22A" flags="0x0">
    <title>Tip-In Torque Limit - Floor Outside Lash Phase</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after a closed-throttle tip-in the torque limit ramps up (default, lash and fast steps). The fast step starts once the limit passes its target, once gearbox slip is large, or once the driveline has shunted forward, swung back and started climbing again. Outside the lash phase the tip-in torque limit is raised to at least this value. The torque reduction requested is engine torque minus the limit, so at the stock 8191 Nm the stock H3 only reduces torque during the lash phase. Lower it to also limit torque during the default and fast phases. Effect: tip-in torque management Evidence: ledger:E0845, ledger:E0846</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x20F3C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x22B" flags="0x0">
    <title>Tip-In Torque Limit - Start Floor, Alternate (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Start floor of the tip-in limit used only when a transmission-type calibration flag is 0; it is 1 on the stock H3, which uses the start floor table instead. Stock 8191 Nm. Effect: tip-in torque management Evidence: ledger:E0845, ledger:E0846</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x20F40" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x22C" flags="0x0">
    <title>Tip-In Torque Ramp - Lash Step Hold Rate</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after a closed-throttle tip-in the torque limit ramps up by a step each update. The step is the default step normally, the slow lash step while the driveline is taking up slack (gearbox slip above about 10 rpm, or engine speed rising faster than the slip-based limit), and the fast step once the limit has passed its target. Once the lash step is in use it stays in use while engine speed is still changing faster than this per update. Stock -20 rpm per update. Effect: raise = the lash step is dropped sooner Evidence: ledger:E0395, ledger:E0845</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x20F42" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm per update</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x22D" flags="0x0">
    <title>Tip-In Torque Ramp - Fast Step Input Speed Trigger</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after a closed-throttle tip-in the torque limit ramps up (default, lash and fast steps). The fast step starts once the limit passes its target, once gearbox slip is large, or once the driveline has shunted forward, swung back and started climbing again. After a shunt and swing back, the fast step starts once input speed rises faster than this per update. Stock 10 rpm per update. Effect: tip-in torque management Evidence: ledger:E0845, ledger:E0846</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x20F4A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm per update</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x22E" flags="0x30">
    <title>Trans Range Switch - Code to Range Map</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Maps the 4-input range switch code to the range the PCM uses (15 = invalid). Stock: codes 3 / 10 / 15 / 6 / 5 / 12 / 9 give ranges 0 / 1 / 2 / 3 / 5 / 6 / 7. A wrong entry makes the PCM misread the selector (E0396). Effect: which range the PCM believes is selected Evidence: ledger:E0396</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>16</indexcount>
      <units>switch code (4 inputs)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3E790" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>range code</units>
      <decimalpl>0</decimalpl>
      <min>-32768.000000</min>
      <max>32767.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x22F" flags="0x30">
    <title>Trans Range Switch - Debounce Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long a new range must read steadily before it is accepted, by new range (row) and previous decoded range (column). Stock 25 ms everywhere (E0396). Effect: range change acceptance delay Evidence: ledger:E0396</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>16</indexcount>
      <units>previous range</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>16</indexcount>
      <units>new range</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3E7F6" mmedelementsizebits="8" mmedrowcount="16" mmedcolcount="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>1.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x230" flags="0x30">
    <title>LTFT Cell - Learn Enable (learn internal)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Per fuel-trim cell: 1 = the cell may learn, 0 = it does not. Stock 1 except a few spare cells. A wrong edit silently stops trims learning in that cell. Effect: learn internal: edit with care Evidence: ledger:E0397</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>39</indexcount>
      <units>LTFT cell index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <LABEL index="31" value="31" />
      <LABEL index="32" value="32" />
      <LABEL index="33" value="33" />
      <LABEL index="34" value="34" />
      <LABEL index="35" value="35" />
      <LABEL index="36" value="36" />
      <LABEL index="37" value="37" />
      <LABEL index="38" value="38" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3577A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="39" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>flag</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x231" flags="0x30">
    <title>Fuel Trim Monitor - Cell Ready Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Per fuel trim cell: monitor passes counted in the cell before the monitor takes its value; until then the tracked value stays at 1.0. Stock 180 in every cell. The fuel trim monitor (P0171 system too lean, P0172 system too rich) tracks a per-bank value built from the long-term fuel trim code&#x27;s per-bank value, which is centred on 1.0. These per-cell settings shape it: a diagnostic, not a fueling value. Effect: raise = the monitor waits longer in a cell before using it Evidence: ledger:E0310, ledger:E0397, ledger:E0905</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>39</indexcount>
      <units>LTFT cell index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <LABEL index="31" value="31" />
      <LABEL index="32" value="32" />
      <LABEL index="33" value="33" />
      <LABEL index="34" value="34" />
      <LABEL index="35" value="35" />
      <LABEL index="36" value="36" />
      <LABEL index="37" value="37" />
      <LABEL index="38" value="38" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x357CA" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="39" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>count</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x232" flags="0x30">
    <title>Fuel Trim Monitor - Cell Weight Set Index</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Per fuel trim cell: which entry (21 to 38) of the weight arrays below the cell uses. The fuel trim monitor (P0171 system too lean, P0172 system too rich) tracks a per-bank value built from the long-term fuel trim code&#x27;s per-bank value, which is centred on 1.0. These per-cell settings shape it: a diagnostic, not a fueling value. Effect: changes which weights the cell uses Evidence: ledger:E0310, ledger:E0397, ledger:E0905</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>39</indexcount>
      <units>LTFT cell index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <LABEL index="31" value="31" />
      <LABEL index="32" value="32" />
      <LABEL index="33" value="33" />
      <LABEL index="34" value="34" />
      <LABEL index="35" value="35" />
      <LABEL index="36" value="36" />
      <LABEL index="37" value="37" />
      <LABEL index="38" value="38" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3586A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="39" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>index</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x233" flags="0x30">
    <title>Fuel Trim Monitor - Cell Weight, Above 1.0</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Per weight set: when the input is above 1.0, the monitor uses 1.0 plus the excess times this weight. Stock 1.0 everywhere (the full excess). The fuel trim monitor (P0171 system too lean, P0172 system too rich) tracks a per-bank value built from the long-term fuel trim code&#x27;s per-bank value, which is centred on 1.0. These per-cell settings shape it: a diagnostic, not a fueling value. Effect: lower = the monitor sees less of a lean correction Evidence: ledger:E0310, ledger:E0397, ledger:E0905</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>39</indexcount>
      <units>LTFT cell index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <LABEL index="31" value="31" />
      <LABEL index="32" value="32" />
      <LABEL index="33" value="33" />
      <LABEL index="34" value="34" />
      <LABEL index="35" value="35" />
      <LABEL index="36" value="36" />
      <LABEL index="37" value="37" />
      <LABEL index="38" value="38" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x358BA" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="39" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x234" flags="0x30">
    <title>Fuel Trim Monitor - Cell Weight, Above 1.0, Bank 2 (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Bank 2 copy of the weight above. The H3 has one bank, so this is never used. Stock 1.0. The fuel trim monitor (P0171 system too lean, P0172 system too rich) tracks a per-bank value built from the long-term fuel trim code&#x27;s per-bank value, which is centred on 1.0. These per-cell settings shape it: a diagnostic, not a fueling value. Effect: no effect on stock (inactive) Evidence: ledger:E0310, ledger:E0397, ledger:E0905</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>39</indexcount>
      <units>LTFT cell index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <LABEL index="31" value="31" />
      <LABEL index="32" value="32" />
      <LABEL index="33" value="33" />
      <LABEL index="34" value="34" />
      <LABEL index="35" value="35" />
      <LABEL index="36" value="36" />
      <LABEL index="37" value="37" />
      <LABEL index="38" value="38" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3590A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="39" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x235" flags="0x30">
    <title>Fuel Trim Monitor - Cell Weight, Below 1.0</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Per weight set: when the input is below 1.0, the monitor uses 1.0 minus the shortfall times this weight. Stock 1.0 everywhere (the full shortfall). The fuel trim monitor (P0171 system too lean, P0172 system too rich) tracks a per-bank value built from the long-term fuel trim code&#x27;s per-bank value, which is centred on 1.0. These per-cell settings shape it: a diagnostic, not a fueling value. Effect: lower = the monitor sees less of a rich correction Evidence: ledger:E0310, ledger:E0397, ledger:E0905</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>39</indexcount>
      <units>LTFT cell index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <LABEL index="31" value="31" />
      <LABEL index="32" value="32" />
      <LABEL index="33" value="33" />
      <LABEL index="34" value="34" />
      <LABEL index="35" value="35" />
      <LABEL index="36" value="36" />
      <LABEL index="37" value="37" />
      <LABEL index="38" value="38" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3595A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="39" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x236" flags="0x30">
    <title>Fuel Trim Monitor - Cell Weight, Below 1.0, Bank 2 (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Bank 2 copy of the weight below. The H3 has one bank, so this is never used. Stock 1.0. The fuel trim monitor (P0171 system too lean, P0172 system too rich) tracks a per-bank value built from the long-term fuel trim code&#x27;s per-bank value, which is centred on 1.0. These per-cell settings shape it: a diagnostic, not a fueling value. Effect: no effect on stock (inactive) Evidence: ledger:E0310, ledger:E0397, ledger:E0905</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>39</indexcount>
      <units>LTFT cell index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <LABEL index="31" value="31" />
      <LABEL index="32" value="32" />
      <LABEL index="33" value="33" />
      <LABEL index="34" value="34" />
      <LABEL index="35" value="35" />
      <LABEL index="36" value="36" />
      <LABEL index="37" value="37" />
      <LABEL index="38" value="38" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x359AA" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="39" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x237" flags="0x30">
    <title>Baro Estimate - Expected MAP Drop vs Throttle x RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How far MAP is expected to sit below baro; the PCM estimates baro as MAP + this x the baro factor and updates baro when the estimate is steady above the throttle threshold. Stock 0.5 to 7.7 kPa at wide throttle, up to 59 kPa at small throttle and high rpm. Effect: raise = higher baro estimate from the same MAP Evidence: ledger:E0398, ledger:E0716</description>
    <CATEGORYMEM index="0" category="10" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>% throttle area</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="12.5" />
      <LABEL index="2" value="25" />
      <LABEL index="3" value="37.5" />
      <LABEL index="4" value="50" />
      <LABEL index="5" value="62.5" />
      <LABEL index="6" value="75" />
      <LABEL index="7" value="87.5" />
      <LABEL index="8" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x211B0" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>kPa</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>255.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x238" flags="0x30">
    <title>Baro Estimate - Drop Factor vs Baro</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplies the expected MAP drop by baro: stock 0.65 at 65 kPa to 1.0 at 105 kPa (E0398). Effect: raise = larger drop allowance Evidence: ledger:E0398</description>
    <CATEGORYMEM index="0" category="10" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>kPa (baro)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="65" />
      <LABEL index="1" value="70" />
      <LABEL index="2" value="75" />
      <LABEL index="3" value="80" />
      <LABEL index="4" value="85" />
      <LABEL index="5" value="90" />
      <LABEL index="6" value="95" />
      <LABEL index="7" value="100" />
      <LABEL index="8" value="105" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x212E4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x239" flags="0x30">
    <title>Baro Estimate - Minimum Throttle for Update vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Throttle area, by rpm, above which a steady MAP-based estimate may update the PCM&#x27;s barometric pressure. Stock 2 % at low rpm rising to 6.5 % from 5632 rpm. Effect: raise = baro updates only at wider throttle Evidence: ledger:E0398, ledger:E0689, ledger:E0716, ledger:E0733</description>
    <CATEGORYMEM index="0" category="10" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <LABEL index="9" value="4608" />
      <LABEL index="10" value="5120" />
      <LABEL index="11" value="5632" />
      <LABEL index="12" value="6144" />
      <LABEL index="13" value="6656" />
      <LABEL index="14" value="7168" />
      <LABEL index="15" value="7680" />
      <LABEL index="16" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x212F8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% throttle area</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.000000</max>
      <MATH equation="X/327.675"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x23A" flags="0x30">
    <title>Cam Phasing (region) - Base Target by Region</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Region-based exhaust cam target for each driving region (rpm band x throttle band, plus two closed-throttle regions), in desired-cam degrees. Stock 12 / 16 / 22 deg in the open regions, 7 and 10 deg at closed throttle. Multiplied by the baro, gear, coolant and intake temperature factors. The code path is traced; a drive log has not yet confirmed it in normal driving. Effect: changes exhaust cam phasing Evidence: ledger:E0399, ledger:E0744</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>cam phasing region</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="below 1350 rpm, 0.5-1.8 %" />
      <LABEL index="1" value="1350-1750 rpm, 0.5-1.3 %" />
      <LABEL index="2" value="1750-2150 rpm, 0.5-1.2 %" />
      <LABEL index="3" value="above 2150 rpm, 0.5-1.3 %" />
      <LABEL index="4" value="below 1350 rpm, 1.8-2.6 %" />
      <LABEL index="5" value="1350-1750 rpm, 1.3-3.5 %" />
      <LABEL index="6" value="1750-2150 rpm, 1.2-4 %" />
      <LABEL index="7" value="above 2150 rpm, 1.3-5 %" />
      <LABEL index="8" value="below 1350 rpm, 2.6-5 %" />
      <LABEL index="9" value="1350-1750 rpm, 3.5-5 %" />
      <LABEL index="10" value="1750-2150 rpm, 4-6.2 %" />
      <LABEL index="11" value="above 2150 rpm, 5-8.1 %" />
      <LABEL index="12" value="below 1350 rpm, 5-up %" />
      <LABEL index="13" value="1350-1750 rpm, 5-up %" />
      <LABEL index="14" value="1750-2150 rpm, 6.2-up %" />
      <LABEL index="15" value="above 2150 rpm, 8.1-up %" />
      <LABEL index="16" value="closed, below 2800 rpm" />
      <LABEL index="17" value="closed, above 2800 rpm" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22B2A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x23B" flags="0x30">
    <title>Cam Phasing (region) - Baro Factor by Region</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Factor on the region-based exhaust cam target by barometric band (rows: below 80 kPa, above 90 kPa, between) and driving region. Stock 0.45 to 1.0 below 80 kPa, 1.0 otherwise. The code path is traced; a drive log has not yet confirmed it in normal driving. Effect: changes cam phasing at altitude Evidence: ledger:E0399, ledger:E0744</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>cam phasing region</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="below 1350 rpm, 0.5-1.8 %" />
      <LABEL index="1" value="1350-1750 rpm, 0.5-1.3 %" />
      <LABEL index="2" value="1750-2150 rpm, 0.5-1.2 %" />
      <LABEL index="3" value="above 2150 rpm, 0.5-1.3 %" />
      <LABEL index="4" value="below 1350 rpm, 1.8-2.6 %" />
      <LABEL index="5" value="1350-1750 rpm, 1.3-3.5 %" />
      <LABEL index="6" value="1750-2150 rpm, 1.2-4 %" />
      <LABEL index="7" value="above 2150 rpm, 1.3-5 %" />
      <LABEL index="8" value="below 1350 rpm, 2.6-5 %" />
      <LABEL index="9" value="1350-1750 rpm, 3.5-5 %" />
      <LABEL index="10" value="1750-2150 rpm, 4-6.2 %" />
      <LABEL index="11" value="above 2150 rpm, 5-8.1 %" />
      <LABEL index="12" value="below 1350 rpm, 5-up %" />
      <LABEL index="13" value="1350-1750 rpm, 5-up %" />
      <LABEL index="14" value="1750-2150 rpm, 6.2-up %" />
      <LABEL index="15" value="above 2150 rpm, 8.1-up %" />
      <LABEL index="16" value="closed, below 2800 rpm" />
      <LABEL index="17" value="closed, above 2800 rpm" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>baro band</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="&lt; 80 kPa" />
      <LABEL index="1" value="&gt; 90 kPa" />
      <LABEL index="2" value="80-90 kPa" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22B52" mmedelementsizebits="8" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>1.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x23C" flags="0x30">
    <title>Cam Phasing (region) - Gear Factor by Region</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Factor on the region-based exhaust cam target by transmission state (rows 0 to 4) and driving region. Stock 0.05 to 1.0 in 1st gear, 1.0 in the other gears. The code path is traced; a drive log has not yet confirmed it in normal driving. Effect: changes cam phasing by gear Evidence: ledger:E0399, ledger:E0744</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>cam phasing region</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="below 1350 rpm, 0.5-1.8 %" />
      <LABEL index="1" value="1350-1750 rpm, 0.5-1.3 %" />
      <LABEL index="2" value="1750-2150 rpm, 0.5-1.2 %" />
      <LABEL index="3" value="above 2150 rpm, 0.5-1.3 %" />
      <LABEL index="4" value="below 1350 rpm, 1.8-2.6 %" />
      <LABEL index="5" value="1350-1750 rpm, 1.3-3.5 %" />
      <LABEL index="6" value="1750-2150 rpm, 1.2-4 %" />
      <LABEL index="7" value="above 2150 rpm, 1.3-5 %" />
      <LABEL index="8" value="below 1350 rpm, 2.6-5 %" />
      <LABEL index="9" value="1350-1750 rpm, 3.5-5 %" />
      <LABEL index="10" value="1750-2150 rpm, 4-6.2 %" />
      <LABEL index="11" value="above 2150 rpm, 5-8.1 %" />
      <LABEL index="12" value="below 1350 rpm, 5-up %" />
      <LABEL index="13" value="1350-1750 rpm, 5-up %" />
      <LABEL index="14" value="1750-2150 rpm, 6.2-up %" />
      <LABEL index="15" value="above 2150 rpm, 8.1-up %" />
      <LABEL index="16" value="closed, below 2800 rpm" />
      <LABEL index="17" value="closed, above 2800 rpm" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>5</indexcount>
      <units>trans state</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="state 0" />
      <LABEL index="1" value="state 1" />
      <LABEL index="2" value="state 2" />
      <LABEL index="3" value="state 3" />
      <LABEL index="4" value="state 4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22B88" mmedelementsizebits="8" mmedrowcount="5" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>1.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x23D" flags="0x30">
    <title>Cam Phasing - IAT Factor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Region-based cam phasing (probably active in normal driving; awaiting a drive log): factor on the cam target by intake air temperature. Stock 1.0 up to 88 C, 0.75 above 104 C. Effect: changes cam phasing when hot Evidence: ledger:E0399</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22C1C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x23E" flags="0x0">
    <title>Cam Phasing (region) - Region Change Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Region-based exhaust cam phasing: how long a new driving region must hold before the cam target follows it. Stock 0.15 s. The code path is traced; a drive log has not yet confirmed it in normal driving. Effect: changes when cam phasing acts Evidence: ledger:E0399</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22B28" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x23F" flags="0x0">
    <title>Cam Phasing (region) - Baro Low Band Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Region-based exhaust cam phasing uses its high-altitude factor row below this barometric pressure. Stock 80 kPa. The code path is traced; a drive log has not yet confirmed it in normal driving. Effect: changes when cam phasing acts Evidence: ledger:E0399</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22B4E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x240" flags="0x0">
    <title>Cam Phasing (region) - Baro High Band Above</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Region-based exhaust cam phasing uses its sea-level factor row above this barometric pressure; between the two bands it uses the middle row. Stock 90 kPa. The code path is traced; a drive log has not yet confirmed it in normal driving. Effect: changes when cam phasing acts Evidence: ledger:E0399</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22B50" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x241" flags="0x0">
    <title>Cam Phasing - Enable Off Below MAP (pair A)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Region-based exhaust cam phasing is disabled again once MAP falls below this value (pair A; the pair is chosen by barometric pressure). Stock 10 kPa. The code path is traced; a drive log has not yet confirmed it in normal driving. Effect: changes when cam phasing acts Evidence: ledger:E0399</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x229B8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x242" flags="0x0">
    <title>Cam Phasing - Enable On Above MAP (pair A)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Region-based exhaust cam phasing is enabled once MAP rises above this value (pair A; the pair is chosen by barometric pressure). Stock 34 kPa. The code path is traced; a drive log has not yet confirmed it in normal driving. Effect: changes when cam phasing acts Evidence: ledger:E0399</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x229BA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x243" flags="0x0">
    <title>Cam Phasing - Enable Off Below MAP (pair B)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Region-based exhaust cam phasing is disabled again once MAP falls below this value (pair B; the pair is chosen by barometric pressure). Stock 10 kPa. The code path is traced; a drive log has not yet confirmed it in normal driving. Effect: changes when cam phasing acts Evidence: ledger:E0399</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x229BC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x244" flags="0x0">
    <title>Cam Phasing - Enable On Above MAP (pair B)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Region-based exhaust cam phasing is enabled once MAP rises above this value (pair B; the pair is chosen by barometric pressure). Stock 34 kPa. The code path is traced; a drive log has not yet confirmed it in normal driving. Effect: changes when cam phasing acts Evidence: ledger:E0399</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x229BE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x245" flags="0x0">
    <title>Cam Phasing (region) - Closed Throttle Ends Above</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once in the closed-throttle regions, region-based exhaust cam phasing leaves them when throttle reaches this value. Stock 0.30 %. The code path is traced; a drive log has not yet confirmed it in normal driving. Effect: changes when cam phasing acts Evidence: ledger:E0399</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22CD6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x246" flags="0x0">
    <title>Cam Phasing (region) - Closed Throttle Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Region-based exhaust cam phasing treats the throttle as closed (the closed-throttle regions) once throttle falls below this value. Stock 0.50 %. The code path is traced; a drive log has not yet confirmed it in normal driving. Effect: changes when cam phasing acts Evidence: ledger:E0399</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22CD8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x247" flags="0x0">
    <title>Cam Phasing (region) - Closed-Throttle RPM Split</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Region-based exhaust cam phasing splits closed throttle into a low-rpm and a high-rpm region at this engine speed. Stock 2800 rpm. The code path is traced; a drive log has not yet confirmed it in normal driving. Effect: changes when cam phasing acts Evidence: ledger:E0399</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22CDA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x248" flags="0x0">
    <title>Cam Target Spark-Limit Reduction - Floor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam target reduction while spark is limited: the load-based cam target is multiplied by a factor (1.0 = no change). While spark has been held below its reference spark for half a second, the factor drops by the step down every down period, never below the floor; otherwise it climbs back by the step up every up period. Stock floor is 1.0, so on the stock calibration the factor stays at 1.0. Stock 1.0 (inert). Effect: lower = lets the cam target be reduced while spark is limited Evidence: ledger:E0720, ledger:E0875</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22CB2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>x</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x249" flags="0x0">
    <title>Load-Based Cam Phasing - Pedal Demand Hysteresis</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Load-based cam phasing: above this pedal demand (percent of throttle area the driver is asking for) the cam is phased by the load-based cam target instead of the base schedule. Once active, it stays active until pedal demand drops this far below the threshold. Stock 3.0 %. Effect: raise = holds load-based cam phasing on longer as the pedal comes back Evidence: ledger:E0358, ledger:E0769, ledger:E0872</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22D06" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% (pedal area demand)</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.675"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x24A" flags="0x0">
    <title>Cam and Volumetric Efficiency Deficit Blend Gain</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The gain used to blend a computed cam-versus-volumetric-efficiency deficit value into the values the engine actually uses, applied to two related running values that are filtered this way each pass. Stock is a gain of 0.5. Effect: Raising it blends the newly computed deficit into use faster each update; lowering it blends it in more slowly, giving a smoother but slower-responding result. Evidence: ledger:E0772, ledger:E0805</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BF92" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>gain (Q16, unitless)</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x24B" flags="0x0">
    <title>P0621 Fail - Time, Engine Stopped</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0621 (generator lamp control circuit) key-on, engine-stopped check: P0621 sets once the check has run with engine speed at 0 and its condition met for this long. Stock 5 s. Effect: raise = the engine-stopped check takes longer to set P0621 Evidence: ledger:E0959</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x202EE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x24C" flags="0x30">
    <title>Misfire - Catalyst Failed Windows Required</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: number of windows over the catalyst-damage limit, among the recent ones, needed for the first catalyst-damaging exceedance of a trip. Chosen by engine speed and load (nearest point; the smaller of the values at the start and end of the window). Stock 2 at low speed and load, 1 elsewhere. Keep below 256. Effect: raise = more failed windows are needed before a catalyst-damaging misfire is declared Evidence: ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>11</indexcount>
      <units>% load</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="10" />
      <LABEL index="2" value="20" />
      <LABEL index="3" value="30" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="50" />
      <LABEL index="6" value="60" />
      <LABEL index="7" value="70" />
      <LABEL index="8" value="80" />
      <LABEL index="9" value="90" />
      <LABEL index="10" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>8</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1000" />
      <LABEL index="2" value="2000" />
      <LABEL index="3" value="3000" />
      <LABEL index="4" value="4000" />
      <LABEL index="5" value="5000" />
      <LABEL index="6" value="6000" />
      <LABEL index="7" value="7000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x369BA" mmedelementsizebits="16" mmedrowcount="8" mmedcolcount="11" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>windows</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x24D" flags="0x0">
    <title>Converter Heat - Min Trans Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Counting only starts above this trans temp (stock 99.75 C). Part of the converter-heat hot-mode trigger: while the converter slips hard at speed with hot fluid, a heat count builds; past the limit the transmission goes into hot mode (E0432). Effect: when hot mode is entered Evidence: ledger:E0432</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DD88" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x24E" flags="0x0">
    <title>Converter Heat - Min Vehicle Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Counting only starts above this trans-side speed (stock 15 km/h). Part of the converter-heat hot-mode trigger: while the converter slips hard at speed with hot fluid, a heat count builds; past the limit the transmission goes into hot mode (E0432). Effect: when hot mode is entered Evidence: ledger:E0432</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DD82" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x24F" flags="0x0">
    <title>Converter Heat - Max Speed Ratio (slip)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Counting runs while turbine / engine speed ratio is at or below this (stock 0.477). Part of the converter-heat hot-mode trigger: while the converter slips hard at speed with hot fluid, a heat count builds; past the limit the transmission goes into hot mode (E0432). Effect: when hot mode is entered Evidence: ledger:E0432</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DD80" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x250" flags="0x0">
    <title>Converter Heat - Cancel Speed Ratio</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A pending count is cancelled once the ratio reaches this (stock 0.996, converter coupled). Part of the converter-heat hot-mode trigger: while the converter slips hard at speed with hot fluid, a heat count builds; past the limit the transmission goes into hot mode (E0432). Effect: when hot mode is entered Evidence: ledger:E0432</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DD84" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x251" flags="0x0">
    <title>Converter Heat - Cancel Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time after which a pending count with the ratio recovered is dropped (stock 15 s). Part of the converter-heat hot-mode trigger: while the converter slips hard at speed with hot fluid, a heat count builds; past the limit the transmission goes into hot mode (E0432). Effect: when hot mode is entered Evidence: ledger:E0432</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DCEC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x252" flags="0x30">
    <title>Closed Loop O2 Switch Delay - Base, O2 Lean</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Closed-loop O2 switch delay: after the front O2 signal crosses its switch point, closed loop waits this long before it acts on the change. The delay is this base value, by airflow, times a factor that shortens it when the O2 signal is far past the switch point. The first column is used only in closed-throttle idle; off idle the airflow column starts at the second. This curve applies while the O2 reads lean. Stock 0.5 s at idle, 0.25 s at 4.8 g/s, falling to 0.05 s from 29.5 g/s. Effect: raise = closed loop waits longer after each O2 switch (slower, larger trim swings) Evidence: ledger:E0433, ledger:E0901</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>10</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="4.8" />
      <LABEL index="3" value="8" />
      <LABEL index="4" value="13.2" />
      <LABEL index="5" value="21.8" />
      <LABEL index="6" value="29.5" />
      <LABEL index="7" value="40.3" />
      <LABEL index="8" value="51.8" />
      <LABEL index="9" value="76" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2547C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="10" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x253" flags="0x30">
    <title>Closed Loop O2 Switch Delay - Base, O2 Rich</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Closed-loop O2 switch delay: after the front O2 signal crosses its switch point, closed loop waits this long before it acts on the change. The delay is this base value, by airflow, times a factor that shortens it when the O2 signal is far past the switch point. The first column is used only in closed-throttle idle; off idle the airflow column starts at the second. This curve applies while the O2 reads rich. Stock 0.5 s at idle, 0.25 s at 4.8 g/s, falling to 0.05 s from 29.5 g/s. Effect: raise = closed loop waits longer after each O2 switch (slower, larger trim swings) Evidence: ledger:E0433, ledger:E0901</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>10</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="4.8" />
      <LABEL index="3" value="8" />
      <LABEL index="4" value="13.2" />
      <LABEL index="5" value="21.8" />
      <LABEL index="6" value="29.5" />
      <LABEL index="7" value="40.3" />
      <LABEL index="8" value="51.8" />
      <LABEL index="9" value="76" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x25490" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="10" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x254" flags="0x30">
    <title>Closed Loop Proportional Gain - O2 Lean</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Closed-loop fuel (front O2): short-term trim steps by a fixed jump each time the O2 switch delay runs out, leaner when the O2 reads rich and richer when it reads lean, and adds a proportional offset of the same sign that grows with airflow and with how far the O2 is past its switch point. This curve is the proportional size by airflow while the O2 reads lean (at factor 1.0). Stock 1.3 % at idle, 6.3 % at 4.8 g/s, 7.0 % from 8 to 29.5 g/s, 5.7 % at 40 g/s. Effect: raise = stronger proportional correction (faster, but more trim ripple) Evidence: ledger:E0433, ledger:E0903, ledger:E0936</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>10</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="4.8" />
      <LABEL index="3" value="8" />
      <LABEL index="4" value="13.2" />
      <LABEL index="5" value="21.8" />
      <LABEL index="6" value="29.5" />
      <LABEL index="7" value="40.3" />
      <LABEL index="8" value="51.8" />
      <LABEL index="9" value="76" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x25544" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="10" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>%</units>
      <decimalpl>3</decimalpl>
      <min>-200.000000</min>
      <max>199.993896</max>
      <MATH equation="X/163.84"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x255" flags="0x30">
    <title>Closed Loop Proportional Gain - O2 Rich</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Closed-loop fuel (front O2): short-term trim steps by a fixed jump each time the O2 switch delay runs out, leaner when the O2 reads rich and richer when it reads lean, and adds a proportional offset of the same sign that grows with airflow and with how far the O2 is past its switch point. This curve is the proportional size by airflow while the O2 reads rich (at factor 1.0). Stock equal to the lean curve. Effect: raise = stronger proportional correction (faster, but more trim ripple) Evidence: ledger:E0433, ledger:E0903</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>10</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="4.8" />
      <LABEL index="3" value="8" />
      <LABEL index="4" value="13.2" />
      <LABEL index="5" value="21.8" />
      <LABEL index="6" value="29.5" />
      <LABEL index="7" value="40.3" />
      <LABEL index="8" value="51.8" />
      <LABEL index="9" value="76" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x25558" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="10" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>399.993896</max>
      <MATH equation="X/163.84"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x256" flags="0x30">
    <title>Closed Loop O2 Switch Delay - Factor, O2 Lean</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Closed-loop fuel (front O2): short-term trim steps by a fixed jump each time the O2 switch delay runs out, leaner when the O2 reads rich and richer when it reads lean, and adds a proportional offset of the same sign that grows with airflow and with how far the O2 is past its switch point. This curve scales the switch delay (batch 56) by how far the O2 is past its switch point, while it reads lean. Stock 1.0 up to 160 mV, 0.5 from 352 mV. Effect: raise = longer delay at that distance Evidence: ledger:E0433, ledger:E0903</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x25582" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x257" flags="0x30">
    <title>Closed Loop O2 Switch Delay - Factor, O2 Rich</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Closed-loop fuel (front O2): short-term trim steps by a fixed jump each time the O2 switch delay runs out, leaner when the O2 reads rich and richer when it reads lean, and adds a proportional offset of the same sign that grows with airflow and with how far the O2 is past its switch point. This curve scales the switch delay while the O2 reads rich. Stock equal to the lean curve. Effect: raise = longer delay at that distance Evidence: ledger:E0433, ledger:E0903</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x255A6" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x258" flags="0x30">
    <title>Closed Loop Proportional Factor - O2 Lean</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Closed-loop fuel (front O2): short-term trim steps by a fixed jump each time the O2 switch delay runs out, leaner when the O2 reads rich and richer when it reads lean, and adds a proportional offset of the same sign that grows with airflow and with how far the O2 is past its switch point. This curve scales the proportional term off idle by how far the O2 is past its switch point, while it reads lean. Stock 0.4 up to 192 mV rising to 0.8 from 352 mV. Effect: raise = stronger proportional correction at that distance Evidence: ledger:E0433, ledger:E0903, ledger:E0936</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x255CA" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>-2.000000</min>
      <max>1.999939</max>
      <MATH equation="X/16384"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x259" flags="0x30">
    <title>Closed Loop Proportional Factor - O2 Rich</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Closed-loop fuel (front O2): short-term trim steps by a fixed jump each time the O2 switch delay runs out, leaner when the O2 reads rich and richer when it reads lean, and adds a proportional offset of the same sign that grows with airflow and with how far the O2 is past its switch point. This curve scales the proportional term off idle while the O2 reads rich. Stock equal to the lean curve. Effect: raise = stronger proportional correction at that distance Evidence: ledger:E0433, ledger:E0903</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x255EE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>3.999939</max>
      <MATH equation="X/16384"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x25A" flags="0x30">
    <title>Closed Loop Proportional Factor - Idle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Closed-loop fuel (front O2): short-term trim steps by a fixed jump each time the O2 switch delay runs out, leaner when the O2 reads rich and richer when it reads lean, and adds a proportional offset of the same sign that grows with airflow and with how far the O2 is past its switch point. This curve scales the proportional term in closed-throttle idle (both O2 states). Stock 1.0 up to 192 mV rising to 1.6 from 384 mV. Effect: raise = stronger proportional correction at idle Evidence: ledger:E0433, ledger:E0903, ledger:E0936</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x25612" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>-2.000000</min>
      <max>1.999939</max>
      <MATH equation="X/16384"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x25B" flags="0x30">
    <title>Closed Loop Slow-Sensor Switch Delay - Base, O2 Lean (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Inactive on the stock calibration: this is the lean-side row of an alternate closed-loop table, and the map that would select the lean side is all zero. Closed-loop fuel, slow-sensor tables: when the front O2 is measured slow going rich-to-lean but fast going lean-to-rich, closed loop uses this alternate set while the O2 reads rich (see Closed Loop Alternate Tables Map). Effect: no effect on the stock calibration Evidence: ledger:E0433, ledger:E0904</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>10</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="4.8" />
      <LABEL index="3" value="8" />
      <LABEL index="4" value="13.2" />
      <LABEL index="5" value="21.8" />
      <LABEL index="6" value="29.5" />
      <LABEL index="7" value="40.3" />
      <LABEL index="8" value="51.8" />
      <LABEL index="9" value="76" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x25746" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="10" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x25C" flags="0x30">
    <title>Closed Loop Slow-Sensor Switch Delay - Base, O2 Rich</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Closed-loop fuel, slow-sensor tables: when the front O2 is measured slow going rich-to-lean but fast going lean-to-rich, closed loop uses this alternate set while the O2 reads rich (see Closed Loop Alternate Tables Map). This curve is the switch delay base by airflow. Stock twice the normal delay: 1.5 s at idle, 0.5 s at 4.8 g/s, 0.1 s from 29.5 g/s. Effect: raise = closed loop waits longer after each O2 switch Evidence: ledger:E0433, ledger:E0904</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>10</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="4.8" />
      <LABEL index="3" value="8" />
      <LABEL index="4" value="13.2" />
      <LABEL index="5" value="21.8" />
      <LABEL index="6" value="29.5" />
      <LABEL index="7" value="40.3" />
      <LABEL index="8" value="51.8" />
      <LABEL index="9" value="76" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2575A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="10" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x25D" flags="0x30">
    <title>Closed Loop Slow-Sensor Switch Delay - Factor, O2 Lean (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Inactive on the stock calibration: this is the lean-side row of an alternate closed-loop table, and the map that would select the lean side is all zero. Closed-loop fuel, slow-sensor tables: when the front O2 is measured slow going rich-to-lean but fast going lean-to-rich, closed loop uses this alternate set while the O2 reads rich (see Closed Loop Alternate Tables Map). Effect: no effect on the stock calibration Evidence: ledger:E0433, ledger:E0904</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x25772" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x25E" flags="0x30">
    <title>Closed Loop Slow-Sensor Switch Delay - Factor, O2 Rich</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Closed-loop fuel, slow-sensor tables: when the front O2 is measured slow going rich-to-lean but fast going lean-to-rich, closed loop uses this alternate set while the O2 reads rich (see Closed Loop Alternate Tables Map). This curve scales the switch delay by how far the O2 is past its switch point. Stock 1.0 up to 160 mV, 0.5 from 352 mV. Effect: raise = longer delay at that distance Evidence: ledger:E0433, ledger:E0904</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x25796" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x25F" flags="0x30">
    <title>Closed Loop Slow-Sensor Proportional Factor, O2 Lean (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Inactive on the stock calibration: this is the lean-side row of an alternate closed-loop table, and the map that would select the lean side is all zero. Closed-loop fuel, slow-sensor tables: when the front O2 is measured slow going rich-to-lean but fast going lean-to-rich, closed loop uses this alternate set while the O2 reads rich (see Closed Loop Alternate Tables Map). Effect: no effect on the stock calibration Evidence: ledger:E0433, ledger:E0904, ledger:E0936</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x257C2" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>-2.000000</min>
      <max>1.999939</max>
      <MATH equation="X/16384"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x260" flags="0x30">
    <title>Closed Loop Slow-Sensor Proportional Factor, O2 Rich</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Closed-loop fuel, slow-sensor tables: when the front O2 is measured slow going rich-to-lean but fast going lean-to-rich, closed loop uses this alternate set while the O2 reads rich (see Closed Loop Alternate Tables Map). This curve scales the proportional term off idle by how far the O2 is past its switch point. Stock 0.4 rising to 0.8 from 352 mV. Effect: raise = stronger proportional correction at that distance Evidence: ledger:E0433, ledger:E0904</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x257E6" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>3.999939</max>
      <MATH equation="X/16384"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x261" flags="0x30">
    <title>Closed Loop Slow-Sensor Proportional Gain, O2 Lean (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Inactive on the stock calibration: this is the lean-side row of an alternate closed-loop table, and the map that would select the lean side is all zero. Closed-loop fuel, slow-sensor tables: when the front O2 is measured slow going rich-to-lean but fast going lean-to-rich, closed loop uses this alternate set while the O2 reads rich (see Closed Loop Alternate Tables Map). Effect: no effect on the stock calibration Evidence: ledger:E0433, ledger:E0904, ledger:E0936</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>10</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="4.8" />
      <LABEL index="3" value="8" />
      <LABEL index="4" value="13.2" />
      <LABEL index="5" value="21.8" />
      <LABEL index="6" value="29.5" />
      <LABEL index="7" value="40.3" />
      <LABEL index="8" value="51.8" />
      <LABEL index="9" value="76" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2580A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="10" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>%</units>
      <decimalpl>3</decimalpl>
      <min>-200.000000</min>
      <max>199.993896</max>
      <MATH equation="X/163.84"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x262" flags="0x30">
    <title>Closed Loop Slow-Sensor Proportional Gain, O2 Rich</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Closed-loop fuel, slow-sensor tables: when the front O2 is measured slow going rich-to-lean but fast going lean-to-rich, closed loop uses this alternate set while the O2 reads rich (see Closed Loop Alternate Tables Map). This curve is the proportional size by airflow (at factor 1.0). Stock as the normal gain but 8.7 % from 29.5 g/s. Effect: raise = stronger proportional correction Evidence: ledger:E0433, ledger:E0904</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>10</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="4.8" />
      <LABEL index="3" value="8" />
      <LABEL index="4" value="13.2" />
      <LABEL index="5" value="21.8" />
      <LABEL index="6" value="29.5" />
      <LABEL index="7" value="40.3" />
      <LABEL index="8" value="51.8" />
      <LABEL index="9" value="76" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2581E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="10" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>399.993896</max>
      <MATH equation="X/163.84"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x263" flags="0x30">
    <title>Closed Loop Slow-Sensor Proportional Factor - Idle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Closed-loop fuel, slow-sensor tables: when the front O2 is measured slow going rich-to-lean but fast going lean-to-rich, closed loop uses this alternate set while the O2 reads rich (see Closed Loop Alternate Tables Map). This curve scales the proportional term in closed-throttle idle. Stock 1.0 rising to 1.6 from 384 mV. Effect: raise = stronger proportional correction at idle Evidence: ledger:E0433, ledger:E0904, ledger:E0936</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>mV past the O2 switch point</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="32" />
      <LABEL index="2" value="64" />
      <LABEL index="3" value="96" />
      <LABEL index="4" value="128" />
      <LABEL index="5" value="160" />
      <LABEL index="6" value="192" />
      <LABEL index="7" value="224" />
      <LABEL index="8" value="256" />
      <LABEL index="9" value="288" />
      <LABEL index="10" value="320" />
      <LABEL index="11" value="352" />
      <LABEL index="12" value="384" />
      <LABEL index="13" value="416" />
      <LABEL index="14" value="448" />
      <LABEL index="15" value="480" />
      <LABEL index="16" value="512" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x25834" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>-2.000000</min>
      <max>1.999939</max>
      <MATH equation="X/16384"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x264" flags="0x30">
    <title>Closed Loop Slow-Sensor Trim Jump</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Closed-loop fuel, slow-sensor tables: when the front O2 is measured slow going rich-to-lean but fast going lean-to-rich, closed loop uses this alternate set while the O2 reads rich (see Closed Loop Alternate Tables Map). These are the trim jumps: idle lean (unused), idle rich, off idle lean (unused), off idle rich. Stock 0.40 % each. Effect: raise = bigger trim step at each O2 switch Evidence: ledger:E0433, ledger:E0904</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>4</indexcount>
      <units>idle / off idle, O2 state</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="idle lean (unused)" />
      <LABEL index="1" value="idle rich" />
      <LABEL index="2" value="off idle lean (unused)" />
      <LABEL index="3" value="off idle rich" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x257BA" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="4" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>199.996948</max>
      <MATH equation="X/327.68"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x265" flags="0x0">
    <title>P0532 Fail - Consecutive Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A/C refrigerant pressure sensor circuit low check P0532: the code sets after this many samples in a row read at or below the low limit. Stock 3. Effect: raise = more low samples in a row are needed to set P0532 Evidence: ledger:E1034</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x2011C" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x266" flags="0x0">
    <title>P0533 Fail - Consecutive Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A/C refrigerant pressure sensor circuit high check P0533: the code sets after this many samples in a row read at or above the high limit. Stock 3. Effect: raise = more high samples in a row are needed to set P0533 Evidence: ledger:E1034</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x2011D" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x267" flags="0x0">
    <title>P0532 Check - Sensor Voltage Low Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A/C refrigerant pressure sensor circuit low check P0532: a sample counts as low when the sensor voltage is at or below this. Stock 0.10 V. Effect: raise = higher voltages already count as a low circuit Evidence: ledger:E1048</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x2011E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>V</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>9.999847</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/6553.6"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x268" flags="0x0">
    <title>P0533 Check - Sensor Voltage High Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A/C refrigerant pressure sensor circuit high check P0533: a sample counts as high when the sensor voltage is at or above this. Stock 4.90 V. Effect: lower = lower voltages already count as a high circuit Evidence: ledger:E1048</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x20120" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>V</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>9.999847</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/6553.6"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x269" flags="0x0">
    <title>P0622 Test - Run Condition, Engine Speed Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0622 (generator field signal), engine running check: runs only below this engine speed. Stock 3000 rpm. Effect: raise = the running check also runs at higher engine speed Evidence: ledger:E1076</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x202DC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x26A" flags="0x0">
    <title>P0622 Fail - Field Duty, Engine Stopped</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0622, ignition on with the engine stopped: generator field signal duty at or above this for the engine-stopped fail time sets the code. Stock 65 %. Effect: raise = a higher field signal is tolerated with the engine stopped Evidence: ledger:E1076</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x202DE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x26B" flags="0x0">
    <title>P0622 Fail - Field Duty, Engine Running</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0622, engine running: generator field signal duty at or below this for the engine-running fail time sets the code. Stock 5 %. Effect: lower = a lower field signal is tolerated with the engine running Evidence: ledger:E1076</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x202E0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x26C" flags="0x0">
    <title>U1301 Fail Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Class 2 data link high check U1301: the code sets once the fault has been present for this long. Stock 3 s. Effect: raise = the fault must last longer before U1301 sets Evidence: ledger:E1035</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x203A8" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x26D" flags="0x0">
    <title>U1300 Fail Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Class 2 data link low check U1300: the code sets once the fault has been present for this long. Stock 3 s. Effect: raise = the fault must last longer before U1300 sets Evidence: ledger:E1035</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x203A9" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x26E" flags="0x0">
    <title>System Voltage High Threshold (P0563)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0563 (system voltage high) counts toward a fail while system voltage is at or above this, and the PCM treats voltage above it as outside the normal range. Stock 16.0 V. Effect: raise = higher voltage is tolerated before P0563 Evidence: ledger:E0978</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x203DE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x26F" flags="0x0">
    <title>System Voltage Low Threshold (P0562)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0562 (system voltage low) counts toward a fail while system voltage is at or below this, and the PCM treats voltage below it as outside the normal range. Stock 10.0 V. Effect: lower = lower voltage is tolerated before P0562 Evidence: ledger:E0978</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x203E6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x270" flags="0x0">
    <title>P250A Check - Vehicle Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P250A check (switched off in the stock calibration): fail periods are only timed at or above this vehicle speed. Stock 0 km/h. Effect: raise = the check only runs at higher speeds Evidence: ledger:E1037</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x22D94" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x271" flags="0x0">
    <title>P250A Check - Throttle Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P250A check (switched off in the stock calibration): fail periods are only timed at or above this throttle position. Stock 0 %. Effect: raise = the check only runs at larger throttle openings Evidence: ledger:E1037</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x22D96" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x272" flags="0x0">
    <title>P250A Check - RPM Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P250A check (switched off in the stock calibration): fail periods are only timed at or above this engine speed. Stock 550 rpm. Effect: raise = the check only runs at higher engine speeds Evidence: ledger:E1037</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x22D98" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x273" flags="0x0">
    <title>P250A Fail - Period Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P250A check (switched off in the stock calibration): each time the monitored input has stayed in its fault state for this long with the run conditions met, one fail period is counted. Stock 10 s. Effect: raise = each fail period takes longer Evidence: ledger:E1037</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x22D9A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x274" flags="0x0">
    <title>P250A Check - Start Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P250A check (switched off in the stock calibration): the monitored input must first have been in its fault state for this long in total since the last pass before fail periods are timed. Stock 10 s. Effect: raise = the check waits longer before timing fail periods Evidence: ledger:E1037</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x22D9C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x275" flags="0x0">
    <title>P250A Fail - Period Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P250A check (switched off in the stock calibration): the code sets once this many fail periods have been counted. Stock 20. Effect: raise = more fail periods are needed to set P250A Evidence: ledger:E1037</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x22DA0" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>count</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x276" flags="0x0">
    <title>P0068 Fail - Airflow Difference</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0068 airflow leg: measured airflow (MAF) differing from the airflow modelled from throttle position by more than this, in either direction. P0068 sets when this leg and the pressure leg both hold for the fail time. Stock 25 g/s. Effect: raise = a larger airflow disagreement is tolerated Evidence: ledger:E1066</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x23584" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>-512.000000</min>
    <max>511.984375</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/64"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x277" flags="0x0">
    <title>P0641 Fail - Continuous Fault Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Sensor reference voltage A check (P0641): the code sets once the reference voltage has been out of range continuously for this long. Stock 0.2 s. Effect: raise = a longer continuous fault is needed to set the code Evidence: ledger:E1033</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x31402" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x278" flags="0x0">
    <title>P0641 Check - Window Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Sensor reference voltage A check (P0641): the fault sample count starts again after this many samples. Stock 40. Effect: raise = each counting window is longer Evidence: ledger:E1033</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x31404" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x279" flags="0x0">
    <title>P0641 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Sensor reference voltage A check (P0641): the code also sets once this many samples in a counting window are out of range. Stock 20. Effect: raise = more out of range samples are needed to set the code Evidence: ledger:E1033</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x31406" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x27A" flags="0x0">
    <title>P0651 Fail - Continuous Fault Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Sensor reference voltage B check (P0651): the code sets once the reference voltage has been out of range continuously for this long. Stock 0.2 s. Effect: raise = a longer continuous fault is needed to set the code Evidence: ledger:E1033</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x31408" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x27B" flags="0x0">
    <title>P0651 Check - Window Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Sensor reference voltage B check (P0651): the fault sample count starts again after this many samples. Stock 40. Effect: raise = each counting window is longer Evidence: ledger:E1033</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3140A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x27C" flags="0x0">
    <title>P0651 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Sensor reference voltage B check (P0651): the code also sets once this many samples in a counting window are out of range. Stock 20. Effect: raise = more out of range samples are needed to set the code Evidence: ledger:E1033</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3140C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x27D" flags="0x0">
    <title>Knock Sensor Tests - Run Condition, Airmass Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock sensor checks (P0325, P0327, P0332): the checks run only when cylinder airmass is above this. The sensor signal evaluation that feeds them starts at a quarter of this airmass. Stock 0.26 g per cylinder. Effect: raise = the knock sensor checks run only at higher load Evidence: ledger:E1078</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3206C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/cyl</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>16.383750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4000"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x27E" flags="0x0">
    <title>P0315 Fail - Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0315 (crankshaft variation not learned) sets once the variation values have been found not learned for this long. Stock 0.5 s. Effect: raise = P0315 takes longer to set Evidence: ledger:E1040</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322E8" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>12.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x27F" flags="0x0">
    <title>P0014 Check - Cam Error Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam position check P0014: a sample counts against the cam when the filtered cam error (desired angle minus actual angle) is at or above this. Stock 3.75 deg. Effect: raise = a larger cam error is tolerated Evidence: ledger:E1014</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32E84" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>deg</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x280" flags="0x0">
    <title>P0116 Test - Drive Check Intake Air Rise Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant rationality test (P0116), when coolant at start-up is warmer than intake air by more than the pass limit but less than the fail limit: after the drive check time, the code sets unless intake air has risen at least this much above its lowest reading since start, in which case no decision is made. Stock 5 C. Effect: raise = a larger intake air rise is needed to avoid the fail Evidence: ledger:E1022</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32E8E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x281" flags="0x0">
    <title>P0116 Test - Startup Intake Air Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant rationality test (P0116), when coolant at start-up is warmer than intake air by more than the pass limit but less than the fail limit: no decision is made if intake air temperature at start-up was at or below this. Stock 10 C. Effect: lower = the test also decides after colder starts Evidence: ledger:E1022</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32E90" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x282" flags="0x0">
    <title>P0116 Test - Drive Check Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant rationality test (P0116), when coolant at start-up is warmer than intake air by more than the pass limit but less than the fail limit: the decision is made after more than this much driving above the drive check speed. Stock 400 s. Effect: raise = more driving is needed before the decision Evidence: ledger:E1022</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32E92" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x283" flags="0x0">
    <title>P0116 Test - Drive Check Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant rationality test (P0116), when coolant at start-up is warmer than intake air by more than the pass limit but less than the fail limit: only time spent above this vehicle speed counts toward the drive check time. Stock 40 km/h. Effect: raise = only faster driving counts Evidence: ledger:E1022</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32E94" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x284" flags="0x0">
    <title>P0116 Test - Long Crank Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant rationality test (P0116), when coolant at start-up is warmer than intake air by more than the pass limit but less than the fail limit: if the engine cranked for at least this long, the code sets at once when fuel level is above the long crank fuel level, and otherwise no decision is made. Stock 10 s. Effect: raise = only longer cranking takes this path Evidence: ledger:E1022</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32E96" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x285" flags="0x0">
    <title>P0116 Test - Long Crank Fuel Level</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant rationality test (P0116), when coolant at start-up is warmer than intake air by more than the pass limit but less than the fail limit: after a long crank the code sets only if fuel level is above this. Stock 10 %. Effect: raise = more fuel is needed for the long crank fail Evidence: ledger:E1022</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32EBC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x286" flags="0x0">
    <title>P0117 / P1114 Check - Hot Soak Run Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant sensor circuit low check: for this long after a start, low-circuit samples are ignored while minimum intake air temperature is above the hot soak limit. Stock 10 s. Effect: raise = hot soak readings are ignored for longer after a start Evidence: ledger:E1010</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32F56" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x287" flags="0x0">
    <title>P0117 / P1114 Check - Hot Soak Intake Air Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant sensor circuit low check: minimum intake air temperature above which low-circuit samples are ignored right after a start. Stock 70 C. Effect: lower = samples are ignored after a cooler soak too Evidence: ledger:E1010</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32F58" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x288" flags="0x0">
    <title>P0117 / P1114 Check - Sensor Resistance Low Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant temperature sensor circuit low check: a sample counts as low when the sensor resistance is below this (a shorted sensor or wire). Stock 25 ohm. Effect: raise = higher resistances already count as a low circuit Evidence: ledger:E1047</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32F5A" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ohm</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>134217727.968750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x289" flags="0x0">
    <title>P0118 / P1115 Check - Sensor Resistance High Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant temperature sensor circuit high check: a sample counts as high when the sensor resistance is above this (an open sensor or wire). Stock 1.8 Mohm. Effect: lower = lower resistances already count as a high circuit Evidence: ledger:E1047</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32F5E" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ohm</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>134217727.968750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x28A" flags="0x0">
    <title>P0117 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant sensor circuit low check: P0117 sets once this many low-circuit samples are counted in a test window. Stock 50. Effect: raise = more low samples are needed to set P0117 Evidence: ledger:E1010</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32F62" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x28B" flags="0x0">
    <title>P1114 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant sensor circuit low check: P1114 (intermittent) sets once this many low-circuit samples are counted in its longer test window. Stock 100. Effect: raise = more low samples are needed to set P1114 Evidence: ledger:E1010</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32F64" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x28C" flags="0x0">
    <title>P0118 / P1115 Check - Cold Start Run Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant sensor circuit high check: for this long after a start, high-circuit samples are ignored while minimum intake air temperature is below the cold start limit. Stock 60 s. Effect: raise = cold start readings are ignored for longer after a start Evidence: ledger:E1010</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32F6A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x28D" flags="0x0">
    <title>P0118 / P1115 Check - Cold Start Intake Air Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant sensor circuit high check: minimum intake air temperature below which high-circuit samples are ignored right after a start. Stock -7 C. Effect: raise = samples are ignored after a milder cold start too Evidence: ledger:E1010</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32F6C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x28E" flags="0x0">
    <title>P0118 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant sensor circuit high check: P0118 sets once this many high-circuit samples are counted in a test window. Stock 50. Effect: raise = more high samples are needed to set P0118 Evidence: ledger:E1010</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32F6E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x28F" flags="0x0">
    <title>P1115 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant sensor circuit high check: P1115 (intermittent) sets once this many high-circuit samples are counted in its longer test window. Stock 100. Effect: raise = more high samples are needed to set P1115 Evidence: ledger:E1010</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32F70" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x290" flags="0x0">
    <title>P0011 Check - Cam Error Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam position check P0011: a sample counts against the cam when the filtered cam error (desired angle minus actual angle, in either direction) is at or above this. Stock 3.75 deg. Effect: raise = a larger cam error is tolerated Evidence: ledger:E1014</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33492" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>deg</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x291" flags="0x0">
    <title>P0011 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0011 sets once this many samples in a test window have a cam error at or above its threshold. Stock 135. Effect: raise = more error samples are needed to set P0011 Evidence: ledger:E1014</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33494" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x292" flags="0x0">
    <title>P0464 Pass - Sample Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0464 (fuel level sensor intermittent, judged by the engine-off EVAP test): a pass is reported after this many samples unless the bad sample limit was exceeded first. Stock 3. Effect: raise = each decision window is longer Evidence: ledger:E1051</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334B0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x293" flags="0x0">
    <title>P0454 Pass - Sample Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0454 (tank pressure sensor intermittent, judged by the engine-off EVAP test): a pass is reported after this many samples unless the bad sample limit was exceeded first. Stock 3. Effect: raise = each decision window is longer Evidence: ledger:E1051</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334BC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x294" flags="0x0">
    <title>P0442 Fail - Threshold After a Failure</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0442 (small leak, engine-off test): threshold used in place of the normal fail threshold once P0442 has failed, so the running average has to come down to this before the code can pass again. Stock 0.35. Effect: raise = it is easier to pass again after a failure Evidence: ledger:E1051</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334BE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>3.999939</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16384"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x295" flags="0x0">
    <title>P0442 Fail - Leak Result Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0442 (small leak, engine-off test) sets when the running average of the leak result rises above this. The result of one test is 1 minus (vacuum reached minus pressure reached) divided by the reference: 0 for a tight tank, 1 when the tank pressure did not move at all. Stock 0.55. Effect: raise = a larger average leak result is needed to set P0442 Evidence: ledger:E1051</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334C0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>3.999939</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16384"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x296" flags="0x0">
    <title>P0442 - Averaging Weight After a Failure</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0442: share of each new leak result taken into the running average once P0442 has failed. Stock 0.175. Effect: raise = each test moves the average more Evidence: ledger:E1051</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334C2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x297" flags="0x0">
    <title>P0451 - Averaging Weight</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tank pressure sensor zero check of the engine-off EVAP test (P0451): share of each new zero shift rating taken into the running average. Stock 0.20. Effect: raise = each zero check moves the average more Evidence: ledger:E1051</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334C4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x298" flags="0x0">
    <title>P0451 - Averaging Weight After a Failure</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tank pressure sensor zero check of the engine-off EVAP test (P0451): the same share once P0451 has failed. Stock 0.20. Effect: raise = each zero check moves the average more Evidence: ledger:E1051</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334C6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x299" flags="0x0">
    <title>P0451 Fail - Zero Shift Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tank pressure sensor zero check of the engine-off EVAP test (P0451): the code sets when the running average of the zero shift rating rises above this (a rating of 1.0 is a shift equal to the zero shift limit). Stock 0.73. Effect: raise = a larger average zero shift is needed to set P0451 Evidence: ledger:E1051</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334DE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>3.999939</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16384"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x29A" flags="0x0">
    <title>P0451 Fail - Threshold After a Failure</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tank pressure sensor zero check of the engine-off EVAP test (P0451): threshold used in place of the normal one once P0451 has failed. Stock 0.40. Effect: raise = it is easier to pass again after a failure Evidence: ledger:E1051</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334E0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>3.999939</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16384"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x29B" flags="0x0">
    <title>P0464 Fail - Bad Sample Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0464 (fuel level sensor intermittent): the code sets when more than this many samples in a window were bad (the fuel level moved during the engine-off test and it was not put down to refuelling). Stock 1. Effect: raise = more bad samples are tolerated Evidence: ledger:E1051</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D4E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x29C" flags="0x0">
    <title>P0454 Fail - Bad Sample Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0454 (tank pressure sensor intermittent): the code sets when more than this many samples in a window were bad (the tank pressure signal jumped during the engine-off test). Stock 1. Effect: raise = more bad samples are tolerated Evidence: ledger:E1051</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D50" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x29D" flags="0x0">
    <title>P0442 - Averaging Weight</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0442: share of each new leak result taken into the running average. Stock 0.175. Effect: raise = each test moves the average more Evidence: ledger:E1051</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D52" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x29E" flags="0x0">
    <title>P0522 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine oil pressure sensor circuit low check P0522 (switched off in the stock calibration): the code sets once this many samples in a test window read below the low limit. Stock 50. Effect: raise = more low samples are needed to set P0522 Evidence: ledger:E1042</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33EC0" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x29F" flags="0x0">
    <title>P0522 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine oil pressure sensor circuit low check P0522 (switched off in the stock calibration): a test window that reaches this many samples without failing passes. Stock 100. Effect: raise = each test window is longer Evidence: ledger:E1042</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33EC1" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2A0" flags="0x0">
    <title>P0523 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine oil pressure sensor circuit high check P0523 (switched off in the stock calibration): the code sets once this many samples in a test window read above the high limit. Stock 50. Effect: raise = more high samples are needed to set P0523 Evidence: ledger:E1042</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33EC6" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2A1" flags="0x0">
    <title>P0523 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine oil pressure sensor circuit high check P0523 (switched off in the stock calibration): a test window that reaches this many samples without failing passes. Stock 100. Effect: raise = each test window is longer Evidence: ledger:E1042</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33EC7" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2A2" flags="0x0">
    <title>P0336 Fail - Crank Resyncs per Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0336 (crank position sensor performance): the code sets when the crank signal has to be resynchronised this many times or more within one check window. Stock 20. Effect: raise = more crank resynchronisations are tolerated Evidence: ledger:E1080</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34462" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>resyncs</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2A3" flags="0x0">
    <title>P0452 Check - Sensor Voltage Low Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel tank pressure sensor circuit low check P0452: a sample counts as low when the sensor voltage is below this. Stock 0.10 V. Effect: raise = higher voltages already count as a low circuit Evidence: ledger:E1016</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FBA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2A4" flags="0x0">
    <title>P0453 Check - Sensor Voltage High Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel tank pressure sensor circuit high check P0453: a sample counts as high when the sensor voltage is above this. Stock 4.90 V. Effect: lower = lower voltages already count as a high circuit Evidence: ledger:E1016</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FBC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2A5" flags="0x0">
    <title>P0463 Fuel Level Sensor High - Voltage Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0463 (fuel level sensor circuit high) counts time while the fuel level sender reads above this voltage. Stock 3.5 V. Effect: raise = a higher sender voltage is needed to count toward P0463 Evidence: ledger:E0957</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35BF8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>V</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>9.999847</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/6553.6"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2A6" flags="0x0">
    <title>P0462 Fuel Level Sensor Low - Voltage Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0462 (fuel level sensor circuit low) counts time while the fuel level sender reads below this voltage. Stock 0.53 V. Effect: lower = a lower sender voltage is needed to count toward P0462 Evidence: ledger:E0957</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35BFA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>V</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>9.999847</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/6553.6"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2A7" flags="0x0">
    <title>P0463 Fail - Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0463 (fuel level sensor circuit high) sets once the sender has read above its high threshold for this long without returning to the normal range. Stock 60 s. Effect: raise = P0463 takes longer to set Evidence: ledger:E0957</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35BFC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2A8" flags="0x0">
    <title>P0461 Fail - Distance Without Level Change</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel level sensor stuck check P0461: the code sets once the vehicle has been driven about this far while the fuel level reading stayed inside the level change limit. Stock 250 km (155 miles). Effect: raise = more distance is needed before P0461 sets Evidence: ledger:E1046</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C5C" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>1048575.999756</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4096"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2A9" flags="0x0">
    <title>P0461 Check - Level Change Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel level sensor stuck check P0461: the fuel level reading counts as moving, and the check passes, once the spread between its highest and lowest value reaches this much of a full tank. Stock 5.7 %. Effect: raise = the reading must move more to count as not stuck Evidence: ledger:E1046</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C60" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>1171.052044</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/55.9625"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2AA" flags="0x0">
    <title>P0113 / P1111 Check - Engine Run Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Intake air temperature sensor circuit high check: samples are only counted once the engine has been running longer than this. Stock 10 s. Effect: raise = the check starts later after a start Evidence: ledger:E1012</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C70" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2AB" flags="0x0">
    <title>P0112 / P1112 Check - Engine Run Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Intake air temperature sensor circuit low check: samples are only counted once the engine has been running longer than this. Stock 10 s. Effect: raise = the check starts later after a start Evidence: ledger:E1012</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C72" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2AC" flags="0x0">
    <title>P0112 / P1112 Check - Sensor Resistance Low Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Intake air temperature sensor circuit low check: a sample counts as low when the sensor resistance is below this (a shorted sensor or wire). Stock 25 ohm. Effect: raise = higher resistances already count as a low circuit Evidence: ledger:E1047</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C74" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ohm</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>134217727.968750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2AD" flags="0x0">
    <title>P0113 / P1111 Check - Sensor Resistance High Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Intake air temperature sensor circuit high check: a sample counts as high when the sensor resistance is above this (an open sensor or wire). Stock 1.8 Mohm. Effect: lower = lower resistances already count as a high circuit Evidence: ledger:E1047</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C78" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ohm</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>134217727.968750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2AE" flags="0x0">
    <title>P1112 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Intake air temperature sensor circuit low check: P1112 (intermittent) sets once this many low-circuit samples are counted in its longer test window. Stock 100. Effect: raise = more low samples are needed to set P1112 Evidence: ledger:E1012</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C7C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2AF" flags="0x0">
    <title>P0112 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Intake air temperature sensor circuit low check: P0112 sets once this many low-circuit samples are counted in a test window. Stock 50. Effect: raise = more low samples are needed to set P0112 Evidence: ledger:E1012</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C7E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2B0" flags="0x0">
    <title>P1111 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Intake air temperature sensor circuit high check: P1111 (intermittent) sets once this many high-circuit samples are counted in its longer test window. Stock 100. Effect: raise = more high samples are needed to set P1111 Evidence: ledger:E1012</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C84" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2B1" flags="0x0">
    <title>P0113 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Intake air temperature sensor circuit high check: P0113 sets once this many high-circuit samples are counted in a test window. Stock 50. Effect: raise = more high samples are needed to set P0113 Evidence: ledger:E1012</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C86" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2B2" flags="0x0">
    <title>P0507 Fail - Period Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0507 (idle rpm higher than expected) sets once this many fail periods have been counted (each period is one P0506 / P0507 fail time with the idle spark correction beyond its threshold). Stock 1. Effect: raise = more fail periods are needed to set P0507 Evidence: ledger:E1033</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35CEA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>count</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2B3" flags="0x0">
    <title>P0506 Fail - Period Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0506 (idle rpm lower than expected) sets once this many fail periods have been counted (each period is one P0506 / P0507 fail time with the idle spark correction beyond its threshold). Stock 3. Effect: raise = more fail periods are needed to set P0506 Evidence: ledger:E1033</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35CEC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>count</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2B4" flags="0x0">
    <title>P0325 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock sensor circuit check P0325: the code sets once this many samples in a test window show the circuit fault. Stock 40. Effect: raise = more fault samples are needed to set P0325 Evidence: ledger:E1015</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35EF4" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2B5" flags="0x0">
    <title>P0325 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock sensor circuit check P0325: a test window that reaches this many samples without failing passes. Stock 80. Effect: raise = each test window is longer Evidence: ledger:E1015</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35EF5" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2B6" flags="0x0">
    <title>P0326 Test - Run Condition, Engine Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0326 knock sensor performance test only runs while engine speed is at or above this. Stock 1800 rpm. Effect: raise = the test needs a higher rpm to run Evidence: ledger:E1015</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35EFC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2B7" flags="0x0">
    <title>P0327 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock sensor low input check P0327: the code sets once this many samples in a test window show the low input fault. Stock 80. Effect: raise = more fault samples are needed to set P0327 Evidence: ledger:E1015</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F04" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2B8" flags="0x0">
    <title>P0332 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock sensor 2 low input check P0332 (switched off in the stock calibration): the code sets once this many samples in a test window show the low input fault. Stock 80. Effect: raise = more fault samples are needed to set P0332 Evidence: ledger:E1039</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F05" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2B9" flags="0x0">
    <title>P0327 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock sensor low input check P0327: a test window that reaches this many samples without failing passes. Stock 100. Effect: raise = each test window is longer Evidence: ledger:E1015</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F06" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2BA" flags="0x0">
    <title>P0332 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock sensor 2 low input check P0332 (switched off in the stock calibration): a test window that reaches this many samples without failing passes. Stock 80. Effect: raise = each test window is longer Evidence: ledger:E1039</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F07" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2BB" flags="0x0">
    <title>P0103 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAF sensor circuit high check P0103: the code sets once this many samples in a test window read above the high limit. Stock 30. Effect: raise = more high samples are needed to set P0103 Evidence: ledger:E1031</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F08" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2BC" flags="0x0">
    <title>P0103 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAF sensor circuit high check P0103: a test window that reaches this many samples without failing passes. Stock 40. Effect: raise = each test window is longer Evidence: ledger:E1031</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F0A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2BD" flags="0x0">
    <title>P0102 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAF sensor circuit low check P0102: the code sets once this many samples in a test window read below the low limit. Stock 30. Effect: raise = more low samples are needed to set P0102 Evidence: ledger:E1031</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F0C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2BE" flags="0x0">
    <title>P0102 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAF sensor circuit low check P0102: a test window that reaches this many samples without failing passes. Stock 40. Effect: raise = each test window is longer Evidence: ledger:E1031</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F0E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2BF" flags="0x0">
    <title>P0103 Check - MAF Frequency High Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAF sensor circuit high check P0103: a sample counts as high when the MAF output frequency is at or above this. Stock 11000 Hz. Effect: raise = higher frequencies are tolerated before a sample counts as high Evidence: ledger:E1032</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F14" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Hz</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>16383.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2C0" flags="0x0">
    <title>P0102 Check - MAF Frequency Low Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAF sensor circuit low check P0102: a sample counts as low when the MAF output frequency is at or below this. Stock 100 Hz. Effect: raise = higher frequencies already count as low Evidence: ledger:E1032</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F16" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Hz</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>16383.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2C1" flags="0x0">
    <title>MAP Circuit High - P1106 Fail Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAP sensor circuit high monitor (P0108, and P1106 for intermittent faults): with the engine running past its arming time, above the engine speed limit at any throttle, or at or below it under the throttle area limit, each MAP sensor reading above the high reading threshold counts as a high sample. The threshold is in raw sensor counts, so it does not follow the MAP sensor gain and offset: on the stock sensor it is about 102.6 kPa, and boost read by the stock sensor sets P0108. For P1106 this is the number of high samples that fails the long window. Stock 640. Effect: raise = more high samples needed to set P1106 Evidence: ledger:E0434, ledger:E0889</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F60" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2C2" flags="0x0">
    <title>MAP Circuit High - P1106 Window Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAP sensor circuit high monitor (P0108, and P1106 for intermittent faults): with the engine running past its arming time, above the engine speed limit at any throttle, or at or below it under the throttle area limit, each MAP sensor reading above the high reading threshold counts as a high sample. The threshold is in raw sensor counts, so it does not follow the MAP sensor gain and offset: on the stock sensor it is about 102.6 kPa, and boost read by the stock sensor sets P0108. For P1106 this is the length of the long window. Stock 6400. Effect: raise = longer P1106 window Evidence: ledger:E0434, ledger:E0889</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F62" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2C3" flags="0x0">
    <title>MAP Circuit High - P0108 Fail Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAP sensor circuit high monitor (P0108, and P1106 for intermittent faults): with the engine running past its arming time, above the engine speed limit at any throttle, or at or below it under the throttle area limit, each MAP sensor reading above the high reading threshold counts as a high sample. The threshold is in raw sensor counts, so it does not follow the MAP sensor gain and offset: on the stock sensor it is about 102.6 kPa, and boost read by the stock sensor sets P0108. For P0108 this is the number of high samples that sets the code. Stock 320. Effect: raise = more high samples needed to set P0108 Evidence: ledger:E0434, ledger:E0889</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F64" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2C4" flags="0x0">
    <title>MAP Circuit High - P0108 Window Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAP sensor circuit high monitor (P0108, and P1106 for intermittent faults): with the engine running past its arming time, above the engine speed limit at any throttle, or at or below it under the throttle area limit, each MAP sensor reading above the high reading threshold counts as a high sample. The threshold is in raw sensor counts, so it does not follow the MAP sensor gain and offset: on the stock sensor it is about 102.6 kPa, and boost read by the stock sensor sets P0108. For P0108 this is the number of samples after which the test passes. Stock 400. Effect: raise = longer P0108 window (keep above the fail count) Evidence: ledger:E0434, ledger:E0889</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F66" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2C5" flags="0x0">
    <title>MAP Circuit High - Engine Speed Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAP sensor circuit high monitor (P0108, and P1106 for intermittent faults): with the engine running past its arming time, above the engine speed limit at any throttle, or at or below it under the throttle area limit, each MAP sensor reading above the high reading threshold counts as a high sample. The threshold is in raw sensor counts, so it does not follow the MAP sensor gain and offset: on the stock sensor it is about 102.6 kPa, and boost read by the stock sensor sets P0108. This is the engine speed limit. Stock 1100 rpm. Effect: raise = the throttle-limited low-speed test covers a higher engine speed Evidence: ledger:E0434, ledger:E0889</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F68" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2C6" flags="0x0">
    <title>MAP Circuit High - High Reading Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAP sensor circuit high monitor (P0108, and P1106 for intermittent faults): with the engine running past its arming time, above the engine speed limit at any throttle, or at or below it under the throttle area limit, each MAP sensor reading above the high reading threshold counts as a high sample. The threshold is in raw sensor counts, so it does not follow the MAP sensor gain and offset: on the stock sensor it is about 102.6 kPa, and boost read by the stock sensor sets P0108. This is the high reading threshold in raw sensor counts (65535 = full scale). Stock 32113, about 102.6 kPa on the stock sensor. With a different sensor the pressure it stands for is these counts through that sensor&#x27;s gain and offset. Effect: raise = a higher sensor reading is needed to count as high (check it against the fitted sensor) Evidence: ledger:E0434, ledger:E0889</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x360B8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>A/D counts</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2C7" flags="0x0">
    <title>MAP Circuit High - Throttle Area Above Speed Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAP sensor circuit high monitor (P0108, and P1106 for intermittent faults): with the engine running past its arming time, above the engine speed limit at any throttle, or at or below it under the throttle area limit, each MAP sensor reading above the high reading threshold counts as a high sample. The threshold is in raw sensor counts, so it does not follow the MAP sensor gain and offset: on the stock sensor it is about 102.6 kPa, and boost read by the stock sensor sets P0108. This is the throttle area below which the test runs above the engine speed limit. Stock 140 % (never reached, so any throttle). Effect: lower = the test stops at large throttle above the speed limit Evidence: ledger:E0434, ledger:E0889</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x360BA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% throttle area</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>399.993896</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/163.84"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2C8" flags="0x0">
    <title>MAP Circuit High - Throttle Area Below Speed Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAP sensor circuit high monitor (P0108, and P1106 for intermittent faults): with the engine running past its arming time, above the engine speed limit at any throttle, or at or below it under the throttle area limit, each MAP sensor reading above the high reading threshold counts as a high sample. The threshold is in raw sensor counts, so it does not follow the MAP sensor gain and offset: on the stock sensor it is about 102.6 kPa, and boost read by the stock sensor sets P0108. This is the throttle area below which the test runs at or below the engine speed limit. Stock 58 %. Effect: lower = the low-speed test stops at a smaller throttle Evidence: ledger:E0434, ledger:E0889</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x360BC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% throttle area</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>399.993896</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/163.84"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2C9" flags="0x0">
    <title>MAP Circuit Low - P1107 Fail Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAP sensor circuit low monitor (P0107, and P1107 for intermittent faults): with the ignition on, at or below the engine speed limit, or above it with throttle area at or above the area limit, each MAP sensor reading below the low voltage threshold counts as a low sample. The raw reading does not depend on the MAP sensor gain and offset. For P1107 this is the number of low samples that fails the long window. Stock 640. Effect: raise = more low samples needed to set P1107 Evidence: ledger:E0434, ledger:E0887</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F6A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2CA" flags="0x0">
    <title>MAP Circuit Low - P1107 Window Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAP sensor circuit low monitor (P0107, and P1107 for intermittent faults): with the ignition on, at or below the engine speed limit, or above it with throttle area at or above the area limit, each MAP sensor reading below the low voltage threshold counts as a low sample. The raw reading does not depend on the MAP sensor gain and offset. For P1107 this is the length of the long window. Stock 6400. Effect: raise = longer P1107 window Evidence: ledger:E0434, ledger:E0887</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F6C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2CB" flags="0x0">
    <title>MAP Circuit Low - P0107 Fail Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAP sensor circuit low monitor (P0107, and P1107 for intermittent faults): with the ignition on, at or below the engine speed limit, or above it with throttle area at or above the area limit, each MAP sensor reading below the low voltage threshold counts as a low sample. The raw reading does not depend on the MAP sensor gain and offset. For P0107 this is the number of low samples that sets the code. Stock 320. Effect: raise = more low samples needed to set P0107 Evidence: ledger:E0434, ledger:E0887</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F6E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2CC" flags="0x0">
    <title>MAP Circuit Low - P0107 Window Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAP sensor circuit low monitor (P0107, and P1107 for intermittent faults): with the ignition on, at or below the engine speed limit, or above it with throttle area at or above the area limit, each MAP sensor reading below the low voltage threshold counts as a low sample. The raw reading does not depend on the MAP sensor gain and offset. For P0107 this is the number of samples after which the test passes. Stock 400. Effect: raise = longer P0107 window (keep above the fail count) Evidence: ledger:E0434, ledger:E0887</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F70" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2CD" flags="0x0">
    <title>MAP Circuit Low - Engine Speed Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAP sensor circuit low monitor (P0107, and P1107 for intermittent faults): with the ignition on, at or below the engine speed limit, or above it with throttle area at or above the area limit, each MAP sensor reading below the low voltage threshold counts as a low sample. The raw reading does not depend on the MAP sensor gain and offset. This is the engine speed limit. Stock 1100 rpm. Effect: raise = the low-throttle test runs up to a higher engine speed Evidence: ledger:E0434, ledger:E0887</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F72" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2CE" flags="0x0">
    <title>MAP Circuit Low - Throttle Area Above Speed Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAP sensor circuit low monitor (P0107, and P1107 for intermittent faults): with the ignition on, at or below the engine speed limit, or above it with throttle area at or above the area limit, each MAP sensor reading below the low voltage threshold counts as a low sample. The raw reading does not depend on the MAP sensor gain and offset. This is the throttle area at or above which the test runs above the engine speed limit. Stock 20 %. Effect: raise = the test runs above the speed limit only at larger throttle Evidence: ledger:E0434, ledger:E0887</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x360B2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% throttle area</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>399.993896</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/163.84"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2CF" flags="0x0">
    <title>MAP Circuit Low - Throttle Area Below Speed Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAP sensor circuit low monitor (P0107, and P1107 for intermittent faults): with the ignition on, at or below the engine speed limit, or above it with throttle area at or above the area limit, each MAP sensor reading below the low voltage threshold counts as a low sample. The raw reading does not depend on the MAP sensor gain and offset. This is the throttle area at or above which the test runs at or below the engine speed limit. Stock 0 % (any). Effect: raise = the low-speed test needs some throttle Evidence: ledger:E0434, ledger:E0887</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x360B4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% throttle area</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>399.993896</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/163.84"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2D0" flags="0x0">
    <title>MAP Circuit Low - Low Reading Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAP sensor circuit low monitor (P0107, and P1107 for intermittent faults): with the ignition on, at or below the engine speed limit, or above it with throttle area at or above the area limit, each MAP sensor reading below the low voltage threshold counts as a low sample. The raw reading does not depend on the MAP sensor gain and offset. This is the low reading threshold in raw sensor counts (65535 = full scale). Stock 328 (0.5 % of full scale). Effect: raise = a higher sensor reading already counts as low Evidence: ledger:E0434, ledger:E0887</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x360B6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>A/D counts</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2D1" flags="0x0">
    <title>P1380 / P1381 Test - Run Condition, RPM Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P1380 / P1381 test only runs while engine speed is at or below this. Stock 6200 rpm. Effect: raise = the test also runs at higher engine speeds Evidence: ledger:E1038</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36142" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2D2" flags="0x0">
    <title>P1380 / P1381 Test - Run Condition, Load Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P1380 / P1381 test only runs while the engine load seen by the misfire monitor is at or below this. Stock 100 %. Effect: lower = the test stops running at high load Evidence: ledger:E1038</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36144" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2D3" flags="0x0">
    <title>P1380 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1380 sets once this many test samples had no valid rough road data while a misfire (P0300) is flagged. Stock 40. Effect: raise = more samples without rough road data are needed to set P1380 Evidence: ledger:E1038</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36148" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2D4" flags="0x0">
    <title>P1381 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1381 sets once this many test samples were counted with the rough road data source silent while a misfire (P0300) is flagged. Stock 20. Effect: raise = more silent samples are needed to set P1381 Evidence: ledger:E1038</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3614C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2D5" flags="0x0">
    <title>P1381 Fail - No Data Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1381: test samples only count toward the fail count once the rough road data source has been silent for this long. Stock 2.5 s. Effect: raise = the data source must be silent longer before samples count Evidence: ledger:E1038</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3614E" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>12.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2D6" flags="0x0">
    <title>Misfire - Single Exceedance Load</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: a catalyst-damaging misfire normally needs three exceedances (or one seen earlier) before P0300 sets. When load at the end of the window is above this, one is enough. Stock 75 %. Effect: raise = the one-exceedance rule needs higher load Evidence: ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36AB0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2D7" flags="0x0">
    <title>Misfire - Single Exceedance Engine Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: when engine speed at the end of the window is above this, one catalyst-damaging exceedance is enough to set P0300. Stock 2600 rpm. Effect: raise = the one-exceedance rule needs higher engine speed Evidence: ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36AB2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2D8" flags="0x0">
    <title>P2610 - Start Window, Timer Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off timer diagnostic (P2610): the check only starts while the engine-off timer reads at or below this (the timer counts about once a second); a reading outside the start window scores a start failure. Stock 10. Effect: raise = the check may start with a higher timer reading Evidence: ledger:E1039</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D94" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2D9" flags="0x0">
    <title>P2610 - Start Window, Timer Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off timer diagnostic (P2610): the check only starts while the engine-off timer reads at or above this; a reading outside the start window scores a start failure. Stock 0. Effect: raise = the check needs a higher timer reading to start Evidence: ledger:E1039</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D96" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2DA" flags="0x0">
    <title>P2610 - Maximum Time Between Timer Counts</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off timer diagnostic (P2610): a count of the PCM&#x27;s engine-off timer is a good sample only if it comes within this long of the previous count. Stock 1.39 s. Effect: raise = slower timer counts still pass Evidence: ledger:E0829, ledger:E0963</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D9A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2DB" flags="0x0">
    <title>P2610 - Minimum Time Between Timer Counts</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off timer diagnostic (P2610): a count of the PCM&#x27;s engine-off timer is a good sample only if it comes at least this long after the previous count. Stock 0.575 s. Effect: lower = faster timer counts still pass Evidence: ledger:E0829, ledger:E0963</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D9C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2DC" flags="0x0">
    <title>P2610 - Bad Samples to Fail</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off timer diagnostic (P2610): P2610 sets after this many bad samples. Stock 3. Effect: raise = P2610 needs more bad samples to set Evidence: ledger:E0829, ledger:E0963</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D9E" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2DD" flags="0x0">
    <title>P2610 - Timer Stall Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off timer diagnostic (P2610): if the engine-off timer does not count for this long, the check scores a bad sample (before the check starts, it retries after this long). Stock 1.39 s. Effect: raise = a stalled timer is noticed later Evidence: ledger:E0829, ledger:E0963</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36DA4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2DE" flags="0x0">
    <title>P2610 - Samples to Pass</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off timer diagnostic (P2610): the check reports a pass after this many samples. Stock 10. Effect: raise = the check runs longer before it passes Evidence: ledger:E0829, ledger:E0963</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36DA6" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2DF" flags="0x0">
    <title>P1574 Fail - Deceleration Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1574 check (compares switch inputs during decelerations): the code sets once this many counted decelerations had the first input change state while the second did not. Stock 5. Effect: raise = more mismatching decelerations are needed to set P1574 Evidence: ledger:E1049</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36DC0" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>count</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2E0" flags="0x0">
    <title>P1574 Pass - Deceleration Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1574 check (compares switch inputs during decelerations): the check passes once this many decelerations have been counted without reaching the fail count. Stock 5. Effect: raise = more counted decelerations are needed for a pass Evidence: ledger:E1049</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36DC1" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>count</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2E1" flags="0x0">
    <title>Charging System Consistency Check Debounce</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Sets how long a running timer must count up before a charging-system consistency check is allowed to flag a fault. Stock is 1.59 seconds. Effect: Raising it makes the truck wait longer before this charging check can flag a fault; lowering it lets the check trigger sooner. Evidence: ledger:E0776, ledger:E0805</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x20258" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2E2" flags="0x0">
    <title>A/C Coolant Overheat Cut - Cut Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The A/C compressor is switched off and kept off once engine coolant temperature rises above this. Stock 122.7 degC. Effect: raise = the A/C keeps running to a higher coolant temperature Evidence: ledger:E1036</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x20272" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2E3" flags="0x0">
    <title>A/C Coolant Overheat Cut - Re-Enable Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. After a coolant overheat cut the A/C compressor is allowed again once engine coolant temperature falls below this. Stock 120 degC. Effect: raise = the A/C is allowed again at a higher coolant temperature Evidence: ledger:E1036</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x20274" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2E4" flags="0x0">
    <title>Fuel Level 2 - Sender Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Second fuel level value (used by the starter low-voltage hold and sent in a data message): how fast its filtered sender voltage follows the raw reading, as the fraction of the gap closed per update. Stock 0.80. Effect: lower = the sender reading is smoothed more (slower to change) Evidence: ledger:E1036</description>
    <CATEGORYMEM index="0" category="10" />
    <EMBEDDEDDATA mmedaddress="0x20276" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2E5" flags="0x0">
    <title>Fuel Level 2 - Fast Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Second fuel level value (used by the starter low-voltage hold and sent in a data message): the fraction of the gap closed per update while the fast filter is in use (just after start, in transmission state 6 or 8, or after the fuel level has been low for the low fuel time). Stock 0.10. Effect: lower = the level is smoothed more while the fast filter is in use Evidence: ledger:E1036</description>
    <CATEGORYMEM index="0" category="10" />
    <EMBEDDEDDATA mmedaddress="0x20278" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2E6" flags="0x0">
    <title>Fuel Level 2 - Slow Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Second fuel level value (used by the starter low-voltage hold and sent in a data message): the fraction of the gap closed per update while the slow filter is in use (the normal case when driving). Stock 0.004. Effect: lower = the level is smoothed more (slower to change) while driving Evidence: ledger:E1036</description>
    <CATEGORYMEM index="0" category="10" />
    <EMBEDDEDDATA mmedaddress="0x2027A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2E7" flags="0x0">
    <title>Fuel Level 2 - Fast Filter Time After Start</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Second fuel level value (used by the starter low-voltage hold and sent in a data message): the fast filter is always used until the engine has run this long. Stock 8 s. Effect: raise = the fast filter is used for longer after each start Evidence: ledger:E1036</description>
    <CATEGORYMEM index="0" category="10" />
    <EMBEDDEDDATA mmedaddress="0x2027C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2E8" flags="0x0">
    <title>Fuel Level 2 - Low Fuel Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Second fuel level value (used by the starter low-voltage hold and sent in a data message): once the fuel level has stayed low for this long the fast filter is used until the level recovers. Stock 60 s. Effect: raise = the level must stay low for longer before the fast filter takes over Evidence: ledger:E1036</description>
    <CATEGORYMEM index="0" category="10" />
    <EMBEDDEDDATA mmedaddress="0x2027E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2E9" flags="0x0">
    <title>A/C WOT Cut - Maximum Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Wide-open-throttle A/C cut: the compressor is held off for at most this long per cut. Stock 0 s, which turns the whole WOT cut off. Effect: raise from 0 = the WOT A/C cut becomes active and can last this long Evidence: ledger:E1009</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x20322" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2EA" flags="0x0">
    <title>A/C WOT Cut - Lockout Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Wide-open-throttle A/C cut: after a cut ends, another cut cannot start for this long. Stock 0 s. Effect: raise = longer wait between cuts Evidence: ledger:E1009</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x20324" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2EB" flags="0x0">
    <title>A/C WOT Cut - Minimum Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Wide-open-throttle A/C cut: once started, a cut lasts at least this long even if throttle or rpm leave their limits. Stock 0 s. Effect: raise = each cut lasts longer Evidence: ledger:E1009</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x20328" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2EC" flags="0x0">
    <title>A/C WOT Cut - Release Hold Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Wide-open-throttle A/C cut: after throttle drops back below the re-enable value, the cut is held this much longer. Stock 1.5 s. Effect: raise = the compressor stays off longer after lifting Evidence: ledger:E1009</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x20332" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2ED" flags="0x0">
    <title>A/C Re-Enable - Refrigerant Pressure High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. After a high pressure cut, the A/C compressor is allowed again once refrigerant pressure falls below this. Stock 2206 kPa (320 psi). Effect: lower = the compressor stays cut until pressure drops further Evidence: ledger:E1008</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x20356" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>4095.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2EE" flags="0x0">
    <title>A/C Disable - Refrigerant Pressure Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A/C compressor is cut when refrigerant pressure falls below this. Stock 159 kPa (23 psi). Effect: raise = the compressor is cut at a higher pressure Evidence: ledger:E1008</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x20358" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>4095.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2EF" flags="0x0">
    <title>A/C Re-Enable - Refrigerant Pressure Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. After a low pressure cut, the A/C compressor is allowed again once refrigerant pressure rises above this. Stock 276 kPa (40 psi). Effect: raise = the compressor stays cut until pressure recovers further Evidence: ledger:E1008</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x2035A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>4095.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2F0" flags="0x0">
    <title>Catalyst Over-Temp Protection - Throttle Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst over-temperature protection (catalyst temperature model): the protection enrichment is only applied while commanded throttle (idle share removed) is at or above this. Stock 0 %. Effect: raise = no protection enrichment at small throttle openings Evidence: ledger:E1043</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x215D4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2F1" flags="0x0">
    <title>Catalyst Over-Temp Protection - Low Throttle Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst over-temperature protection (catalyst temperature model): with protection active and commanded throttle below this, the fixed low throttle EQ replaces the ramped enrichment. An airflow drop freeze can also only start below this throttle. Stock 10 %. Effect: raise = the low throttle handling starts at larger throttle openings Evidence: ledger:E1043</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x21BCA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2F2" flags="0x0">
    <title>Catalyst Over-Temp Protection - Low Throttle Exit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst over-temperature protection (catalyst temperature model): the low throttle EQ and an airflow drop freeze both end once commanded throttle reaches this. Stock 15 %. Effect: raise = the low throttle handling is kept to larger throttle openings Evidence: ledger:E1043</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x21BCC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2F3" flags="0x0">
    <title>Catalyst Temp Model - Freeze Airflow Drop</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst temperature model: a fall in airflow of at least this much from one update to the next, at low throttle, freezes the model and the over-temperature protection request. Stock 25 g/s. Effect: raise = only a larger sudden airflow drop freezes the model Evidence: ledger:E1043</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x21BCE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2F4" flags="0x0">
    <title>Catalyst Temp Model - Freeze Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst temperature model: an airflow drop freeze ends after this long at the latest. Stock 2 s. Effect: raise = the model may stay frozen longer after an airflow drop Evidence: ledger:E1043</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x21BD0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2F5" flags="0x0">
    <title>Cruise Control - Vehicle Speed Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cruise control: how fast the vehicle speed the cruise controller works from follows the measured speed, as the fraction of the gap closed per update. Stock 0.05. Effect: lower = the cruise speed signal is smoothed more (slower to react) Evidence: ledger:E1044</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x21BEC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2F6" flags="0x0">
    <title>Cruise Control - Switch Press Time to Set</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cruise control: from standby, a cruise switch must have been pressed for at least this long before cruise sets at the current speed. Stock 0.04 s. Effect: raise = the switch must be held longer before cruise sets Evidence: ledger:E1045</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x21BF8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2F7" flags="0x0">
    <title>Cruise Control - Engine Run Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cruise control: an active cruise is cancelled if the engine has run for less than this. Stock 5 s. Effect: raise = cruise cannot stay engaged until later after a start Evidence: ledger:E1044</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x21C0A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2F8" flags="0x0">
    <title>Cruise Control - System Voltage Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cruise control: an active cruise is cancelled when system voltage falls below this. Stock 9 V. Effect: raise = cruise cancels at a higher system voltage Evidence: ledger:E1044</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x21C0C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2F9" flags="0x0">
    <title>Cruise Control - System Voltage Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cruise control: an active cruise is cancelled when system voltage rises above this. Stock 18 V. Effect: lower = cruise cancels at a lower system voltage Evidence: ledger:E1044</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x21C0E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2FA" flags="0x0">
    <title>Cruise Control - Cancel Below Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cruise control: an active cruise is cancelled when vehicle speed falls below this. Stock 38 km/h (23.6 mph). Effect: lower = cruise stays engaged down to a lower speed Evidence: ledger:E1044</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x21C12" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2FB" flags="0x0">
    <title>Cruise Control - Cancel Above Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cruise control: an active cruise is cancelled when vehicle speed rises above this. Stock 230 km/h (143 mph). Effect: lower = cruise cancels at a lower speed Evidence: ledger:E1044</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x21C14" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2FC" flags="0x0">
    <title>Cruise Control - Engage Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cruise control: set, resume and the speed tap functions only work while vehicle speed is at or above this. Stock 40 km/h (24.9 mph). Effect: lower = cruise can be set at a lower speed Evidence: ledger:E1044</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x21C16" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2FD" flags="0x0">
    <title>Cruise Control - Engage Speed Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cruise control: set, resume and the speed tap functions only work while vehicle speed is at or below this. Stock 225 km/h (140 mph). Effect: lower = cruise cannot be set above a lower speed Evidence: ledger:E1044</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x21C18" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2FE" flags="0x0">
    <title>Cruise Control - RPM Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cruise control: an active cruise is cancelled when engine speed falls below this. Stock 500 rpm. Effect: raise = cruise cancels at a higher engine speed Evidence: ledger:E1044</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x21C1A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x2FF" flags="0x0">
    <title>Cruise Control - RPM Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cruise control: an active cruise is cancelled when engine speed rises above this. Stock 6470 rpm. Effect: lower = cruise cancels at a lower engine speed Evidence: ledger:E1044</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x21C1C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x300" flags="0x0">
    <title>Cruise Control - Tap Speed Step</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cruise control: each tap up or tap down changes the set speed by this much. Stock 1.61 km/h (1 mph). Effect: raise = each tap changes the set speed by more Evidence: ledger:E1045</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x21C26" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x301" flags="0x0">
    <title>Cam Target Spark-Limit Reduction - Down Period</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam target reduction while spark is limited: the load-based cam target is multiplied by a factor (1.0 = no change). While spark has been held below its reference spark for half a second, the factor drops by the step down every down period, never below the floor; otherwise it climbs back by the step up every up period. Stock floor is 1.0, so on the stock calibration the factor stays at 1.0. Stock 5 s. Effect: lower = the cam target is reduced faster while spark is limited Evidence: ledger:E0720, ledger:E0875</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22CAA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x302" flags="0x0">
    <title>Charge Temperature - Start-Up Coolant Weight</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Charge temperature model (used by the VE airflow model and the VE Maximum airmass cap): the charge temperature moves toward intake air temperature plus a fraction of the coolant-to-intake difference, the fraction set by airflow (more airflow, closer to intake temperature), through a lag filter whose speed is also set by airflow. At start the charge temperature is set to intake temperature plus this fraction of the coolant-to-intake difference. Stock 0.8. Effect: raise = charge temperature starts closer to coolant temperature Evidence: ledger:E0776, ledger:E0878</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22D62" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>gain (fraction x65536)</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x303" flags="0x30">
    <title>Closed Loop Trim Jump - Idle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Closed-loop fuel (front O2): short-term trim steps by a fixed jump each time the O2 switch delay runs out, leaner when the O2 reads rich and richer when it reads lean, and adds a proportional offset of the same sign that grows with airflow and with how far the O2 is past its switch point. These two values are the jump in closed-throttle idle: first while the O2 reads lean (trim steps up), second while it reads rich (trim steps down). Stock 0.40 % each. Effect: raise = bigger trim step at each O2 switch Evidence: ledger:E0433, ledger:E0903</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>O2 state</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="lean" />
      <LABEL index="1" value="rich" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x253AC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>199.996948</max>
      <MATH equation="X/327.68"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x304" flags="0x30">
    <title>Closed Loop Trim Jump - Off Idle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Closed-loop fuel (front O2): short-term trim steps by a fixed jump each time the O2 switch delay runs out, leaner when the O2 reads rich and richer when it reads lean, and adds a proportional offset of the same sign that grows with airflow and with how far the O2 is past its switch point. These two values are the jump off idle: first while the O2 reads lean, second while it reads rich. Stock 0.40 % each. Effect: raise = bigger trim step at each O2 switch Evidence: ledger:E0433, ledger:E0903</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>O2 state</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="lean" />
      <LABEL index="1" value="rich" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x253B0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>199.996948</max>
      <MATH equation="X/327.68"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x305" flags="0x30">
    <title>Closed Loop Trim Jump - Unused Modes (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Closed-loop fuel (front O2): short-term trim steps by a fixed jump each time the O2 switch delay runs out, leaner when the O2 reads rich and richer when it reads lean, and adds a proportional offset of the same sign that grows with airflow and with how far the O2 is past its switch point. Inactive on the stock calibration: these jumps belong to closed-loop modes the mode selector never chooses with stock values. Effect: no effect on the stock calibration Evidence: ledger:E0433, ledger:E0903</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>12</indexcount>
      <units>mode / O2 state</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x25394" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="12" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>199.996948</max>
      <MATH equation="X/327.68"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x306" flags="0x30">
    <title>Closed Loop Alternate Tables Map - O2 Lean (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Inactive on the stock calibration: this map would turn on the slow-sensor tables while the O2 reads lean, and it is all zero. Effect: no effect on the stock calibration Evidence: ledger:E0433, ledger:E0904</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>lean-to-rich time (ms)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="29" />
      <LABEL index="1" value="39" />
      <LABEL index="2" value="49" />
      <LABEL index="3" value="59" />
      <LABEL index="4" value="69" />
      <LABEL index="5" value="79" />
      <LABEL index="6" value="89" />
      <LABEL index="7" value="99" />
      <LABEL index="8" value="109" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>rich-to-lean time (ms)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="29" />
      <LABEL index="1" value="39" />
      <LABEL index="2" value="49" />
      <LABEL index="3" value="59" />
      <LABEL index="4" value="69" />
      <LABEL index="5" value="79" />
      <LABEL index="6" value="89" />
      <LABEL index="7" value="99" />
      <LABEL index="8" value="109" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2569A" mmedelementsizebits="8" mmedrowcount="9" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>flag</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>255.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x307" flags="0x30">
    <title>Closed Loop Alternate Tables Map - O2 Rich</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Closed-loop fuel, slow-sensor tables: when the front O2 is measured slow going rich-to-lean but fast going lean-to-rich, closed loop uses this alternate set while the O2 reads rich (see Closed Loop Alternate Tables Map). This map turns on the slow-sensor tables while the O2 reads rich (1 = on), by measured rich-to-lean time (rows) and lean-to-rich time (columns), about 10 ms per step from 29 ms. Stock on only when rich-to-lean is 89 ms or slower and lean-to-rich is much faster. Effect: 1 = slow-sensor tables on for that response Evidence: ledger:E0433, ledger:E0904</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>lean-to-rich time (ms)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="29" />
      <LABEL index="1" value="39" />
      <LABEL index="2" value="49" />
      <LABEL index="3" value="59" />
      <LABEL index="4" value="69" />
      <LABEL index="5" value="79" />
      <LABEL index="6" value="89" />
      <LABEL index="7" value="99" />
      <LABEL index="8" value="109" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>rich-to-lean time (ms)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="29" />
      <LABEL index="1" value="39" />
      <LABEL index="2" value="49" />
      <LABEL index="3" value="59" />
      <LABEL index="4" value="69" />
      <LABEL index="5" value="79" />
      <LABEL index="6" value="89" />
      <LABEL index="7" value="99" />
      <LABEL index="8" value="109" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x256F2" mmedelementsizebits="8" mmedrowcount="9" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>flag</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>255.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x308" flags="0x0">
    <title>Closed Loop Enable Coolant - Hysteresis</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once in closed loop, coolant may drop this far below the Closed Loop Enable Coolant curve before closed loop is dropped. Stock 3 C. Effect: raise = closed loop is kept through a larger coolant drop Evidence: ledger:E1006</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x288DE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x309" flags="0x0">
    <title>Hot-Restart Fuel - Minimum Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Hot-restart fuel gate: a latch sets while the engine is hot (coolant above the latch coolant threshold with intake air above the latch intake threshold, or corrected coolant above its own threshold). On the next start, if the soak lasted between the minimum and maximum soak times, coolant is above the minimum coolant and run time is under the maximum run time, the Open Loop Hot-Restart Gain table multiplies open-loop fuel; it drops out once coolant falls to the minimum or run time reaches the maximum. This is the minimum coolant temperature. Stock 95 C. Effect: raise = hot-restart fuel needs a hotter engine and drops out sooner as it cools Evidence: ledger:E0436, ledger:E0885</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x28928" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x30A" flags="0x0">
    <title>Hot-Restart Fuel - Latch Intake Air</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Hot-restart fuel gate: a latch sets while the engine is hot (coolant above the latch coolant threshold with intake air above the latch intake threshold, or corrected coolant above its own threshold). On the next start, if the soak lasted between the minimum and maximum soak times, coolant is above the minimum coolant and run time is under the maximum run time, the Open Loop Hot-Restart Gain table multiplies open-loop fuel; it drops out once coolant falls to the minimum or run time reaches the maximum. This is the latch intake air threshold. Stock 38 C. Effect: raise = hotter intake air needed to arm a hot restart Evidence: ledger:E0885</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x28932" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x30B" flags="0x0">
    <title>Hot-Restart Fuel - Maximum Soak Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Hot-restart fuel gate: a latch sets while the engine is hot (coolant above the latch coolant threshold with intake air above the latch intake threshold, or corrected coolant above its own threshold). On the next start, if the soak lasted between the minimum and maximum soak times, coolant is above the minimum coolant and run time is under the maximum run time, the Open Loop Hot-Restart Gain table multiplies open-loop fuel; it drops out once coolant falls to the minimum or run time reaches the maximum. This is the maximum engine-off soak time. Stock 3000 s (50 minutes). Effect: raise = longer stops still get hot-restart fuel Evidence: ledger:E0885</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x28934" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x30C" flags="0x0">
    <title>Hot-Restart Fuel - Minimum Soak Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Hot-restart fuel gate: a latch sets while the engine is hot (coolant above the latch coolant threshold with intake air above the latch intake threshold, or corrected coolant above its own threshold). On the next start, if the soak lasted between the minimum and maximum soak times, coolant is above the minimum coolant and run time is under the maximum run time, the Open Loop Hot-Restart Gain table multiplies open-loop fuel; it drops out once coolant falls to the minimum or run time reaches the maximum. This is the minimum engine-off soak time. Stock 600 s (10 minutes). Effect: lower = shorter stops also get hot-restart fuel Evidence: ledger:E0885</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x28936" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x30D" flags="0x0">
    <title>O2 Sensor Ready - Resting Band High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor ready logic: a reading above this counts as sensor activity. Together with the band low value it marks the resting band a cold, inactive sensor sits in. Stock 550 mV. Effect: lower = a smaller rich swing counts as activity Evidence: ledger:E1005</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x28966" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>mV</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x30E" flags="0x0">
    <title>O2 Sensor Ready - Resting Band Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor ready logic: a reading below this counts as sensor activity. Stock 350 mV. Effect: raise = a smaller lean swing counts as activity Evidence: ledger:E1005</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x28968" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>mV</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x30F" flags="0x0">
    <title>O2 Sensor Ready - Coolant Hysteresis</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor ready logic: once the sensors are ready, coolant may drop this far below the O2 ready coolant curve before they are un-flagged. Stock 3 C. Effect: raise = ready is kept through a larger coolant drop Evidence: ledger:E1005</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x289B2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x310" flags="0x0">
    <title>O2 Sensor Ready - Inactive Time To Un-Flag</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor ready logic: a ready sensor is un-flagged after its reading has stayed inside the resting band for longer than this. Stock 10 s. Effect: raise = a sensor can sit in the resting band longer before it is un-flagged Evidence: ledger:E1005</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x289B4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x311" flags="0x30">
    <title>Intake Air Temp Sensor - Resistance Points</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Sensor resistance at each of the 33 temperature points of the intake air temperature sensor (stock 64 ohm at 150 C to 51.5 kohm at -40 C). Paired with Intake Air Temp Sensor - Temperature Points. Change only for a different sensor. Effect: reported and used intake air temperature Evidence: ledger:E1047</description>
    <CATEGORYMEM index="0" category="10" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>point</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <LABEL index="31" value="31" />
      <LABEL index="32" value="32" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x28A7E" mmedelementsizebits="32" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ohm</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>134217727.968750</max>
      <MATH equation="X/32"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x312" flags="0x0">
    <title>Per Cylinder Knock Retard Step Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Caps how much knock retard the computer can add to one cylinder in a single correction, before that amount is added onto the cylinder&#x27;s running knock retard. Stock is 5.0 degrees. It does not cap the total retard a cylinder can carry, only the size of each individual addition. Effect: raise = a knocking cylinder&#x27;s retard can jump by a larger amount in a single correction (faster buildup); lower = each correction adds less, so retard builds more slowly. Stock is 5.0 degrees per correction. Evidence: ledger:E0772, ledger:E0798</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A548" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>deg</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x313" flags="0x0">
    <title>Burst Knock Retard - Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Burst knock retard sequence: a quick rise in cylinder airmass starts a burst of spark retard (sized by the burst retard curves and the learned multiplier). After the delay the retard is applied, held for the hold count, then removed in equal steps over the decay count. Counts are updates of the burst retard routine. This is the delay before the retard is applied. Stock 0 (applied at once). Effect: raise = the burst retard comes in later Evidence: ledger:E0870</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A708" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>updates</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x314" flags="0x0">
    <title>Burst Knock Retard Multiplier - Step Up</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Burst knock retard learned multiplier: two learned multipliers (1.0 = full burst retard) scale the burst knock retard. One event raises the active multiplier by the step up, another lowers it by the step down, and it is never allowed below the floor. Stock floor is 1.0, the top of the range, so on the stock calibration the multipliers stay at 1.0 and nothing is learned; lowering the floor lets burst retard learn down. This is the step up. Stock 0.05. Effect: raise = the multiplier climbs back toward 1.0 faster Evidence: ledger:E0869</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A724" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>x</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x315" flags="0x0">
    <title>Burst Knock Retard Multiplier - Floor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Burst knock retard learned multiplier: two learned multipliers (1.0 = full burst retard) scale the burst knock retard. One event raises the active multiplier by the step up, another lowers it by the step down, and it is never allowed below the floor. Stock floor is 1.0, the top of the range, so on the stock calibration the multipliers stay at 1.0 and nothing is learned; lowering the floor lets burst retard learn down. This is the floor. Stock 1.0 (learning inert). Effect: lower = burst retard can learn down to this fraction Evidence: ledger:E0869</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A72A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>x</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x316" flags="0x0">
    <title>Knock Learn Rate - MAP Weight</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock learning rate for under-sampled cylinders: when a cylinder has had too few knock-learning samples, its learning rate factor is the weighted average of five curves (manifold pressure, engine speed, sample count, coolant and intake temperature), each a fraction from 0 to 1, weighted by the five weights. This is one of the five weights (relative; only the ratios matter). Stock 1.0. Effect: raise = this curve counts for more in the average Evidence: ledger:E0193, ledger:E0871</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A8A8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>weight</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x317" flags="0x0">
    <title>Airmass Temperature Correction Gain</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A gain constant in the airmass and barometric pressure correction chain, applied to the combined intake air and coolant temperature correction term. Stock is a gain of exactly 1.0, meaning the term currently passes through unscaled. Effect: Raising it above 1.0 would amplify the temperature correction term&#x27;s effect on the airmass calculation; lowering it below 1.0 would reduce that effect. Evidence: ledger:E0772, ledger:E0805</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2AB1A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>gain (unitless)</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>31.999512</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/2048"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x318" flags="0x0">
    <title>VE Transient Mode - MAP Band Split</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow source switching: the PCM normally uses the MAF airflow and, during a manifold pressure transient, switches to the VE (speed density) airflow times a learned MAF to VE ratio. It switches over when MAP keeps moving by more than the MAP change threshold per update (two updates in a row), or when MAP moves more than that over two updates while the throttle area moves the same way by more than the area change threshold; it switches back once the MAP change over one, two and three updates is at or below the MAP change threshold. The high band thresholds apply at or above the MAP split or the RPM split. At or above this MAP the high band thresholds are used. Stock 90 kPa. Effect: moves where the high band starts Evidence: ledger:E0219, ledger:E0854</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BE68" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x319" flags="0x30">
    <title>Airmass Predictor Region Map</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airmass predictor region: the PCM predicts cylinder airmass a little ahead of the MAF reading, with a separate set of predictor coefficients per region. The region is an idle window (low throttle, low engine speed, moderate vacuum) or one of 16 cells from four engine speed bands by four MAP bands. Region code by MAP band (rows) and engine speed band (columns), shown raw. Reference only: the codes must match the predictor coefficients. DO NOT EDIT. Effect: reference only (airmass predictor) Evidence: ledger:E0323, ledger:E0780, ledger:E0864, ledger:E0899</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>4</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>4</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2BEBA" mmedelementsizebits="16" mmedrowcount="4" mmedcolcount="4" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>region</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x31A" flags="0x30">
    <title>Airmass Predictor Engine Speed Band Splits</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airmass predictor region: the PCM predicts cylinder airmass a little ahead of the MAF reading, with a separate set of predictor coefficients per region. The region is an idle window (low throttle, low engine speed, moderate vacuum) or one of 16 cells from four engine speed bands by four MAP bands. Leave these at stock unless the predictor coefficients are recalibrated with them. Engine speed splits between the four bands. Stock 1000, 2000, 3000 rpm. Effect: moves which predictor coefficient set applies Evidence: ledger:E0323, ledger:E0864</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2BEDA" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x31B" flags="0x30">
    <title>Airmass Predictor MAP Band Thresholds</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airmass predictor region: the PCM predicts cylinder airmass a little ahead of the MAF reading, with a separate set of predictor coefficients per region. The region is an idle window (low throttle, low engine speed, moderate vacuum) or one of 16 cells from four engine speed bands by four MAP bands. Leave these at stock unless the predictor coefficients are recalibrated with them. MAP thresholds between the four MAP bands (rows: lowest, middle, top split), per engine speed band (columns). Stock 26 / 24 / 22 / 22, 59, 88 kPa. Effect: moves which predictor coefficient set applies Evidence: ledger:E0323, ledger:E0864</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>4</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2BEE0" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="4" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>kPa</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>255.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x31C" flags="0x0">
    <title>Airmass Predictor Engine Speed Band Hysteresis</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airmass predictor region: the PCM predicts cylinder airmass a little ahead of the MAF reading, with a separate set of predictor coefficients per region. The region is an idle window (low throttle, low engine speed, moderate vacuum) or one of 16 cells from four engine speed bands by four MAP bands. Leave these at stock unless the predictor coefficients are recalibrated with them. Engine speed hysteresis: the region keeps its engine speed band until speed moves this far past either band edge. Stock 50 rpm. Effect: raise = the predictor region changes speed band less often Evidence: ledger:E0323, ledger:E0772, ledger:E0864, ledger:E0891</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BEF8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x31D" flags="0x30">
    <title>O2 Heater Cold Learn - Resistance Sample Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater cold-start resistance learn (after a long soak the PCM measures each heater cold and stores how far its resistance is from nominal): a cold resistance reading above this is not used as a learn sample. Stock 9.5 ohm upstream, 11.0 ohm downstream. Effect: raise = higher cold resistance readings are accepted as samples Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="upstream" />
      <LABEL index="1" value="downstream" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2C152" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>ohm</units>
      <decimalpl>3</decimalpl>
      <min>-64.000000</min>
      <max>63.998047</max>
      <MATH equation="X/512"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x31E" flags="0x30">
    <title>O2 Heater Cold Learn - Offset Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater cold-start resistance learn (after a long soak the PCM measures each heater cold and stores how far its resistance is from nominal): largest offset (expected minus measured resistance) that is accepted; beyond it nothing is learned and the heater code P0135 / P0141 sets. Stock 1.98 ohm upstream, 2.48 ohm downstream. Effect: raise = a heater further below nominal resistance is still accepted Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="upstream" />
      <LABEL index="1" value="downstream" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2C15E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>ohm</units>
      <decimalpl>3</decimalpl>
      <min>-64.000000</min>
      <max>63.998047</max>
      <MATH equation="X/512"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x31F" flags="0x30">
    <title>O2 Heater Cold Learn - Offset Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater cold-start resistance learn (after a long soak the PCM measures each heater cold and stores how far its resistance is from nominal): most negative offset (expected minus measured resistance) that is accepted; beyond it nothing is learned and the heater code P0135 / P0141 sets. Stock -3.24 ohm upstream, -4.20 ohm downstream. Effect: more negative = a heater further above nominal resistance is still accepted Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="upstream" />
      <LABEL index="1" value="downstream" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2C16A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>ohm</units>
      <decimalpl>3</decimalpl>
      <min>-64.000000</min>
      <max>63.998047</max>
      <MATH equation="X/512"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x320" flags="0x30">
    <title>O2 Heater - Nominal Resistance at Reference Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor heater: nominal heater resistance at the reference temperature, used to predict the cold resistance in the learn and as the zero point of the heater temperature estimate. Stock 5.70 ohm upstream, 6.10 ohm downstream. Change only for a different sensor. Effect: raise = the heater is taken to be cooler at a given measured resistance Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="upstream" />
      <LABEL index="1" value="downstream" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2C176" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>ohm</units>
      <decimalpl>3</decimalpl>
      <min>-64.000000</min>
      <max>63.998047</max>
      <MATH equation="X/512"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x321" flags="0x30">
    <title>O2 Heater - Wiring Voltage Drop</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater resistance measurement: voltage taken off the supply voltage, as lost in the wiring and driver, before heater resistance is computed. Stock 0 V. Effect: raise = a lower heater resistance is computed from the same readings Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="upstream" />
      <LABEL index="1" value="downstream" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2C31A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>V</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>255.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x322" flags="0x0">
    <title>O2 Heater - Measurement Current Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater resistance measurement: the running resistance and heater temperature are only updated when heater current in the measuring pulse is above this. Stock 0.20 A. Effect: raise = more heater current is needed for a resistance update Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2C326" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>A</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x323" flags="0x0">
    <title>O2 Heater Cold Learn - Sample Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater cold-start resistance learn (after a long soak the PCM measures each heater cold and stores how far its resistance is from nominal): filter on the cold resistance samples, as the fraction of the gap closed per sample. Stock 0.75. Effect: lower = the cold samples are smoothed more Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2C328" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x324" flags="0x0">
    <title>O2 Heater - Resistance Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater resistance measurement: filter on the running heater resistance, as the fraction of the gap closed per measurement. Stock 0.75. Effect: lower = the heater resistance (and temperature estimate) is smoothed more Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2C32A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x325" flags="0x0">
    <title>O2 Heater Cold Learn - Default Offset</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater cold-start resistance learn (after a long soak the PCM measures each heater cold and stores how far its resistance is from nominal): offset assumed for every sensor until a learn has succeeded. Stock 0.56 ohm. Effect: raise = an unlearned heater is taken to be hotter at a given resistance Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2C32C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>ohm</units>
    <decimalpl>3</decimalpl>
    <min>-64.000000</min>
    <max>63.998047</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/512"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x326" flags="0x0">
    <title>O2 Heater Cold Learn - Decision Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater cold-start resistance learn (after a long soak the PCM measures each heater cold and stores how far its resistance is from nominal): time into the first measuring pulse at which the learn is decided. Stock 0.0375 s. Effect: raise = the learn is decided later in the pulse Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2C32E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x327" flags="0x0">
    <title>O2 Heater Cold Learn - First Sample Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater cold-start resistance learn (after a long soak the PCM measures each heater cold and stores how far its resistance is from nominal): time into the first measuring pulse before cold resistance samples are taken. Stock 0.025 s. Effect: raise = sampling starts later in the pulse Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2C330" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x328" flags="0x0">
    <title>O2 Heater Cold Learn - Soak Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater cold-start resistance learn (after a long soak the PCM measures each heater cold and stores how far its resistance is from nominal): only runs after the engine has been off at least this long. Stock 36000 s (10 hours). Effect: lower = the learn also runs after a shorter soak Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2C332" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x329" flags="0x0">
    <title>O2 Heater - System Voltage Cut-Off</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor heater: both heaters are switched off while system voltage is above this. Stock 18 V. Effect: lower = the heaters are cut at a lower voltage Evidence: ledger:E1062</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2C36C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x32A" flags="0x30">
    <title>EGR Spark Correction - Filter Rising / Falling</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark added from the EGR spark correction table is scaled by the cam-phase factor (Cam-Phase Factor vs Cam Angle and RPM) divided by a normaliser (stock 0.24, the factor table&#x27;s largest value), so the table applies in full at 24 degrees of cam and in proportion below it. These two values are the filter speeds of that spark: the first while it rises (stock 0.5 of the difference per update), the second while it falls (stock 1.0, at once). Effect: raise = the spark correction follows changes faster Evidence: ledger:E0436, ledger:E0883</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>direction</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="rising" />
      <LABEL index="1" value="falling" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2D5CE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction per update</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x32B" flags="0x0">
    <title>Starter - Crank Request Debounce Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The crank request from the ignition switch must be present for this long, in park or neutral, before the PCM engages the starter relay. Stock 0.05 s. Effect: raise = the key must be held in crank longer before the starter engages Evidence: ledger:E1024</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2FC2A" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>1.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x32C" flags="0x0">
    <title>Starter - Minimum On Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once engaged, the starter relay stays on for at least this long before the key-released and crank time limit checks can turn it off (leaving park / neutral or the engine starting still turn it off at once). Stock 0.2 s. Effect: raise = the starter stays engaged longer after a brief key turn Evidence: ledger:E1024</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2FC32" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>1.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x32D" flags="0x0">
    <title>Starter - Maximum Crank Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The PCM turns the starter relay off after this much continuous cranking, and does not re-engage it until the key is released. Stock 15 s. Effect: raise = the starter may crank longer in one attempt Evidence: ledger:E1024</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2FC40" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x32E" flags="0x0">
    <title>Starter Low-Voltage Hold - Enable</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Starter low-voltage hold: 1 lets the PCM keep the starter engaged through a voltage collapse below 4 V while cranking; 0 turns the feature off. Stock 1. Effect: 0 = the starter follows the key signal only Evidence: ledger:E1025</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2FC42" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>flag</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x32F" flags="0x0">
    <title>Starter Low-Voltage Hold - Run Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Starter low-voltage hold: the hold is cancelled once engine run time is longer than this. Stock 1.0 s. Effect: raise = the hold can persist longer after the engine fires Evidence: ledger:E1025</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2FC50" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x330" flags="0x0">
    <title>Starter Low-Voltage Hold - Cancel Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Starter low-voltage hold: the hold is cancelled when system voltage stays above 4 V but below this for the cancel time. Stock 6.0 V. Effect: raise = a higher sustained cranking voltage still cancels the hold Evidence: ledger:E1025</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2FC52" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x331" flags="0x0">
    <title>Starter Low-Voltage Hold - Cancel Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Starter low-voltage hold: how long system voltage must stay between 4 V and the cancel voltage to cancel the hold. Stock 0.5 s. Effect: raise = the low voltage must last longer to cancel the hold Evidence: ledger:E1025</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2FC54" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x332" flags="0x0">
    <title>Starter Low-Voltage Hold - Fuel Level Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Starter low-voltage hold: the hold is not used when the fuel level is at or below this (a held mode setting can override this). Stock 2 %. Effect: raise = the hold is dropped at higher fuel levels Evidence: ledger:E1036</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2FC56" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x333" flags="0x30">
    <title>P1545 Circuit Check - Fault Count and Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Output circuit check P1545: the code sets once the first value&#x27;s number of faulted samples is reached; if the second value&#x27;s number of samples is reached first, the check passes and both counts start again. Stock 100 and 120. Effect: raise the first value = more faulted samples are needed to set the code; raise the second = each window is longer Evidence: ledger:E1058</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>value</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="fault samples to fail" />
      <LABEL index="1" value="window samples to pass" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x320A2" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x334" flags="0x0">
    <title>Crank Variation Learn - Attempt Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Crankshaft variation learn: a learn request is refused once the number of learn attempts is above this. Stock 255 (no limit). Effect: lower = the learn can only be attempted this many times Evidence: ledger:E1081</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322C8" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>attempts</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x335" flags="0x0">
    <title>Crank Variation Learn - Coolant Temperature Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Crankshaft variation learn (the service procedure that clears P0315): the learn is refused while coolant is below this. Stock 65 degC. Effect: raise = the learn needs a warmer engine Evidence: ledger:E1040</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322CA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x336" flags="0x0">
    <title>Crank Variation Learn - RPM Rise Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Crankshaft variation learn (the service procedure that clears P0315): sampling is abandoned if engine speed rises by more than this from one sample pass to the next. Stock 50 rpm. Effect: raise = a larger rpm rise is tolerated while sampling Evidence: ledger:E1040</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322CC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x337" flags="0x0">
    <title>Crank Variation Learn - Sampling RPM Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Crankshaft variation learn (the service procedure that clears P0315): samples are taken only while engine speed is above this; at or below it sampling ends. Stock 1500 rpm. Effect: raise = sampling ends at a higher engine speed Evidence: ledger:E1040</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322CE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x338" flags="0x0">
    <title>Crank Variation Learn - Sampling RPM Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Crankshaft variation learn (the service procedure that clears P0315): once armed, samples are taken only while engine speed is at or below this. Stock 3800 rpm. Effect: raise = sampling starts at a higher engine speed Evidence: ledger:E1040</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322D0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x339" flags="0x0">
    <title>Catalyst Monitor - Stopped Speed Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: vehicle speed at or below this counts as stopped. Stock 7 km/h. Effect: raise = the test also treats a slow roll as stopped Evidence: ledger:E0998</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322F6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x33A" flags="0x0">
    <title>Catalyst Monitor - Second Step Downstream Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: if the downstream O2 sensor has not switched within this long of the second fuel step starting, the catalyst is given the maximum storage time. Stock 6.0 s. Effect: lower = a slow downstream switch is scored as maximum storage sooner Evidence: ledger:E1000</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3232E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x33B" flags="0x0">
    <title>Catalyst Monitor - Maximum Storage Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: storage time recorded when the downstream O2 sensor does not switch within its time limits. Stock 7.0 s. Effect: raise = a catalyst that outlasts the test is scored with a longer storage time Evidence: ledger:E1000</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32330" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x33C" flags="0x0">
    <title>Catalyst Monitor - Trim Averaging Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420): before the fuel steps the short term fuel trim is averaged over whole O2 sensor switch cycles for at least this long. Stock 4 s. Effect: raise = the trim is averaged longer before the fuel steps Evidence: ledger:E1082</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32332" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x33D" flags="0x0">
    <title>Catalyst Monitor - Trim Averaging Time Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420): if the trim average is not complete after this long the test is abandoned. Stock 10 s. Effect: raise = the test waits longer for a usable trim average Evidence: ledger:E1082</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32334" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x33E" flags="0x0">
    <title>Catalyst Monitor - Purge Ramp Out Rate</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420): rate at which canister purge is ramped to zero when a test is armed. Stock 99 % per second. Effect: lower = purge is shut off more gradually before a test Evidence: ledger:E1082</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3235A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% per s</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>64997.613000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X*0.9918"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x33F" flags="0x0">
    <title>Catalyst Monitor - Purge Ramp In Rate</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420): rate at which canister purge is brought back after a test. Stock 397 % per second (back within about a quarter of a second). Effect: lower = purge returns more gradually after a test Evidence: ledger:E1082</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3235C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% per s</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>64997.613000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X*0.9918"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x340" flags="0x30">
    <title>Catalyst Monitor - Fuel Step Airflow Breakpoints (axis, edit with care)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow points of the two catalyst monitor fuel step curves. Stock 3 to 12 g/s. The curves that use it are spread over these points, so moving them re-spaces those curves; keep the point count and keep the points rising. Effect: moving a point shifts where the fuel step curves change Evidence: ledger:E1002</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x32368" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g/s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>511.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x341" flags="0x30">
    <title>Catalyst Monitor - First Step Upstream Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: the test is thrown away if the upstream O2 sensor takes longer than this to respond to the first fuel step. Stock 2.0 s. Effect: raise = a slower upstream response is still accepted Evidence: ledger:E1000</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="bank 1" />
      <LABEL index="1" value="bank 2 (not used)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x323CE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x342" flags="0x30">
    <title>Catalyst Monitor - Second Step Upstream Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: the test is thrown away if the upstream O2 sensor takes longer than this to respond to the second fuel step. Stock 2.0 s. Effect: raise = a slower upstream response is still accepted Evidence: ledger:E1000</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="bank 1" />
      <LABEL index="1" value="bank 2 (not used)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x323D2" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x343" flags="0x30">
    <title>Catalyst Monitor - Fast Pass Margin</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: while every test so far has beaten the reference by more than this margin, the monitor counts as having enough tests to pass at once. The value is the shortfall limit, so it is negative. Stock -0.6 s (storage time more than 0.6 s above the reference). Effect: more negative = a larger margin is needed for the fast pass Evidence: ledger:E1021</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>bank</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="bank 1" />
      <LABEL index="1" value="bank 2 (not used)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x323DE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>-204.800000</min>
      <max>204.793750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x344" flags="0x30">
    <title>Catalyst Monitor - Fail Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: P0420 sets when the filtered shortfall of storage time below the reference is greater than this. Stock 0.28 s. Effect: raise = the catalyst must fall further short before the code sets Evidence: ledger:E1021</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>bank</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="bank 1" />
      <LABEL index="1" value="bank 2 (not used)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x323EE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x345" flags="0x0">
    <title>Catalyst Monitor - Tests To Pass</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: the monitor reports a pass once this many tests have gone into the filtered result without it exceeding the fail limit. Stock 6. Effect: raise = more tests are needed before a pass is reported Evidence: ledger:E1021</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x323F2" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>tests</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x346" flags="0x0">
    <title>Catalyst Monitor - Result Filter Gain</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: share of each new test result that goes into the filtered result (the rest is the previous filtered value). Stock 0.10. Effect: raise = the filtered result follows new tests faster Evidence: ledger:E1021</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x323F6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x347" flags="0x0">
    <title>Catalyst Monitor - First Fuel Step Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: the first fuel step is held for this long before the second step starts. Stock 6.0 s. Effect: raise = the first fuel step lasts longer Evidence: ledger:E1000</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x323F8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x348" flags="0x0">
    <title>Catalyst Monitor - End Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: after the fuel steps finish, the monitor waits this long before closing the test. Stock 1.0 s. Effect: raise = longer wait at the end of the test Evidence: ledger:E1000</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x323FA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x349" flags="0x0">
    <title>Catalyst Monitor - Rich Step Upstream Switch Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: when the test starts with its rich step (stock), the upstream O2 sensor counts as switched once it reads at or above this. Stock 600 mV. Effect: lower = the upstream sensor counts as switched at a lower reading Evidence: ledger:E1000</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x323FC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>mV</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x34A" flags="0x30">
    <title>P0650 Circuit Check - Fault Count and Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Malfunction indicator lamp circuit check P0650: the code sets once the first value&#x27;s number of faulted samples is reached; if the second value&#x27;s number of samples is reached first, the check passes and both counts start again. Stock 100 and 120. Effect: raise the first value = more faulted samples are needed to set the code; raise the second = each window is longer Evidence: ledger:E1058</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>value</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="fault samples to fail" />
      <LABEL index="1" value="window samples to pass" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x32E72" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x34B" flags="0x0">
    <title>P0125 / P0128 Check - Airflow Counted Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant warm-up checks P0125 / P0128: airflow below this is not counted when the checks add up the air the engine has drawn since start. Stock 7 g/s. Effect: raise = low airflow (idling) no longer counts toward the required air mass Evidence: ledger:E0776, ledger:E0805, ledger:E1056</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32EC6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x34C" flags="0x0">
    <title>P0125 / P0128 Fail - Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant warm-up checks P0125 / P0128: the code sets after the failing condition (required air drawn, coolant still below the target) has been seen on this many one second passes. Stock 30. Effect: raise = the failing condition must last longer before the code sets Evidence: ledger:E1056</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32ED4" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>count</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x34D" flags="0x0">
    <title>Coolant Temperature Rise Rate Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The maximum amount the reported, filtered engine coolant temperature is allowed to climb toward the raw sensor reading on each update. Stock is about 1.2 degrees Celsius per update. Effect: Raising it lets the reported coolant temperature rise faster toward the raw sensor reading each update; lowering it slows how quickly it can rise. Evidence: ledger:E0776, ledger:E0805</description>
    <CATEGORYMEM index="0" category="10" />
    <EMBEDDEDDATA mmedaddress="0x32F54" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x34E" flags="0x30">
    <title>P0013 Circuit Check - Fault Count and Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam actuator circuit check P0013: the code sets once the first value&#x27;s number of faulted samples is reached; if the second value&#x27;s number of samples is reached first, the check passes and both counts start again. Stock 10 and 20. Effect: raise the first value = more faulted samples are needed to set the code; raise the second = each window is longer Evidence: ledger:E1058</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>value</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="fault samples to fail" />
      <LABEL index="1" value="window samples to pass" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x334A0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x34F" flags="0x0">
    <title>EVAP Engine-Off Test - Vent Open Abort Level</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test, first step with the vent open: if the average tank reading is below this the test is abandoned. Stock -0.5 inH2O (0.5 inH2O of pressure). Tank readings are vacuum: positive is vacuum, negative is pressure. Effect: raise (toward 0) = less pressure with the vent open abandons the test Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334A6" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-209715.200000</min>
    <max>209715.199902</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/10240"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x350" flags="0x0">
    <title>EVAP Engine-Off Test - Vent Open Derate Level</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test, first step with the vent open: if the average tank reading is below this (but not below the abort level) the pressure peak is scaled by the derate factor. Stock -0.45 inH2O. Tank readings are vacuum: positive is vacuum, negative is pressure. Effect: raise (toward 0) = the derate applies with less vent-open pressure Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334AA" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-209715.200000</min>
    <max>209715.199902</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/10240"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x351" flags="0x0">
    <title>EVAP Engine-Off Test - Pressure Phase Flat Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: the pressure phase ends when the tank reading has stayed inside the flat band for this long. Stock 600 s. Effect: raise = the test waits longer for pressure to build Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334B2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>6553.500000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/10"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x352" flags="0x0">
    <title>EVAP Engine-Off Test - Pressure Phase Early Vacuum Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: vacuum at or above the early vacuum level for this long during the pressure phase starts the vacuum phase at once. Stock 0.1 s. Effect: raise = early vacuum must last longer before the vacuum phase starts Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334B4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>6553.500000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/10"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x353" flags="0x0">
    <title>EVAP Engine-Off Test - Vacuum Phase Flat Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: the vacuum phase ends when the tank reading has stayed inside the flat band for this long. Stock 1000 s. Effect: raise = the test waits longer for vacuum to build Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334B6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>6553.500000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/10"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x354" flags="0x0">
    <title>EVAP Engine-Off Test - Pressure Phase Peak Fall-Back</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: the pressure phase ends once the tank reading has come back by this much from its pressure peak. Stock -0.25 inH2O (the value is peak minus current reading, so it is negative). Effect: more negative = a larger fall-back from the peak is needed Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334C8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x355" flags="0x0">
    <title>EVAP Engine-Off Test - Vacuum Phase Peak Fall-Back</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: the vacuum phase ends once the tank reading has dropped by this much from its vacuum peak. Stock 0.25 inH2O. Effect: raise = a larger fall-back from the vacuum peak is needed Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334CA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x356" flags="0x0">
    <title>EVAP Engine-Off Test - Pressure Phase Early Vacuum Level</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: a tank reading at or above this during the pressure phase (vacuum instead of pressure) starts the vacuum phase without venting. Stock 0.20 inH2O. Tank readings are vacuum: positive is vacuum, negative is pressure. Effect: raise = more vacuum is needed to skip straight to the vacuum phase Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334CC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x357" flags="0x0">
    <title>EVAP Engine-Off Test - Pressure Phase Flat Band Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: lower edge of the band in which the pressure phase counts the tank as not building pressure. Stock -0.31 inH2O. Tank readings are vacuum: positive is vacuum, negative is pressure. Effect: more negative = more pressure still counts as flat Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334CE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x358" flags="0x0">
    <title>EVAP Engine-Off Test - Pressure Phase Flat Band High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: upper edge of the band in which the pressure phase counts the tank as not building pressure. Stock 0.31 inH2O. Tank readings are vacuum: positive is vacuum, negative is pressure. Effect: raise = more vacuum still counts as flat Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334D0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x359" flags="0x0">
    <title>EVAP Engine-Off Test - Re-Vent Level</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: during the vacuum phase a tank reading at or below this (pressure again instead of vacuum) opens the vent for a re-vent. Stock -0.31 inH2O. Tank readings are vacuum: positive is vacuum, negative is pressure. Effect: more negative = more pressure is tolerated before a re-vent Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334D2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x35A" flags="0x0">
    <title>EVAP Engine-Off Test - Vacuum Phase Flat Band Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: lower edge of the band in which the vacuum phase counts the tank as not building vacuum. Stock -0.30 inH2O. Tank readings are vacuum: positive is vacuum, negative is pressure. Effect: more negative = more pressure still counts as flat Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334D4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x35B" flags="0x0">
    <title>EVAP Engine-Off Test - Vacuum Phase Flat Band High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: upper edge of the band in which the vacuum phase counts the tank as not building vacuum; also the smallest vacuum peak that the peak fall-back check accepts. Stock 0.30 inH2O. Effect: raise = more vacuum still counts as flat Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334D6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x35C" flags="0x0">
    <title>EVAP Engine-Off Test - Vacuum Target Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: smallest vacuum target the vacuum phase may use (the target is otherwise the reference less the pressure already reached). Stock 0 inH2O. Effect: raise = the vacuum phase always needs at least this much vacuum to finish early Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334D8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x35D" flags="0x0">
    <title>EVAP Engine-Off Test - Pressure Peak Derate Factor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: factor applied to the stored pressure peak when the vent-open reading was below the derate level. Stock 0.50. Effect: lower = the pressure peak counts for less after a pressurised vent-open step Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334DA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>factor</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x35E" flags="0x0">
    <title>EVAP Engine-Off Test - Pressure Phase Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: longest time the pressure phase may last before the test moves on. Stock 2499 s. Effect: raise = the pressure phase may last longer Evidence: ledger:E0776, ledger:E0805, ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334E4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x35F" flags="0x0">
    <title>EVAP Engine-Off Test - Refuelling Confirm Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: when the test is disturbed and the fuel level has stayed changed for longer than this, the disturbance is put down to refuelling and not counted against the sensors. Stock 30 s. Effect: raise = the fuel level must stay changed longer to count as refuelling Evidence: ledger:E1053</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334E8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x360" flags="0x0">
    <title>EVAP Engine-Off Test - Disturbance Wait Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: how long a disturbed test waits before the disturbance is counted as a bad sample against the tank pressure sensor (P0454), the fuel level sensor (P0464) or the sensor zero (P0451). Stock 600 s. Effect: raise = a disturbance is counted later Evidence: ledger:E1053</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334EA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x361" flags="0x0">
    <title>EVAP Engine-Off Test - Vent Time Between Phases</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: how long the vent is held open between the pressure phase and the vacuum phase. Stock 45 s. Effect: raise = the tank is vented longer before the vacuum phase Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334EC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x362" flags="0x0">
    <title>EVAP Engine-Off Test - Total Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: once the engine has been off this long the test stops waiting and evaluates what it has. Stock 2500 s. Effect: raise = the test may run longer after shut-off Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334EE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x363" flags="0x0">
    <title>EVAP Engine-Off Test - Re-Vent Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: how long the vent is held open for a re-vent in the vacuum phase. Stock 300 s. Effect: raise = each re-vent lasts longer Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334F0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x364" flags="0x0">
    <title>EVAP Engine-Off Test - Zero Shift Limit, Upward</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tank pressure sensor zero check of the engine-off EVAP test (P0451): sensor voltage above the stored zero by this much is rated 1.0 and stops the test; smaller shifts are rated in proportion. Used from the second zero check of a test on. Stock 0.20 V. Effect: raise = a larger upward zero shift is tolerated Evidence: ledger:E1051</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334F2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>V</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>31.999512</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/2048"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x365" flags="0x0">
    <title>EVAP Engine-Off Test - Zero Shift Limit, Downward</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tank pressure sensor zero check of the engine-off EVAP test (P0451): the same for a sensor voltage below the stored zero. Used from the second zero check of a test on. Stock 0.20 V. Effect: raise = a larger downward zero shift is tolerated Evidence: ledger:E1051</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334F4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>V</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>31.999512</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/2048"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x366" flags="0x0">
    <title>EVAP Engine-Off Test - Zero Shift Limit, Upward (first check)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tank pressure sensor zero check of the engine-off EVAP test (P0451): upward limit used for the first zero check of a test. Stock 0.20 V. Effect: raise = a larger upward zero shift is tolerated Evidence: ledger:E1051</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334F6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>V</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>31.999512</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/2048"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x367" flags="0x0">
    <title>EVAP Engine-Off Test - Zero Shift Limit, Downward (first check)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tank pressure sensor zero check of the engine-off EVAP test (P0451): downward limit used for the first zero check of a test. Stock 0.20 V. Effect: raise = a larger downward zero shift is tolerated Evidence: ledger:E1051</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334F8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>V</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>31.999512</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/2048"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x368" flags="0x0">
    <title>EVAP Engine-Off Test - Tank Pressure Sensor Gain</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: tank pressure sensor slope used by this test, in inH2O of tank vacuum per volt away from the sensor zero. Stock 5.0. Change only for a different sensor. Effect: raise = the same sensor voltage change reads as more pressure Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D5A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>inH2O per V</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x369" flags="0x0">
    <title>EVAP Engine-Off Test - Unfinished Attempt Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: after this many enabled tests that did not finish, the time since the last test is restarted anyway. Stock 2. Effect: raise = more unfinished attempts are made before the wait starts again Evidence: ledger:E1053</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D5C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>count</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x36A" flags="0x0">
    <title>EVAP Engine-Off Test Enable - Trip Distance Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test only runs after a trip of at least this distance. Stock 5 km. Effect: raise = a longer trip is needed before the test runs Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D60" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>1048575.999756</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4096"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x36B" flags="0x0">
    <title>EVAP Engine-Off Test Enable - Vehicle Distance Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test only runs once the vehicle has covered this distance since new (the counter stops at 6436 km). Stock 16 km. Effect: raise = the test stays off for longer on a new vehicle Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D64" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>1048575.999756</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4096"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x36C" flags="0x0">
    <title>EVAP Engine-Off Test - Fuel Level Used on Sensor Fault</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: fuel level assumed while the fuel level sensor is faulted. Stock 50 %. Effect: changes the reference the test uses with a faulted sensor Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D68" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x36D" flags="0x0">
    <title>EVAP Engine-Off Test Enable - Fuel Level Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test only runs with the fuel level at or below this. Stock 85 %. Effect: raise = the test also runs with a fuller tank Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D6E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x36E" flags="0x0">
    <title>EVAP Engine-Off Test Enable - Fuel Level Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test only runs with the fuel level at or above this. Stock 15 %. Effect: lower = the test also runs with an emptier tank Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D70" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x36F" flags="0x0">
    <title>EVAP Engine-Off Test Enable - Ambient Temperature Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test only runs with ambient air temperature at or below this. Stock 32 degC. Effect: raise = the test also runs on hotter days Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D72" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x370" flags="0x0">
    <title>EVAP Engine-Off Test Enable - Ambient Temperature Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test only runs with ambient air temperature at or above this. Stock 2 degC. Effect: lower = the test also runs in colder weather Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D74" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x371" flags="0x0">
    <title>EVAP Engine-Off Test Enable - Coolant Temperature at Shut-Off Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test only runs when coolant temperature at engine shut-off was at or above this. Stock 70 degC. Effect: lower = the test also runs after a cooler shut-off Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D78" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x372" flags="0x0">
    <title>EVAP Engine-Off Test - Fuel Vapour Temperature Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: how fast its filtered fuel vapour temperature follows the sensor, as the fraction of the gap closed per update. Stock 0.10. Effect: lower = the temperature is smoothed more Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D7A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x373" flags="0x0">
    <title>EVAP Engine-Off Test - Tank Pressure Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: how fast the tank reading its phases use follows the sensor, as the fraction of the gap closed per update. Stock 0.0625. Effect: lower = the tank reading is smoothed more (slower to react) Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D7C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x374" flags="0x0">
    <title>EVAP Engine-Off Test - Disturbance Check Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: filter on the tank reading used by the disturbance check, as the fraction of the gap closed per update. Stock 0.05. Effect: lower = the disturbance check sees a smoother tank reading Evidence: ledger:E1053</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D7E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x375" flags="0x0">
    <title>EVAP Engine-Off Test - Disturbance Check Sample Jump Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: the disturbance check ignores a pass in which the unfiltered tank reading jumped by this much or more from the previous sample. Stock 1.0 inH2O. Effect: raise = larger sample-to-sample jumps are still judged Evidence: ledger:E1053</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D80" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>63.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x376" flags="0x0">
    <title>EVAP Engine-Off Test - Disturbance Pressure Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: a filtered tank reading at or below this with the vent closed flags a disturbance. Stock -4.0 inH2O (4 inH2O of pressure). Tank readings are vacuum: positive is vacuum, negative is pressure. Effect: more negative = more tank pressure is tolerated before a disturbance is flagged Evidence: ledger:E1053</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D82" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x377" flags="0x0">
    <title>EVAP Engine-Off Test Enable - Engine Run Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test only runs after the engine has run at least this long on the trip. Stock 600 s. Effect: raise = a longer run is needed before the test runs Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D84" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x378" flags="0x0">
    <title>EVAP Engine-Off Test Enable - Time Since Last Test, After a Good Result</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: engine run time plus soak time that must pass since the last test when that test gave a good result. Stock 17 h. Effect: raise = the test runs less often after a good result Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D86" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>h</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>127.998047</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/512"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x379" flags="0x0">
    <title>EVAP Engine-Off Test Enable - Time Since Last Test</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: engine run time plus soak time that must pass since the last test in the other cases. Stock 10 h. Effect: raise = the test runs less often Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D88" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>h</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>127.998047</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/512"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x37A" flags="0x0">
    <title>EVAP Engine-Off Test - Start Delay After Shut-Off</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test takes over this long after the engine stops. Stock 6 s. Effect: raise = the test starts later after shut-off Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D8E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x37B" flags="0x0">
    <title>EVAP Engine-Off Test - Trip Distance Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: the trip distance it requires only counts while vehicle speed is at or above this. Stock 1.6 km/h. Effect: raise = slow driving no longer counts toward the trip distance Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33D90" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x37C" flags="0x0">
    <title>EVAP Engine-Off Test - Disturbance Check Interval</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: the disturbance check compares the filtered tank reading with a snapshot that is refreshed this often. Stock 1.0 s. Effect: raise = the check looks at pressure changes over a longer interval Evidence: ledger:E0776, ledger:E0805, ledger:E1053</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33E6A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x37D" flags="0x0">
    <title>EVAP Engine-Off Service Test - Ambient Temperature Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP service test (the scan tool started version of the leak test) only runs with ambient air temperature at or below this while the PCM&#x27;s ambient estimate is not yet valid. Stock 40 degC. Effect: raise = the service test also runs when hotter Evidence: ledger:E1055</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33E90" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x37E" flags="0x0">
    <title>EVAP Engine-Off Service Test - Ambient Temperature Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP service test (the scan tool started version of the leak test) only runs with ambient air temperature at or above this while the PCM&#x27;s ambient estimate is not yet valid. Stock 2 degC. Effect: lower = the service test also runs when colder Evidence: ledger:E1055</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33E92" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x37F" flags="0x0">
    <title>EVAP Engine-Off Service Test - Engine Run Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP service test (the scan tool started version of the leak test) only runs after the engine has run at least this long (the scan tool shows the time still to go). Stock 1200 s. Effect: raise = a longer run is needed before the service test Evidence: ledger:E1055</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33E94" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x380" flags="0x0">
    <title>EVAP Engine-Off Service Test - Trip Distance Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP service test (the scan tool started version of the leak test) only runs after a trip of at least this distance (the scan tool shows the distance still to go). Stock 16.1 km (10 miles). Effect: raise = a longer drive is needed before the service test Evidence: ledger:E1055</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33E98" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>1048575.999756</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4096"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x381" flags="0x0">
    <title>EVAP Engine-Off Test - Vent Command Mismatch Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: the test is ended when the vent valve command has differed from what the test asked for, for this long. Stock 0.5 s. Effect: raise = a longer mismatch is tolerated before the test ends Evidence: ledger:E1055</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33E9C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x382" flags="0x0">
    <title>EVAP Engine-Off Test Enable - Barometric Pressure Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test only runs with barometric pressure at or above this. Stock 74 kPa. Effect: raise = the test stops running at lower altitude Evidence: ledger:E1052</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33E9E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x383" flags="0x0">
    <title>EVAP Engine-Off Test - Fuel Level Change Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: a fuel level that differs from the level at the start of the test by more than this disturbs the test (and, if it lasts, counts as refuelling). Stock 20 %. Effect: raise = a larger fuel level change is tolerated during the test Evidence: ledger:E1053</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33EA4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x384" flags="0x30">
    <title>P0134 / P0140 Check - Throttle Change Size</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor activity check (P0134 upstream, P0140 downstream): a throttle movement is counted when throttle area changes by at least this between two updates. Stock 1.0 % of full throttle area. Effect: raise = only larger throttle movements are counted Evidence: ledger:E0995</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x342DE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% area</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.000000</max>
      <MATH equation="X/327.675"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x385" flags="0x0">
    <title>P0132 / P0138 Check - Start Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor high voltage check (P0132 upstream, P0138 downstream): sampling starts once its run conditions have held for this long. Stock 2.0 s. Effect: raise = conditions must hold longer before sampling starts Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x342E8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x386" flags="0x0">
    <title>P0131 / P0137 Check - Start Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor low voltage check (P0131 upstream, P0137 downstream): sampling starts once its run conditions have held for this long. Stock 2.0 s. Effect: raise = conditions must hold longer before sampling starts Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x342EA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x387" flags="0x30">
    <title>O2 Lean In Power Enrichment Check - Enrichment Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor lean in power enrichment check (sets P0131 upstream, P0137 downstream): sampling starts once power enrichment has been active for this long. Stock 2.0 s upstream, 3.0 s downstream. Effect: raise = power enrichment must last longer before the check samples Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x342EC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>3276.750000</max>
      <MATH equation="X/20"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x388" flags="0x30">
    <title>O2 Rich In Fuel Cut Check - Fuel Cut Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor rich in deceleration fuel cut check (sets P0132 upstream, P0138 downstream): sampling starts once fuel has been cut for this long. Stock 2.0 s upstream, 3.0 s downstream. Effect: raise = the fuel cut must last longer before the check samples Evidence: ledger:E0997</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x342F4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>3276.750000</max>
      <MATH equation="X/20"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x389" flags="0x30">
    <title>P0131 / P0137 Check Enable - Throttle Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor low voltage check (P0131 upstream, P0137 downstream): samples only while throttle position, with the share used for idle air taken out, is at or above this. Stock 15 %. Effect: lower = the check also samples at smaller throttle openings Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x342FC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.003052</max>
      <MATH equation="X/327.67"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x38A" flags="0x30">
    <title>P0131 / P0137 Check Enable - Throttle Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor low voltage check (P0131 upstream, P0137 downstream): samples only while throttle position, with the share used for idle air taken out, is at or below this. Stock 50 %. Effect: raise = the check also samples at larger throttle openings Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34304" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.003052</max>
      <MATH equation="X/327.67"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x38B" flags="0x30">
    <title>P0132 / P0138 Check Enable - Throttle Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor high voltage check (P0132 upstream, P0138 downstream): samples only while throttle position, with the share used for idle air taken out, is at or above this. Stock 0 % upstream, 15 % downstream. Effect: lower = the check also samples at smaller throttle openings Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3430C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.003052</max>
      <MATH equation="X/327.67"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x38C" flags="0x30">
    <title>P0132 / P0138 Check Enable - Throttle Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor high voltage check (P0132 upstream, P0138 downstream): samples only while throttle position, with the share used for idle air taken out, is at or below this. Stock 50 %. Effect: raise = the check also samples at larger throttle openings Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34314" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.003052</max>
      <MATH equation="X/327.67"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x38D" flags="0x0">
    <title>O2 Rich In Fuel Cut Check - Enrichment EQ Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor rich in deceleration fuel cut check (sets P0132 upstream, P0138 downstream): after the commanded EQ ratio has been at or above this, the downstream sensor is not checked for about as long as that enrichment lasted. Stock 1.002. Effect: raise = only stronger enrichment holds off the downstream check Evidence: ledger:E0997</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3431C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>EQ</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>63.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x38E" flags="0x0">
    <title>O2 Voltage Checks Enable - Commanded EQ Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The O2 sensor low and high voltage checks (P0131 / P0132 / P0137 / P0138) sample only while commanded EQ ratio is at or above this. Stock 0.990. Effect: lower = the checks also sample with a leaner commanded mixture Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3431E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>EQ</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>63.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x38F" flags="0x0">
    <title>O2 Voltage Checks Enable - Commanded EQ Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The O2 sensor low and high voltage checks (P0131 / P0132 / P0137 / P0138) sample only while commanded EQ ratio is at or below this. Stock 1.010. Effect: raise = the checks also sample with a richer commanded mixture Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34320" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>EQ</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>63.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x390" flags="0x0">
    <title>P0134 / P0140 Check Enable - Engine Run Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor activity check (P0134 upstream, P0140 downstream): runs only after the engine has been running longer than this. Stock 200 s. Effect: lower = the check can start sooner after a start Evidence: ledger:E0995</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34322" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x391" flags="0x0">
    <title>P0140 Early Pass - Engine Run Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor activity check, early pass for the downstream sensor (P0140): the early pass can only happen while engine run time is at or below this. Stock 100 s. Effect: raise = the early pass stays available longer after a start Evidence: ledger:E0995</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34324" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x392" flags="0x0">
    <title>O2 Power Enrichment / Fuel Cut Checks Enable - Engine Run Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The O2 sensor checks made during power enrichment and during deceleration fuel cut only run after the engine has been running longer than this. Stock 200 s. Effect: lower = those checks can run sooner after a start Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34326" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x393" flags="0x0">
    <title>P0135 Check - Test Duty</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater current check (P0135 upstream, P0141 downstream): upstream heater duty commanded while the check measures heater current. Stock 25 %. Effect: raise = the check measures at a higher duty Evidence: ledger:E1062</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34332" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x394" flags="0x0">
    <title>P0141 Check - Test Duty</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater current check (P0135 upstream, P0141 downstream): downstream heater duty commanded while the check measures heater current. Stock 25 %. Effect: raise = the check measures at a higher duty Evidence: ledger:E1062</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34334" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x395" flags="0x0">
    <title>P0135 / P0141 Check - Window Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater check (P0135 upstream, P0141 downstream): a test that collects more than this many samples without failing passes. Stock 50. Effect: raise = each heater test is longer Evidence: ledger:E0996</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34336" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x396" flags="0x0">
    <title>P0135 / P0141 Check Enable - RPM Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater check (P0135 upstream, P0141 downstream): a test only starts while engine speed is at or above this. Stock 1000 rpm. Effect: raise = the test needs a higher rpm to start Evidence: ledger:E0996</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34338" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x397" flags="0x0">
    <title>P0135 / P0141 Check Enable - RPM Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater check (P0135 upstream, P0141 downstream): a test only starts while engine speed is at or below this. Stock 2500 rpm. Effect: raise = the test can also start at higher rpm Evidence: ledger:E0996</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3433A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x398" flags="0x0">
    <title>P0135 / P0141 Check Enable - Airflow Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater check (P0135 upstream, P0141 downstream): a test only starts while mass airflow is at or above this. Stock 15 g/s. Effect: raise = the test needs more airflow to start Evidence: ledger:E0996</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3433C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x399" flags="0x0">
    <title>P0135 / P0141 Check Enable - Airflow Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater check (P0135 upstream, P0141 downstream): a test only starts while mass airflow is at or below this. Stock 30 g/s. Effect: raise = the test can also start at higher airflow Evidence: ledger:E0996</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3433E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x39A" flags="0x0">
    <title>P0135 / P0141 Check Enable - Coolant Temp Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater check (P0135 upstream, P0141 downstream): a test only starts with coolant temperature at or above this. Stock 70 C. Effect: lower = the test can start on a cooler engine Evidence: ledger:E0996</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34340" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x39B" flags="0x0">
    <title>P0135 / P0141 Check Enable - Engine Run Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater check (P0135 upstream, P0141 downstream): a test only starts once the engine has been running at least this long. Stock 230 s. Effect: lower = the test can start sooner after a start Evidence: ledger:E0996</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34342" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x39C" flags="0x0">
    <title>P0135 / P0141 Check - Time Between Tests</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater check (P0135 upstream, P0141 downstream): a new test only starts once this long has passed since the previous test finished. Stock 20 s. Effect: raise = heater tests are spaced further apart Evidence: ledger:E0996</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34344" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x39D" flags="0x0">
    <title>P0135 / P0141 Check - Test Duty Settle Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater current check (P0135 upstream, P0141 downstream): how long the test duty is applied before current samples are judged. Stock 1 s. Effect: raise = the check waits longer before judging current Evidence: ledger:E1062</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34346" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x39E" flags="0x0">
    <title>P0135 / P0141 Check - Repeat Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater current check (P0135 upstream, P0141 downstream): the check is run again while the number of completed checks this trip is at or below this (stock 1 = two checks per trip). Effect: raise = more heater current checks per trip Evidence: ledger:E1062</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34348" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>count</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x39F" flags="0x30">
    <title>P0135 / P0141 Check - Heater Current Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater current check (P0135 upstream, P0141 downstream): a sample counts against the heater when heater current at the test duty is below this. Stock 0.73 A upstream, 0.60 A downstream. Effect: raise = more heater current is needed to pass Evidence: ledger:E1062</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="upstream (P0135)" />
      <LABEL index="1" value="downstream (P0141)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3434A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>A</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>255.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3A0" flags="0x30">
    <title>P0135 / P0141 Check - Heater Current Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater current check (P0135 upstream, P0141 downstream): a sample counts against the heater when heater current at the test duty is above this. Stock 2.70 A upstream, 2.30 A downstream. Effect: raise = more heater current is tolerated Evidence: ledger:E1062</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="upstream (P0135)" />
      <LABEL index="1" value="downstream (P0141)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34352" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>A</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>255.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3A1" flags="0x30">
    <title>P0134 / P0140 Check - Inactive Voltage Band High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor activity check (P0134 upstream, P0140 downstream): a sample counts as inactive when the sensor reads below this and above the band low limit. Stock 500 mV upstream, 475 mV downstream. Effect: lower = the inactive band gets narrower Evidence: ledger:E0995</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3436E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>-2048.000000</min>
      <max>2047.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3A2" flags="0x30">
    <title>P0134 / P0140 Check - Throttle Changes Needed To Fail</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor activity check (P0134 upstream, P0140 downstream): a failing test window only sets the code if at least this many throttle movements were counted during it, otherwise the window is thrown away. Stock 3. Effect: raise = more throttle movements are needed before the code can set Evidence: ledger:E0995</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34376" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>count</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3A3" flags="0x30">
    <title>P0131 / P0137 Check - Low Voltage Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor low voltage check (P0131 upstream, P0137 downstream): a sample counts as low when the sensor reads below this. Stock 50 mV. Effect: raise = higher sensor readings also count as low Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3437E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>-2048.000000</min>
      <max>2047.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3A4" flags="0x30">
    <title>P0134 / P0140 Check - Window Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor activity check (P0134 upstream, P0140 downstream): a test window that reaches this many samples without failing passes. Stock 1000. Effect: raise = each test window is longer Evidence: ledger:E0995</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34386" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3A5" flags="0x30">
    <title>O2 Lean In Power Enrichment Check - Window Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor lean in power enrichment check (sets P0131 upstream, P0137 downstream): a test window that reaches this many samples without failing passes. Stock 100. Effect: raise = each test window is longer Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3438E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3A6" flags="0x30">
    <title>O2 Rich In Fuel Cut Check - Window Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor rich in deceleration fuel cut check (sets P0132 upstream, P0138 downstream): a test window that reaches this many samples without failing passes. Stock 100. Effect: raise = each test window is longer Evidence: ledger:E0997</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34396" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3A7" flags="0x30">
    <title>P0131 / P0137 Check - Window Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor low voltage check (P0131 upstream, P0137 downstream): a test window that reaches this many samples without failing passes. Stock 1000. Effect: raise = each test window is longer Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3439E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3A8" flags="0x30">
    <title>P0132 / P0138 Check - Window Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor high voltage check (P0132 upstream, P0138 downstream): a test window that reaches this many samples without failing passes. Stock 150 upstream, 1000 downstream. Effect: raise = each test window is longer Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x343A6" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3A9" flags="0x30">
    <title>P0134 / P0140 Check - Fail Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor activity check (P0134 upstream, P0140 downstream): a test window fails once more than this many of its samples are inactive. Stock 950. Effect: raise = more inactive samples are needed to fail a window Evidence: ledger:E0995</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x343AE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3AA" flags="0x30">
    <title>P0131 / P0137 Check - Fail Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor low voltage check (P0131 upstream, P0137 downstream): a test window fails once this many of its samples are low. Stock 950. Effect: raise = more low samples are needed to fail a window Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x343BE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3AB" flags="0x30">
    <title>P0132 / P0138 Check - Fail Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor high voltage check (P0132 upstream, P0138 downstream): a test window fails once this many of its samples are high. Stock 140 upstream, 950 downstream. Effect: raise = more high samples are needed to fail a window Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x343CE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3AC" flags="0x30">
    <title>O2 Lean In Power Enrichment Check - Fail Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor lean in power enrichment check (sets P0131 upstream, P0137 downstream): the code sets once this many samples in a test window are lean. Stock 95. Effect: raise = more lean samples are needed to set the code Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x343D6" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3AD" flags="0x30">
    <title>O2 Rich In Fuel Cut Check - Fail Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor rich in deceleration fuel cut check (sets P0132 upstream, P0138 downstream): the code sets once this many samples in a test window are rich. Stock 95. Effect: raise = more rich samples are needed to set the code Evidence: ledger:E0997</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x343DE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3AE" flags="0x30">
    <title>P0131 / P0137 Check - Failed Windows To Set</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor low voltage check (P0131 upstream, P0137 downstream): the code sets after this many failed test windows in a row. Stock 1. When both sensors fail together, the code is held back for a sensor whose partner sensor has its own failed window flagged, so only the first one reports. Effect: raise = more failed windows in a row are needed to set the code Evidence: ledger:E0994, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x343E6" mmedelementsizebits="8" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>windows</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>255.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3AF" flags="0x30">
    <title>P0132 / P0138 Check - Failed Windows To Set</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor high voltage check (P0132 upstream, P0138 downstream): the code sets after this many failed test windows in a row. Stock 1. When both sensors fail together, the code is held back for a sensor whose partner sensor has its own failed window flagged, so only the first one reports. Effect: raise = more failed windows in a row are needed to set the code Evidence: ledger:E0994, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x343EA" mmedelementsizebits="8" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>windows</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>255.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3B0" flags="0x30">
    <title>P0132 / P0138 Check - High Voltage Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor high voltage check (P0132 upstream, P0138 downstream): a sample counts as high when the sensor reads above this. Stock 1000 mV. Effect: lower = lower sensor readings also count as high Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x343FE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>-2048.000000</min>
      <max>2047.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3B1" flags="0x30">
    <title>O2 Lean In Power Enrichment Check - Lean Voltage Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor lean in power enrichment check (sets P0131 upstream, P0137 downstream): a sample counts as lean when the sensor reads below this while power enrichment is active. Stock 550 mV upstream, 650 mV downstream. Effect: lower = the sensor must read leaner before a sample counts against it Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34406" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>-2048.000000</min>
      <max>2047.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3B2" flags="0x30">
    <title>O2 Rich In Fuel Cut Check - Rich Voltage Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor rich in deceleration fuel cut check (sets P0132 upstream, P0138 downstream): a sample counts as rich when the sensor reads above this while fuel is cut. Stock 350 mV upstream, 300 mV downstream. Effect: raise = the sensor must read richer before a sample counts against it Evidence: ledger:E0997</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3440E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>-2048.000000</min>
      <max>2047.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x3B3" flags="0x0">
    <title>P0335 Check Enable - RPM Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Crank sensor no-signal check (P0335): only runs while engine speed is below this. Stock 2000 rpm. Effect: raise = the check also runs at higher rpm Evidence: ledger:E1026</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34432" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3B4" flags="0x0">
    <title>P0335 Fail Time - Starter Engaged</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Crank sensor no-signal check (P0335): with the starter engaged and the MAF signal either at or above its threshold or faulted, the code sets after this long without a valid crank signal. Stock 4.0 s. Effect: raise = longer cranking without a crank signal before the code sets Evidence: ledger:E1026</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34434" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3B5" flags="0x0">
    <title>P0335 Check Enable - Airflow Minimum, Signal Lost</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Crank sensor no-signal check (P0335): outside the starter-engaged case, the check runs only after a crank signal had been established and while mass airflow is at or above this. Stock 3 g/s. Effect: raise = more airflow is needed for the signal-lost case Evidence: ledger:E1026</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34438" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3B6" flags="0x0">
    <title>P0335 Fail Time - Signal Lost</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Crank sensor no-signal check (P0335): outside the starter-engaged case (crank signal lost while air is still flowing), the code sets after this long without a valid crank signal. Stock 2.0 s. Effect: raise = a longer signal loss is tolerated Evidence: ledger:E1026</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3443A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x3B7" flags="0x30">
    <title>Cam Angle Test - Fail Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam angle test (sets P0017 on this engine; runs with the cam phaser parked): bad samples that set the code. Stock 25. The second value belongs to the other cam input, which this test does not check. Effect: raise = more bad samples are needed to set the code Evidence: ledger:E1080</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>input</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="cam input reporting P0365 / P0366 / P0017" />
      <LABEL index="1" value="cam input reporting P0340 / P0341 / P0016" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3447E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3B8" flags="0x30">
    <title>Cam Angle Test - Pass Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam angle test (sets P0017 on this engine; runs with the cam phaser parked): samples without reaching the fail count that pass the test. Stock 35. The second value belongs to the other cam input, which this test does not check. Effect: raise = the test needs more samples to pass Evidence: ledger:E1080</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>input</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="cam input reporting P0365 / P0366 / P0017" />
      <LABEL index="1" value="cam input reporting P0340 / P0341 / P0016" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34486" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x3B9" flags="0x30">
    <title>Cam Signal Lost Test - Fail Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam position sensor signal lost test (P0365 / P0340): time without the pass counts after which the code sets. Stock 3 s. Effect: raise = the cam signal may be missing longer before the code sets Evidence: ledger:E1080</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>input</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="cam input reporting P0365 / P0366 / P0017" />
      <LABEL index="1" value="cam input reporting P0340 / P0341 / P0016" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3451E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>3276.750000</max>
      <MATH equation="X/20"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x3BA" flags="0x0">
    <title>P0446 Fail - Vacuum Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP vent restriction check (P0446): with the vent open and purge flowing, time tank vacuum must stay above the vacuum limit to fail. Stock 5 s. Effect: raise = vacuum must persist longer before P0446 sets Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34536" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3BB" flags="0x0">
    <title>P0446 Fail - Vacuum Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP vent restriction check (P0446): tank vacuum, with the vent commanded open and purge flowing, above which the vent is judged restricted. Stock 10 inH2O. Effect: raise = more vacuum is tolerated with the vent open Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34538" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3BC" flags="0x0">
    <title>EVAP Test - Tank at Atmosphere Window, Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-running EVAP test: lower edge of the tank vacuum window that counts as the tank being at atmosphere (negative = pressure). The purge valve check starts and the vent check proceeds only inside the window; tank pressure beyond this edge during the pull-down voids a gross leak failure. Stock -2.5 inH2O. Effect: lower = more tank pressure still counts as atmosphere Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34E0C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3BD" flags="0x0">
    <title>EVAP Test - Tank at Atmosphere Window, High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-running EVAP test: upper edge of the tank vacuum window that counts as the tank being at atmosphere. Stock 5 inH2O. Effect: raise = more residual vacuum still counts as atmosphere Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34E0E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3BE" flags="0x0">
    <title>P0446 Pass - Purge Volume</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP vent restriction check (P0446): purge volume that must flow with the vent open, without tank vacuum building, to pass. Stock 10 L. Effect: raise = more purge must flow before the vent check passes Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34E12" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>L</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1024.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4194304"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3BF" flags="0x0">
    <title>P0446 Fail - Bleed Down Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP vent restriction check (P0446): longest time for the tank vacuum to return to the atmosphere window after the vent is opened; longer fails. Stock 15 s. Effect: raise = the vent may take longer to bleed the vacuum off Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34E16" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3C0" flags="0x0">
    <title>EVAP Test - Barometric Pressure Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-running EVAP test (P0455 / P0446 / P0496) run condition: lowest barometric pressure at which the test runs. Stock 74 kPa. Effect: lower = the test also runs at higher altitude Evidence: ledger:E1072</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34E20" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3C1" flags="0x0">
    <title>EVAP Test - Voltage Out of Range Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-running EVAP test (P0455 / P0446 / P0496) run condition: time system voltage may be outside its window before the test is switched off for the trip. Stock 12 s. Effect: raise = a longer voltage excursion is tolerated Evidence: ledger:E1072</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34E2A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3C2" flags="0x0">
    <title>EVAP Test - Fuel Level Out of Range Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-running EVAP test (P0455 / P0446 / P0496) run condition: time fuel level may be outside its window before the test is switched off for the trip. Stock 15 s. Effect: raise = a longer fuel level excursion is tolerated Evidence: ledger:E1072</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34E2E" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>214748364.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3C3" flags="0x0">
    <title>EVAP Test - System Voltage Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-running EVAP test (P0455 / P0446 / P0496) run condition: lowest system voltage. Stock 11 V. Effect: lower = the test also runs at lower voltage Evidence: ledger:E1072</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34E32" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3C4" flags="0x0">
    <title>EVAP Test - System Voltage Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-running EVAP test (P0455 / P0446 / P0496) run condition: highest system voltage. Stock 18 V. Effect: raise = the test also runs at higher voltage Evidence: ledger:E1072</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34E34" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3C5" flags="0x0">
    <title>EVAP Test - Fuel Level Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-running EVAP test (P0455 / P0446 / P0496) run condition: lowest fuel level. Stock 15 %. Effect: lower = the test also runs with less fuel Evidence: ledger:E1072</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34E36" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3C6" flags="0x0">
    <title>EVAP Test - Intake Air Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-running EVAP test (P0455 / P0446 / P0496) run condition: highest intake air temperature. Stock 30 C. Effect: raise = the test also runs in warmer air Evidence: ledger:E1072</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34E4E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3C7" flags="0x0">
    <title>EVAP Test - Startup Coolant Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-running EVAP test (P0455 / P0446 / P0496) run condition: highest coolant temperature at engine start (the test needs a cold start). Stock 30 C. Effect: raise = the test also runs after a warmer start Evidence: ledger:E1072</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34E50" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3C8" flags="0x0">
    <title>EVAP Test - Intake Air Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-running EVAP test (P0455 / P0446 / P0496) run condition: lowest intake air temperature. Stock 4 C. Effect: lower = the test also runs in colder air Evidence: ledger:E1072</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34E5A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3C9" flags="0x0">
    <title>EVAP Test - Fuel Level Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-running EVAP test (P0455 / P0446 / P0496) run condition: highest fuel level. Stock 85 %. Effect: raise = the test also runs with a fuller tank Evidence: ledger:E1072</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34E5C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3CA" flags="0x0">
    <title>Monitor Enable, Minimum Engine Run Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The diagnostic monitor that uses this gate is skipped until the engine has been running at least this long since start. Stock 10 seconds. Effect: raise = the monitor waits longer after start before it can run Evidence: ledger:E0217, ledger:E0775, ledger:E0811</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FB0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3CB" flags="0x0">
    <title>EVAP Test - Abort Tank Pressure</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-running EVAP test: with the vent commanded closed, tank vacuum below this (negative = pressure in the tank) aborts the test for the trip. Stock -2.5 inH2O. Effect: lower = more tank pressure is tolerated before the test is aborted Evidence: ledger:E1072</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FCE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3CC" flags="0x0">
    <title>EVAP Test - Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-running EVAP test: engine run time after which an unfinished test is ended for the trip. Stock 1000 s. Effect: raise = the test may finish later in the trip Evidence: ledger:E1072</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FD8" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>214748364.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3CD" flags="0x0">
    <title>P0496 Test - Atmosphere Wait</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP purge valve leak check (P0496): longest wait for the tank to reach the atmosphere window before the check; after it the check is skipped. Stock 15 s. Effect: raise = the check waits longer for the tank to settle Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FE0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3CE" flags="0x0">
    <title>P0496 Fail - Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP purge valve leak check (P0496): with purge commanded off and the vent closed, time tank vacuum must stay above the limit to fail. Stock 5 s. Effect: raise = vacuum must persist longer before P0496 sets Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FE2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3CF" flags="0x0">
    <title>P0496 Test - Manifold Vacuum Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP purge valve leak check (P0496): least manifold vacuum for test time to count toward a pass. Stock 0 kPa (always counts). Effect: raise = pass time only counts with more manifold vacuum Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FE4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3D0" flags="0x0">
    <title>P0496 Fail - Vacuum Limit, Cold Start</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP purge valve leak check (P0496): tank vacuum, with purge commanded off and the vent closed, above which the purge valve is judged leaking; used when startup coolant is below the cold start temperature. Stock 10 inH2O. Effect: raise = more vacuum is tolerated with purge off Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FE6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3D1" flags="0x0">
    <title>P0496 Fail - Vacuum Limit, Warm Start</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP purge valve leak check (P0496): same limit when startup coolant is at or above the cold start temperature. Stock 10 inH2O. Effect: raise = more vacuum is tolerated with purge off Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FE8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3D2" flags="0x0">
    <title>P0496 Pass - Time, Warm Start</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP purge valve leak check (P0496): time with purge off without the vacuum limit being exceeded that passes the check, warm start. Stock 60 s. Effect: raise = the check runs longer before it passes Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FEC" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>214748364.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3D3" flags="0x0">
    <title>P0496 Test - Cold Start Coolant Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP purge valve leak check (P0496): startup coolant temperature below which the cold start limit and pass time are used. Stock 30 C. Effect: raise = more starts use the cold start values Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FF6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3D4" flags="0x0">
    <title>P0455 Test - Tank Pressure Void Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP gross leak test (P0455): time the tank may show pressure beyond the low edge of the atmosphere window during the pull-down before a gross leak failure of this test is disregarded. Stock 5 s. Effect: raise = pressure must persist longer before a failure is disregarded Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35600" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3D5" flags="0x0">
    <title>P0455 Pass - Vacuum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP gross leak test (P0455): tank vacuum that passes the test when reached during the pull-down. Stock 8 inH2O. Effect: lower = less vacuum is enough to pass the gross leak test Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35602" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3D6" flags="0x0">
    <title>P0455 Fail - Purge Volume</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP gross leak test (P0455): purge volume drawn from the sealed system without reaching the pass vacuum that fails the test. Stock 15 L. Effect: raise = more purge may be drawn before the gross leak test fails Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35604" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>L</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1024.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4194304"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3D7" flags="0x0">
    <title>Fuel Tank Pressure Sensor - Zero Voltage Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel tank pressure sensor: lowest sensor voltage accepted as the zero (tank at atmosphere) when the zero is learned at a cold key-on. Stock 1.20 V. Effect: lower = a lower sensor voltage is accepted as the zero Evidence: ledger:E1073</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35622" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3D8" flags="0x0">
    <title>Fuel Tank Pressure Sensor - Zero Voltage Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel tank pressure sensor: highest sensor voltage accepted as the zero when the zero is learned at a cold key-on. Stock 1.80 V. Effect: raise = a higher sensor voltage is accepted as the zero Evidence: ledger:E1073</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35624" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3D9" flags="0x0">
    <title>Fuel Tank Pressure Sensor - Gain</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel tank pressure sensor: tank vacuum per volt of sensor signal away from the learned zero, used by the engine-running EVAP test. Stock 5.0 inH2O per V. Change only for a different sensor. Effect: raise = the same sensor voltage reads as more vacuum Evidence: ledger:E1073</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35626" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>inH2O per V</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3DA" flags="0x0">
    <title>EVAP Re-Check - Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP gross leak re-check (runs on a later trip after a gross leak failure, P0455): longest time the re-check keeps trying before it gives up for the trip. Stock 600 s. Effect: raise = the re-check tries longer Evidence: ledger:E1073</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x356CC" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>214748364.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3DB" flags="0x0">
    <title>EVAP Re-Check - Purge Ramp Down Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP gross leak re-check (runs on a later trip after a gross leak failure, P0455): length of the opening step, in which purge is ramped down with the vent closed. Stock 25.5 s. Effect: raise = the opening ramp lasts longer Evidence: ledger:E1073</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x356D0" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>214748364.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3DC" flags="0x0">
    <title>EVAP Re-Check - Pass Vacuum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP gross leak re-check (runs on a later trip after a gross leak failure, P0455): tank vacuum that passes the re-check when held for the pass time. Stock 8 inH2O. Effect: lower = less vacuum passes the re-check Evidence: ledger:E1073</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x356D8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3DD" flags="0x0">
    <title>EVAP Re-Check - Ramp Purge Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP gross leak re-check (runs on a later trip after a gross leak failure, P0455): least commanded purge during the opening ramp. Stock 3 %. Effect: raise = purge stays higher during the opening ramp Evidence: ledger:E1073</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x356DA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.781250</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/326.4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3DE" flags="0x0">
    <title>EVAP Re-Check - Purge Ramp Down Rate</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP gross leak re-check (runs on a later trip after a gross leak failure, P0455): rate at which commanded purge is lowered during the opening step. Stock 4.7 % per second. Effect: raise = purge is ramped down faster Evidence: ledger:E1073</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x356DC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% per s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>102798.201000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X*1.5686"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3DF" flags="0x0">
    <title>EVAP Re-Check - Pass Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP gross leak re-check (runs on a later trip after a gross leak failure, P0455): time tank vacuum must stay at or above the pass vacuum. Stock 5 s. Effect: raise = vacuum must hold longer to pass Evidence: ledger:E1073</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x356E0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x3E0" flags="0x30">
    <title>P0449 Circuit Check - Fault Count and Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP vent valve circuit check P0449: the code sets once the first value&#x27;s number of faulted samples is reached; if the second value&#x27;s number of samples is reached first, the check passes and both counts start again. Stock 100 and 120. Effect: raise the first value = more faulted samples are needed to set the code; raise the second = each window is longer Evidence: ledger:E1058</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>value</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="fault samples to fail" />
      <LABEL index="1" value="window samples to pass" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35776" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x3E1" flags="0x0">
    <title>Fuel Trim Monitor - Purge Off Test Wait Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): longest wait for a result of the purge-off test after a rich reading asked for it; then the request is dropped. Stock 600 s. Effect: raise = the monitor waits longer for the purge-off test Evidence: ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A04" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>6553.500000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/10"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3E2" flags="0x0">
    <title>Fuel Trim Monitor - Rich Segments to Fail</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): number of purge-off segments that read rich needed to set P0172. Stock 2. Effect: raise = more rich segments are needed before P0172 sets Evidence: ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A06" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>segments</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3E3" flags="0x0">
    <title>Fuel Trim Monitor - Not Rich Segments to Pass</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): number of purge-off segments that do not read rich needed to pass P0172. Stock 2. Effect: raise = more clean segments are needed to pass Evidence: ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A08" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>segments</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3E4" flags="0x0">
    <title>Fuel Trim Monitor - Segments per Test</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): most purge-off segments in one test; when they are used up without a verdict the test ends undecided. Stock 3. Effect: raise = a test may run more purge-off segments Evidence: ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A0A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>segments</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3E5" flags="0x0">
    <title>Fuel Trim Monitor - Unbroken Filtering Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): unbroken filtering time needed before each lean or rich evaluation. Stock 2 s. Effect: raise = evaluations come less often Evidence: ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A0E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>6553.500000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/10"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3E6" flags="0x0">
    <title>Fuel Trim Monitor - Purge Off Settle Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor purge-off test (P0172): time purge must have been at the test level, with the fuel trim settled, before the purge-off measurement starts. Stock 1 s. Effect: raise = the measurement starts later after purge is shut off Evidence: ledger:E1068</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A5A" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>26843545.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3E7" flags="0x0">
    <title>Fuel Trim Monitor - Purge Restore Settle Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor purge-off test (P0172): time after the measurement ends, with the fuel trim settled, before the trim hold is released and normal sampling resumes. Stock 1 s. Effect: raise = normal trim sampling resumes later after a test Evidence: ledger:E1068</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A5E" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>26843545.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3E8" flags="0x0">
    <title>Fuel Trim Monitor - Test Start Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor purge-off test (P0172): longest wait for the purge control and the fuel trim to accept the test request; after it the attempt is abandoned. Stock 2 s. Effect: raise = the test waits longer to start Evidence: ledger:E1068</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A6A" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>26843545.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3E9" flags="0x0">
    <title>Fuel Trim Monitor - Wait After a Test</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor purge-off test (P0172): wait before the next test after one in which at least one purge-off segment was evaluated. Stock 300 s. Effect: raise = purge-off tests repeat less often Evidence: ledger:E1068</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A6E" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>26843545.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3EA" flags="0x0">
    <title>Fuel Trim Monitor - Ramp Down Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor purge-off test (P0172): longest time to bring purge down to the test level in a non-purge fuel trim cell; after it the attempt is abandoned. Stock 10 s. Effect: raise = the ramp down may take longer Evidence: ledger:E1068</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A86" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>26843545.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3EB" flags="0x0">
    <title>Fuel Level Sender Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How fast the PCM&#x27;s filtered fuel level sender voltage follows the raw reading: the fraction of the gap closed per update. Stock 0.99 (almost no filtering). Effect: lower = the sender reading is smoothed more (slower to change) Evidence: ledger:E0956</description>
    <CATEGORYMEM index="0" category="10" />
    <EMBEDDEDDATA mmedaddress="0x35C0A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3EC" flags="0x0">
    <title>Fuel Level Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How fast the fuel level the PCM reports (fuel level PID) and uses follows the level looked up from the sender: the fraction of the gap closed per update. Stock 0.80. Effect: lower = the reported fuel level is smoothed more (slower to change) Evidence: ledger:E0956</description>
    <CATEGORYMEM index="0" category="10" />
    <EMBEDDEDDATA mmedaddress="0x35C08" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x3ED" flags="0x30">
    <title>P0230 Circuit Check - Fault Count and Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel pump relay circuit check P0230: the code sets once the first value&#x27;s number of faulted samples is reached; if the second value&#x27;s number of samples is reached first, the check passes and both counts start again. Stock 10 and 12. Effect: raise the first value = more faulted samples are needed to set the code; raise the second = each window is longer Evidence: ledger:E1058</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>value</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="fault samples to fail" />
      <LABEL index="1" value="window samples to pass" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35C64" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x3EE" flags="0x0">
    <title>P0506 - Idle Spark Correction Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0506 (idle rpm lower than expected) counts toward a fail while the idle spark correction, the spark the PCM adds to pull a low idle back up, is above this. Stock 50 deg, which the stock idle spark curves (up to 21 deg) never reach. Effect: lower = P0506 can set at a smaller idle spark correction Evidence: ledger:E0990</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35D02" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>deg</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3EF" flags="0x0">
    <title>P0507 - Idle Spark Correction Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0507 (idle rpm higher than expected) counts toward a fail while the idle spark correction, the spark the PCM removes to pull a high idle back down, is below this. Stock -20 deg, which the stock idle spark curves (down to -9 deg) never reach. Effect: raise (toward 0) = P0507 can set at a smaller idle spark correction Evidence: ledger:E0990</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35D04" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>deg</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3F0" flags="0x0">
    <title>P0506 / P0507 - Fail Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0506 / P0507 count a failure once the idle spark correction has stayed beyond its threshold for this long. Stock 12.75 s. Effect: raise = the idle speed codes take longer to set Evidence: ledger:E0990</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35D06" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>12.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3F1" flags="0x0">
    <title>Airflow Rationality - Coolant Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101): highest coolant temperature at which the test runs. Stock 125 C. Effect: lower = the test stops at a lower coolant temperature Evidence: ledger:E1066</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35D0A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3F2" flags="0x0">
    <title>Airflow Rationality - Coolant Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101): lowest coolant temperature at which the test runs. Stock 70 C. Effect: raise = the test waits for a warmer engine Evidence: ledger:E1066</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35D0C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3F3" flags="0x0">
    <title>Airflow Rationality - Throttle Airflow Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101), diagnostic model only: filter on the airflow modelled from throttle position; every 6.25 ms the filtered value moves this fraction of the way to the new value. Stock 0.20. Effect: raise = the modelled throttle airflow follows throttle changes faster Evidence: ledger:E1074</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35E52" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3F4" flags="0x0">
    <title>Airflow Rationality - Pressure Ratio Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101), diagnostic model only: highest ratio of manifold pressure to barometric pressure the throttle airflow model uses; above it the ratio is held and the modelled throttle airflow is capped by the modelled engine airflow. Stock 0.96. Effect: lower = the throttle airflow model is capped from a lower manifold pressure Evidence: ledger:E1074</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35E78" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3F5" flags="0x0">
    <title>Airflow Rationality - Airflow Difference Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101): filter on the difference between measured airflow and the airflow modelled from throttle position; each update the filtered difference moves this fraction of the way to the new reading. Stock 0.01 (it takes roughly 100 updates, about 10 s, to follow a change). Effect: raise = the airflow check reacts faster and is less smoothed Evidence: ledger:E1066</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35E7E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3F6" flags="0x0">
    <title>Airflow Rationality - Pressure Difference Limit, Airflow Model</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101): filtered difference, in either direction, between measured manifold pressure and the pressure modelled from measured airflow above which the second pressure check is failing. P0101 and P0106 need this check failing; with the throttle check it gives P1101. Stock 20 kPa. Effect: raise = a larger pressure disagreement is tolerated Evidence: ledger:E1066</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35E88" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3F7" flags="0x0">
    <title>Airflow Rationality - Throttle Check Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101): filter on the throttle check value (pressure difference times airflow difference); each update the filtered difference moves this fraction of the way to the new reading. Stock 0.01 (it takes roughly 100 updates, about 10 s, to follow a change). Effect: raise = the throttle check reacts faster and is less smoothed Evidence: ledger:E1066</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35E8A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3F8" flags="0x0">
    <title>Airflow Rationality - Throttle Check Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101): the pressure difference and the airflow difference against the throttle-based model are multiplied and filtered; above this value (both disagree with throttle position in the same direction) the throttle check is failing. Alone this sets P0121, with a failing second pressure check P1101. Stock 350. Effect: raise = a larger combined disagreement is tolerated Evidence: ledger:E1066</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35E8C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>kPa x g/s</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x3F9" flags="0x30">
    <title>P0201 to P0205 Circuit Check - Fault Count and Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Injector circuit checks P0201 to P0205 (one count pair per cylinder): the code sets once the first value&#x27;s number of faulted samples is reached; if the second value&#x27;s number of samples is reached first, the check passes and both counts start again. Stock 10 and 20. Effect: raise the first value = more faulted samples are needed to set the code; raise the second = each window is longer Evidence: ledger:E1058</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>value</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="fault samples to fail" />
      <LABEL index="1" value="window samples to pass" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35ED8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x3FA" flags="0x0">
    <title>Misfire - Catalyst Test History Depth</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: how many of the most recent 200-revolution windows (16 are stored) are searched for windows that failed the catalyst-damage limit. Stock 16. Effect: lower = only the newest windows count toward a catalyst-damage misfire decision Evidence: ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36102" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>windows</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3FB" flags="0x0">
    <title>Misfire - Emission Test History Depth</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: how many of the most recent 200-revolution windows (16 are stored) are searched for windows that failed the emission limit. Stock 16. Effect: lower = only the newest windows count toward an emission misfire decision Evidence: ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36104" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>windows</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3FC" flags="0x0">
    <title>Misfire - Idle Exception Engine Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: an event shaped like a disturbance (not a clean misfire) is normally set aside as abnormal. Below this engine speed, with vehicle speed and throttle below their idle exception limits, it is counted as a misfire anyway. Stock 1000 rpm. Effect: raise = the idle exception reaches higher engine speed Evidence: ledger:E1065</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36110" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3FD" flags="0x0">
    <title>Misfire - Idle Exception Throttle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: commanded throttle below which the idle exception of the abnormal event test applies. Stock 3.0 %. Effect: raise = the idle exception reaches more throttle Evidence: ledger:E1065</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36112" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3FE" flags="0x0">
    <title>Misfire - Idle Exception Vehicle Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: vehicle speed below which the idle exception of the abnormal event test applies. Stock 5 km/h. Effect: raise = the idle exception reaches higher vehicle speed Evidence: ledger:E1065</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36114" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x3FF" flags="0x0">
    <title>Misfire - Quiet Cycles That End a Run</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: number of engine cycles in a row without a misfire that ends a run of misfiring cycles. Stock 3. Effect: raise = a run of misfiring cycles lasts across longer quiet gaps Evidence: ledger:E1065</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36116" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>cycles</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x400" flags="0x0">
    <title>Misfire - Run Counting Start Cycle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: in a run of engine cycles that each show a misfire, the first cycle is counted and then every cycle from this one on; the cycles in between are not counted. Stock 7. Effect: lower = more cycles of a continuous misfire are counted Evidence: ledger:E1065</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36117" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>cycles</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x401" flags="0x0">
    <title>Misfire - Low Load Pause</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: pause, in engine cycles, requested while load is below the minimum load curve. Stock 4. Effect: raise = the monitor stays paused longer after load rises above the minimum Evidence: ledger:E1065</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3615A" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>cycles</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x402" flags="0x0">
    <title>Misfire - Overspeed Pause</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: pause, in engine cycles, requested at or above the overspeed pause engine speed. Stock 0 (none). Effect: raise = the monitor pauses above the overspeed engine speed Evidence: ledger:E1065</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3616C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>cycles</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x403" flags="0x0">
    <title>Misfire - Low Fuel Level</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: fuel level below which the monitor is paused (misfire from running out of fuel is not reported), unless P0300 is already confirmed. Stock 2.5 %. Effect: raise = the monitor pauses at a higher fuel level Evidence: ledger:E1065</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3616E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x404" flags="0x0">
    <title>Misfire - Low Fuel Pause</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: pause, in engine cycles, requested while fuel level is below the low fuel level. Stock 88. Effect: raise = the monitor stays paused longer after a low fuel reading Evidence: ledger:E1065</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36170" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>cycles</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x405" flags="0x0">
    <title>Misfire - Low Fuel Run Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: engine run time before the low fuel pause can be requested. Stock 5 s. Effect: raise = low fuel is ignored for longer after each start Evidence: ledger:E1065</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36174" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x406" flags="0x0">
    <title>Misfire - General Pause</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: pause, in engine cycles, requested while the run conditions are not met, on a crank sync error and during fuel cut. Stock 4. Effect: raise = the monitor stays paused longer after these conditions end Evidence: ledger:E1065</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36178" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>cycles</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x407" flags="0x0">
    <title>Misfire - Emission Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: misfire rate (misfires per 100 cylinder firings, measured over 200 engine revolutions) at or above which the window counts as a failed emission window. Stock 1.0 %. Effect: raise = more misfire is tolerated before the code sets Evidence: ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x368FA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x408" flags="0x0">
    <title>Misfire - Dead Cylinder Misfire Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: misfires of one cylinder in a 200-revolution window (100 firings of that cylinder) at or above which it is treated as a dead cylinder for the catalyst-damage exemption. Stock 90. Effect: lower = a cylinder is treated as dead at fewer misfires Evidence: ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36A8E" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>misfires</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>127.500000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/2"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x409" flags="0x0">
    <title>Misfire Monitor - Cold Start Release Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor run condition: after a start below the cold start limit, the monitor is released once coolant reaches this. Stock 21 degC. Effect: raise = after a cold start the monitor waits for a warmer engine Evidence: ledger:E1038</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36A94" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x40A" flags="0x0">
    <title>Misfire Monitor - Cold Start Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor run condition: if coolant is at or above this when the monitor is reset at start-up, the monitor is released straight away; otherwise it waits for the cold start release temperature. Stock -7 degC. Effect: raise = more starts count as cold starts Evidence: ledger:E1038</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36A96" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x40B" flags="0x0">
    <title>Misfire Monitor - System Voltage Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor run condition: system voltage must be at or above this (not checked during the voltage grace time after start). Stock 9 V. Effect: raise = the monitor stops at a higher system voltage Evidence: ledger:E1038</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36A98" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x40C" flags="0x0">
    <title>Misfire Monitor - System Voltage Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor run condition: system voltage must be at or below this (not checked during the voltage grace time after start). Stock 18 V. Effect: lower = the monitor stops at a lower system voltage Evidence: ledger:E1038</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36A9A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x40D" flags="0x0">
    <title>Misfire Monitor - Run Time Before Voltage and Pause Checks</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: the system voltage limits are not applied until the engine has run this long. The same run time must pass before the low load pause, the fuel cut pause and the crank sync pause can be requested. Stock 5 s. Effect: raise = voltage, low load and fuel cut are ignored for longer after each start Evidence: ledger:E1038, ledger:E1065</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36A9C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x40E" flags="0x0">
    <title>Misfire Monitor - Coolant Temperature Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor run condition: coolant temperature must be at or above this. Stock -7 degC. Effect: raise = the monitor needs a warmer engine Evidence: ledger:E1038</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36A9E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x40F" flags="0x0">
    <title>Misfire Monitor - Coolant Temperature Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor run condition: coolant temperature must be at or below this. Stock 125 degC. Effect: lower = the monitor stops at a lower coolant temperature Evidence: ledger:E1038</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36AA0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x410" flags="0x0">
    <title>Misfire Monitor - RPM Needing Crank Variation Learned</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor run condition: above this engine speed the monitor only runs once the crankshaft variation check (P0315) has reported a pass. Stock 1000 rpm. Effect: raise = the monitor runs to a higher rpm without the crankshaft variation learned Evidence: ledger:E1038</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36AA2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x411" flags="0x0">
    <title>Misfire Monitor - RPM Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor run condition: engine speed must be at or above this. Stock 450 rpm. Effect: raise = the monitor starts at a higher engine speed Evidence: ledger:E1038</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36AA4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x412" flags="0x0">
    <title>Misfire Monitor - RPM Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor run condition: engine speed must be at or below this. Stock 6200 rpm. Effect: lower = the monitor stops at a lower engine speed Evidence: ledger:E1038</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36AA6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x413" flags="0x0">
    <title>Misfire - Single Cylinder Share for P030x</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: when one cylinder holds more than this share of the stored misfire history, the code is reported with that cylinder number (P0301 to P0305) instead of P0300. Stock 90 %. Effect: lower = a cylinder-specific code is reported more readily Evidence: ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36AA8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x414" flags="0x0">
    <title>Misfire - MIL Flash Fuel Cut Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: the flashing check engine lamp request for catalyst-damaging misfire is dropped once deceleration fuel cut has lasted this long. Stock 3 s. Effect: raise = the lamp keeps flashing longer into a fuel cut Evidence: ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36AB6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x415" flags="0x0">
    <title>Misfire - MIL Flash Low Load Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: once P0300 is confirmed, the lamp does not flash while load is at or below this and vehicle speed is at or below the low speed limit. Stock 30 %. Effect: raise = the lamp stays steady up to a higher load Evidence: ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36AB8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x416" flags="0x0">
    <title>Misfire - MIL Flash Trip Window Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: number of catalyst-damaging windows in this trip above which the lamp keeps flashing after the misfire itself has stopped. Stock 65535 (never). Effect: lower = the lamp keeps flashing for the rest of the trip after fewer windows Evidence: ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36ABA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>windows</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x417" flags="0x0">
    <title>Misfire - MIL Flash Low Speed Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: once P0300 is confirmed, the lamp does not flash while vehicle speed is at or below this and load is at or below the low load limit. Stock 30 km/h. Effect: raise = the lamp stays steady up to a higher speed Evidence: ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36ABC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x418" flags="0x0">
    <title>P0130 Check - Fail Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upstream O2 sensor not-ready check (P0130): the code sets once this many samples in a test window were taken with the sensor not flagged ready for closed loop. Stock 400. Effect: raise = more not-ready samples are needed to set the code Evidence: ledger:E1004</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36CD4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x419" flags="0x0">
    <title>P0130 Check - Window Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upstream O2 sensor not-ready check (P0130): a test window that reaches this many samples without failing passes. Stock 500. Effect: raise = each test window is longer Evidence: ledger:E1004</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36CD6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x41A" flags="0x0">
    <title>P0130 Check Enable - Engine Run Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upstream O2 sensor not-ready check (P0130): only runs once the engine has been running at least this long. Stock 200 s. Effect: lower = the check can start sooner after a start Evidence: ledger:E1004</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36CDC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x41B" flags="0x0">
    <title>P0130 Check Enable - Coolant Temp Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upstream O2 sensor not-ready check (P0130): only runs with coolant temperature at or above this. Stock 70 C. Effect: lower = the check can run on a cooler engine Evidence: ledger:E1004</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36CDE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x41C" flags="0x0">
    <title>P0130 Check Enable - System Voltage Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upstream O2 sensor not-ready check (P0130): only runs with system voltage at or above this. Stock 11.0 V. Effect: raise = the check needs a higher voltage to run Evidence: ledger:E1004</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36CE0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x41D" flags="0x0">
    <title>P0130 Check Enable - System Voltage Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upstream O2 sensor not-ready check (P0130): only runs with system voltage at or below this. Stock 18.0 V. Effect: lower = the check stops at a lower voltage Evidence: ledger:E1004</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36CE2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x41E" flags="0x0">
    <title>P0130 Check Enable - Voltage Out Of Range Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upstream O2 sensor not-ready check (P0130): system voltage must stay outside its window for this long before the check is stopped. Stock 3.0 s. Effect: raise = short voltage dips or spikes are ignored for longer Evidence: ledger:E1004</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36CE4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x41F" flags="0x0">
    <title>P0130 Check Enable - RPM Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upstream O2 sensor not-ready check (P0130): only samples while engine speed is at or above this. Stock 1000 rpm. Effect: raise = the check needs a higher rpm Evidence: ledger:E1004</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36CE6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x420" flags="0x0">
    <title>P0130 Check Enable - RPM Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upstream O2 sensor not-ready check (P0130): only samples while engine speed is at or below this. Stock 3400 rpm. Effect: raise = the check also samples at higher rpm Evidence: ledger:E1004</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36CE8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x421" flags="0x0">
    <title>P0130 Check Enable - Airflow Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upstream O2 sensor not-ready check (P0130): only samples while mass airflow is at or above this. Stock 10 g/s. Effect: raise = the check needs more airflow Evidence: ledger:E1004</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36CEA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x422" flags="0x0">
    <title>P0130 Check Enable - Airflow Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upstream O2 sensor not-ready check (P0130): only samples while mass airflow is at or below this. Stock 50 g/s. Effect: raise = the check also samples at higher airflow Evidence: ledger:E1004</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36CEC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x423" flags="0x0">
    <title>P0130 Check - Start Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upstream O2 sensor not-ready check (P0130): sampling starts once its run conditions have held for this long. Stock 2.0 s. Effect: raise = conditions must hold longer before sampling starts Evidence: ledger:E1004</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36CF0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x424" flags="0x0">
    <title>P0136 Test - Run Condition, Run Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0136 (downstream O2 sensor swing test): engine run time from which the test routines run. Stock 2 s. Effect: raise = the downstream sensor swing test starts later after each start Evidence: ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36CF2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x425" flags="0x0">
    <title>P0136 Test - Wait Before Fuel Steps</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): the forced fuel steps are only requested once the test has been enabled for longer than this without the sensor reading both low and high on its own. Stock 435 s. Effect: lower = the forced fuel steps are requested sooner Evidence: ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36CF4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x426" flags="0x0">
    <title>P0136 Test - Rich Step Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): the code sets if the sensor has not read high within this long of a rich fuel step that the upstream sensor confirmed. Stock 10 s. Effect: raise = the sensor gets longer to respond to the rich step Evidence: ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36CF6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x427" flags="0x0">
    <title>P0136 Test - Lean Step Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): the code sets if the sensor has not read low within this long of a lean fuel step that the upstream sensor confirmed. Stock 10 s. Effect: raise = the sensor gets longer to respond to the lean step Evidence: ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36CF8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x428" flags="0x30">
    <title>P0136 Test - Low Voltage Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): the sensor counts as having read low once it is at or below this. Stock 250 mV. Effect: raise = a higher reading already counts as low Evidence: ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="downstream sensor" />
      <LABEL index="1" value="not used" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x36D00" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x429" flags="0x30">
    <title>P0136 Test - High Voltage Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): the sensor counts as having read high once it is at or above this. Stock 650 mV. Effect: lower = a lower reading already counts as high Evidence: ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="downstream sensor" />
      <LABEL index="1" value="not used" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x36D04" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x42A" flags="0x30">
    <title>P0136 Test - Upstream Rich Confirm Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): a rich fuel step only counts against the downstream sensor if the upstream sensor reads at or above this. Stock 550 mV. Effect: lower = a weaker upstream reading confirms the rich step Evidence: ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="upstream sensor" />
      <LABEL index="1" value="not used" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x36D08" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x42B" flags="0x30">
    <title>P0136 Test - Upstream Lean Confirm Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): a lean fuel step only counts against the downstream sensor if the upstream sensor reads at or below this. Stock 350 mV. Effect: raise = a weaker upstream reading confirms the lean step Evidence: ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="upstream sensor" />
      <LABEL index="1" value="not used" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x36D0C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x42C" flags="0x30">
    <title>P0136 Test Enable - Short Term Fuel Trim Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): a forced fuel step only starts while short term fuel trim is at or above this. Stock -5 %. Effect: lower = a step can start with more negative trim Evidence: ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>bank</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="bank 1" />
      <LABEL index="1" value="bank 2 (not used)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x36D74" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>1</decimalpl>
      <min>-100.000000</min>
      <max>99.996948</max>
      <MATH equation="-100+X/327.68"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x42D" flags="0x30">
    <title>P0136 Test Enable - Short Term Fuel Trim Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): a forced fuel step only starts while short term fuel trim is at or below this. Stock 8 %. Effect: raise = a step can start with more positive trim Evidence: ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>bank</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="bank 1" />
      <LABEL index="1" value="bank 2 (not used)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x36D78" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>1</decimalpl>
      <min>-100.000000</min>
      <max>99.996948</max>
      <MATH equation="-100+X/327.68"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x42E" flags="0x30">
    <title>P0030 / P0036 Circuit Check - Fault Count and Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater control circuit checks P0030 (upstream) and P0036 (downstream): the code sets once the first value&#x27;s number of faulted samples is reached; if the second value&#x27;s number of samples is reached first, the check passes and both counts start again. Stock 10 and 12. Effect: raise the first value = more faulted samples are needed to set the code; raise the second = each window is longer Evidence: ledger:E1062</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>value</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="fault samples to fail" />
      <LABEL index="1" value="window samples to pass" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x36D86" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x42F" flags="0x0">
    <title>P0030 / P0036 Check Enable - Ignition Voltage Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater circuit check (P0030 upstream, P0036 downstream): only runs with ignition voltage below this. Stock 18.0 V. Effect: lower = the check stops at a lower voltage Evidence: ledger:E1006</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D8E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x430" flags="0x0">
    <title>P0030 / P0036 Check Enable - Ignition Voltage Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater circuit check (P0030 upstream, P0036 downstream): only runs with ignition voltage above this. Stock 11.0 V. Effect: raise = the check needs a higher voltage to run Evidence: ledger:E1006</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D90" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x431" flags="0x0">
    <title>P0030 / P0036 Check Enable - RPM Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater circuit check (P0030 upstream, P0036 downstream): only runs with engine speed at or above this. Stock 425 rpm. Effect: raise = the check needs a higher rpm to run Evidence: ledger:E1006</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D92" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x432" flags="0x30">
    <title>P0351 to P0355 Circuit Check - Fault Count and Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Ignition coil circuit checks P0351 to P0355 (one count pair per cylinder): the code sets once the first value&#x27;s number of faulted samples is reached; if the second value&#x27;s number of samples is reached first, the check passes and both counts start again. Stock 20 and 100. Effect: raise the first value = more faulted samples are needed to set the code; raise the second = each window is longer Evidence: ledger:E1058</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>value</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="fault samples to fail" />
      <LABEL index="1" value="window samples to pass" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x36DD8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x433" flags="0x30">
    <title>ETC Throttle Limit - Torque Breakpoints (axis, edit with care)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stored torque breakpoints (33 points) that index the rows of the ETC throttle limit table. Editing them moves where each row of that table applies. Effect: moves the axis of every table that uses it: edit with care Evidence: ledger:E0443</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <LABEL index="31" value="31" />
      <LABEL index="32" value="32" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x30ECC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>Nm</units>
      <decimalpl>1</decimalpl>
      <min>-8192.000000</min>
      <max>8191.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x434" flags="0x30">
    <title>Misfire - RPM Breakpoints (axis, edit with care)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stored rpm breakpoints (26 points, 400 to 7000 rpm) that index the columns of the misfire table. Effect: moves the axis of every table that uses it: edit with care Evidence: ledger:E0443</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>26</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3617C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="26" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x435" flags="0x30">
    <title>Fuel - Coolant Breakpoints, shared (axis, edit with care)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stored coolant breakpoints (17 points) shared by several fuel tables: editing them moves the coolant axis of all of those tables at once. Effect: moves the axis of every table that uses it: edit with care Evidence: ledger:E0443</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2674A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x436" flags="0x30">
    <title>P0125 - Required Air Mass vs Start-Up Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant warm-up check P0125: air mass the engine must have drawn since start, by coolant temperature at start-up, before the check judges whether coolant has reached the target. Stock 8129 g at -40 C falling to 1241 g from 44 C. Effect: raise = the engine gets more time (air) to warm up before P0125 can set Evidence: ledger:E1056</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>11</indexcount>
      <units>degC (start-up coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x32EDE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="11" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x437" flags="0x30">
    <title>P0128 - Required Air Mass vs Start-Up Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Thermostat check P0128: air mass the engine must have drawn since start, by coolant temperature at start-up, before the check judges whether coolant has reached the target. Stock 11973 g at -40 C falling to 3429 g at 80 C. Effect: raise = the engine gets more time (air) to warm up before P0128 can set Evidence: ledger:E1056</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>11</indexcount>
      <units>degC (start-up coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x32EF6" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="11" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x438" flags="0x30">
    <title>Catalyst Monitor - Second Fuel Step Commanded EQ</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: commanded EQ ratio during the second fuel step, by airflow. Stock 0.92 at low airflow to 0.93 (7 to 8 % lean). Effect: lower = a leaner second step Evidence: ledger:E1002, ledger:E1020</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="3" />
      <LABEL index="1" value="4" />
      <LABEL index="2" value="5" />
      <LABEL index="3" value="6" />
      <LABEL index="4" value="7" />
      <LABEL index="5" value="8" />
      <LABEL index="6" value="9" />
      <LABEL index="7" value="10" />
      <LABEL index="8" value="12" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x323A4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>EQ</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="1+X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x439" flags="0x30">
    <title>Catalyst Monitor - First Fuel Step Commanded EQ</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: commanded EQ ratio during the first fuel step, by airflow. Stock 1.10 (10 % rich) everywhere. Effect: raise = a richer first step Evidence: ledger:E1002, ledger:E1020</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="3" />
      <LABEL index="1" value="4" />
      <LABEL index="2" value="5" />
      <LABEL index="3" value="6" />
      <LABEL index="4" value="7" />
      <LABEL index="5" value="8" />
      <LABEL index="6" value="9" />
      <LABEL index="7" value="10" />
      <LABEL index="8" value="12" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3237C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>EQ</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="1+X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x43A" flags="0x30">
    <title>LTFT Follow Rate per Cell</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Per long-term fuel trim cell: how fast the long-term fuel trim in use (the value the LTFT PID shows) moves to the learned value of the cell the engine is in, as the fraction of the gap closed per update. Cells 0 to 15 are the rpm by MAP grid and 16 to 20 the idle and other special cells, used while commanded purge is at least 2.1 %; cells 21 to 38 are the same cells with purge below that. Stock 0.01 in cells 0 to 20 and 0.99 in cells 21 to 38. The same rate also paces a second trim value the PCM multiplies with it. Effect: raise = the long-term trim in use jumps to the cell&#x27;s learned value faster Evidence: ledger:E0445, ledger:E0954</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>39</indexcount>
      <units>LTFT cell index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <LABEL index="31" value="31" />
      <LABEL index="32" value="32" />
      <LABEL index="33" value="33" />
      <LABEL index="34" value="34" />
      <LABEL index="35" value="35" />
      <LABEL index="36" value="36" />
      <LABEL index="37" value="37" />
      <LABEL index="38" value="38" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35B94" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="39" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction per update</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x43B" flags="0x30">
    <title>Manual Gearbox - Gear Detection Bands (rpm per km/h)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Gear k is reported when engine rpm / vehicle speed falls in [low, high) of row k. Used only when the transmission-type switch is 0 (manual); the automatic H3 has it at 1, so these bands are inactive here. Stock centres match gear ratios 3.73 / 2.24 / 1.36 / 0.99 / 0.73; row 6 unused. Effect: none on the automatic H3 Evidence: ledger:E0327, ledger:E0448</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>edge</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="low" />
      <LABEL index="1" value="high" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>6</indexcount>
      <units>gear index</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1st" />
      <LABEL index="1" value="2nd" />
      <LABEL index="2" value="3rd" />
      <LABEL index="3" value="4th" />
      <LABEL index="4" value="5th" />
      <LABEL index="5" value="unused" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x20072" mmedelementsizebits="16" mmedrowcount="6" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm per km/h</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>255.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x43C" flags="0x0">
    <title>Driveline Torque Calc - Converter Ratio Divisor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Divides the converter torque ratio in the driveline torque calculation (stock 1.0; keep at 1.0). Effect: driveline torque estimate Evidence: ledger:E0327, ledger:E0448</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x20060" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>x</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x43D" flags="0x30">
    <title>Idle Acquire - RPM Reference Ramp Step vs Error</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. While idle control acquires, the idle rpm reference moves toward desired idle by this many rpm per update, by the reference minus target (negative = reference below target). Stock 0.25 to 3 rpm below, up to 22 rpm above. Effect: raise = reference reaches desired idle faster on the way down / up Evidence: ledger:E0449</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-256" />
      <LABEL index="1" value="-192" />
      <LABEL index="2" value="-128" />
      <LABEL index="3" value="-64" />
      <LABEL index="4" value="0" />
      <LABEL index="5" value="64" />
      <LABEL index="6" value="128" />
      <LABEL index="7" value="192" />
      <LABEL index="8" value="256" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x223B0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>rpm per update</units>
      <decimalpl>0</decimalpl>
      <min>-4096.000000</min>
      <max>4095.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x43E" flags="0x0">
    <title>Idle Acquire - RPM Reference Floor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest idle rpm reference and target used while idle control acquires. Stock 625 rpm. Effect: raise = idle acquire never aims below this rpm Evidence: ledger:E0449</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x2238A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x43F" flags="0x0">
    <title>Oil Life - Steps in a Full Oil Life</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Oil life monitor: number of steps written at an oil life reset; oil life is reported as the steps left divided by this. Stock 1000 (each step is 0.1 %). Effect: raise = more steps (longer oil life) before it reads zero Evidence: ledger:E1060</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x23110" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>steps</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x440" flags="0x0">
    <title>Oil Life - Maximum Distance</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Oil life monitor: distance after an oil life reset at which oil life reads zero whatever the engine has done. Stock 16093 km (10,000 miles). Effect: lower = oil life runs out after a shorter distance Evidence: ledger:E1060</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2310E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x441" flags="0x0">
    <title>Oil Life - Overheat Zeroing Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant at or above this for the delay below forces oil life to zero, when enabled. Stock 135 C (disabled on the H3). (E0450) Effect: changes when the oil change reminder comes on Evidence: ledger:E0450</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2310C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x442" flags="0x0">
    <title>Oil Life - Overheat Zeroing Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Oil life monitor: how long coolant must stay at or above the overheat zeroing temperature before oil life is forced to zero (only when overheat zeroing is enabled; it is off in the stock calibration). Stock 3 s. Effect: raise = a longer overheat is needed before oil life is zeroed Evidence: ledger:E1060</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x23112" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x443" flags="0x0">
    <title>Oil Life - Overheat Zeroing Enable</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. 1 = a severe overheat zeroes oil life. Stock 0 (off). (E0450) Effect: changes when the oil change reminder comes on Evidence: ledger:E0450</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x230FE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>flag</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x444" flags="0x30">
    <title>Idle Acquire - Expected MAF vs RPM (In Gear)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow the engine should need at idle in gear, by the idle rpm reference. Idle control finishes acquiring (hands over to closed-loop rpm control) once the measured MAF settles within 0.5 g/s of this. Stock 3.42 / 4.24 / 5.13 / 6.29 / 7.77 g/s at 550 to 950 rpm. Effect: raise = idle acquire expects more airflow before it hands over Evidence: ledger:E0453</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>5</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="550" />
      <LABEL index="1" value="650" />
      <LABEL index="2" value="750" />
      <LABEL index="3" value="850" />
      <LABEL index="4" value="950" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22464" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="5" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x445" flags="0x30">
    <title>Idle Acquire - Expected MAF vs RPM (Park/Neutral)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow the engine should need at idle in Park / Neutral, by the idle rpm reference. Idle control finishes acquiring (hands over to closed-loop rpm control) once the measured MAF settles within 0.5 g/s of this. Stock 3.13 / 3.74 / 4.39 / 4.98 / 5.78 g/s at 550 to 950 rpm. Effect: raise = idle acquire expects more airflow before it hands over Evidence: ledger:E0453</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>5</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="550" />
      <LABEL index="1" value="650" />
      <LABEL index="2" value="750" />
      <LABEL index="3" value="850" />
      <LABEL index="4" value="950" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22470" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="5" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>g/s</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x446" flags="0x0">
    <title>Idle Acquire - Expected MAF A/C Adder</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Added to the expected idle airflow while the A/C clutch is engaged. Stock 2.10 g/s. Effect: raise = more airflow expected with A/C on Evidence: ledger:E0453</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x22454" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>g/s</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x447" flags="0x0">
    <title>Idle Acquire - Expected MAF Adder, Alternate (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Inactive on this operating system: added to the expected idle airflow only while an internal flag is set, and that flag is never set (E0824, E0842). Stock 1.60 g/s. Effect: no effect at stock (the adder is never applied on this operating system) Evidence: ledger:E0453, ledger:E0824, ledger:E0842</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x22456" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>g/s</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x448" flags="0x0">
    <title>Idle Acquire - MAF Samples Averaged</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. MAF readings averaged (one per 25 ms) for each expected-airflow comparison. Stock 20 (0.5 s). Effect: raise = slower, steadier comparison Evidence: ledger:E0453</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x22452" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>-32768.000000</min>
    <max>32767.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x449" flags="0x0">
    <title>Idle Acquire - Expected MAF Learn Step</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Step by which the expected-airflow correction moves toward the measurement after each comparison. Stock 0.25 g/s. Effect: raise = correction learns faster Evidence: ledger:E0453</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x22458" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>g/s</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x44A" flags="0x0">
    <title>Idle Acquire - MAF Tolerance to Finish</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Acquire finishes only when two successive mean-MAF readings are within this of the expected airflow. Stock 0.50 g/s. Effect: raise = acquire finishes sooner Evidence: ledger:E0453</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x2245A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>g/s</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x44B" flags="0x0">
    <title>Idle Acquire - Max Target RPM to Finish</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Acquire finishes only when the idle rpm target is at or below this. Stock 1500 rpm. Effect: lower = no hand-over at high idle targets Evidence: ledger:E0453</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x2245C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>-4096.000000</min>
    <max>4095.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x44C" flags="0x0">
    <title>Idle Acquire - Min Coolant to Finish</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Acquire finishes only when coolant is at or above this. Stock 60 C. Effect: lower = hand-over allowed on a colder engine Evidence: ledger:E0453</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x2245E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x44D" flags="0x0">
    <title>P0014 Check - Desired Cam Steady Band</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam position check P0014: samples are only taken once the desired cam angle has stayed inside a spread smaller than this for the steady time. Stock 0.9 deg. Effect: raise = the desired cam angle may move more and still count as steady Evidence: ledger:E1057</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32E7C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>deg</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x44E" flags="0x0">
    <title>P0014 Check - Desired Cam Steady Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam position check P0014: how long the desired cam angle must stay inside the steady band before samples are taken. Stock 3 s. Effect: raise = the desired cam angle must be steady longer before the check samples Evidence: ledger:E1057</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32E7E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x44F" flags="0x0">
    <title>P0014 Check Enable - System Voltage Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam position check P0014: the check only runs with system voltage at or above this. Stock 11 V. Effect: raise = the check needs a higher system voltage Evidence: ledger:E1057</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32E88" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x450" flags="0x0">
    <title>P0014 Check - Cam Error Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam position check P0014: filter on the cam error the check judges, as the fraction of the gap closed per update. Stock 1.0 (no filtering). Effect: lower = the cam error is smoothed before it is judged Evidence: ledger:E1057</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32E8A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction per update</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x451" flags="0x30">
    <title>P0068 Fail - Pressure Difference</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0068 pressure leg: measured manifold pressure above the pressure modelled from throttle position by more than this, by intake air temperature (-40 to 152 C). P0068 sets when this leg and the airflow leg both hold for the fail time. Stock 25 kPa at every temperature. Effect: raise = a larger pressure disagreement is tolerated Evidence: ledger:E0458, ledger:E1066</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-16" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="32" />
      <LABEL index="4" value="56" />
      <LABEL index="5" value="80" />
      <LABEL index="6" value="104" />
      <LABEL index="7" value="128" />
      <LABEL index="8" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2358A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>kPa</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x452" flags="0x0">
    <title>Vehicle Speed - Min Speed for Primary Source</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Below this speed the vehicle speed is taken from the transmission output speed instead of the primary speed source. Stock 5.0 km/h. Effect: raise = trans-side speed used up to a higher speed Evidence: ledger:E0460</description>
    <CATEGORYMEM index="0" category="9" />
    <EMBEDDEDDATA mmedaddress="0x200A0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x453" flags="0x0">
    <title>Vehicle Speed - Factor in Range State 3</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplies the computed vehicle speed while the range state is 3 (the range-multiplier index; likely 4-Lo). Stock 1.00: the speed sensor is after the transfer case. Effect: changes the speed reading in that range only Evidence: ledger:E0460</description>
    <CATEGORYMEM index="0" category="9" />
    <EMBEDDEDDATA mmedaddress="0x200A2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>x</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x454" flags="0x0">
    <title>Speed Sensor - Timer Prescaler</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Prescaler the PCM writes to the vehicle speed sensor input timer at power-up. Stock 20. The PCM derives the speed sensor period scale from this and the speed sensor scaling constant together, so changing it alone changes the speed reading. Raw stored value. Reference only: DO NOT EDIT. Effect: reference only (speed sensor input) Evidence: ledger:E0461, ledger:E0899</description>
    <CATEGORYMEM index="0" category="9" />
    <EMBEDDEDDATA mmedaddress="0x200A4" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>raw</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x455" flags="0x0">
    <title>Fuel Trim Monitor - Filtered Data Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): time of filtered trim data needed in this trip before the first lean or rich decision. Stock 20 s. Effect: raise = the first decision of a trip comes later Evidence: ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x359FC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>6553.500000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/10"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x456" flags="0x0">
    <title>Fuel Trim Monitor - Lean, Short Term Trim Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): P0171 sets only when the filtered short term trim is also at or above this (1.0 = no correction). Stock 0.75. Effect: raise = a lean failure also needs a higher short term trim Evidence: ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A36" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>multiplier</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x457" flags="0x0">
    <title>Fuel Trim Monitor - Rich, Short Term Trim Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): a rich reading asks for the purge-off test only when the filtered short term trim is also at or below this (1.0 = no correction). Stock 1.25. Effect: lower = a rich reading also needs a lower short term trim Evidence: ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A38" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>multiplier</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x458" flags="0x0">
    <title>Fuel Trim Codes - Similar Conditions Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0171 / P0172: once one of these codes is stored, time the engine must spend near the load, engine speed and warm-up state recorded at the failure before the trip counts as run under similar conditions. Stock 0.25 s. Effect: raise = similar conditions must hold longer before they count Evidence: ledger:E0463, ledger:E1068</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35B8A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x459" flags="0x0">
    <title>Fuel Trim Monitor Enable - RPM Floor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The fuel trim monitor (P0171 system too lean, P0172 system too rich) only runs its checks while engine speed is above this. Stock 400 rpm. Narrowing the window makes the monitor run less often. Effect: raise = the monitor needs more engine speed to run Evidence: ledger:E0464, ledger:E0953</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A46" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x45A" flags="0x0">
    <title>Fuel Trim Monitor Enable - RPM Ceiling</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The fuel trim monitor (P0171 system too lean, P0172 system too rich) only runs its checks while engine speed is below this. Stock 5700 rpm. Narrowing the window makes the monitor run less often. Effect: lower = the monitor stops at a lower engine speed Evidence: ledger:E0464, ledger:E0953</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A44" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x45B" flags="0x0">
    <title>Fuel Trim Monitor Enable - Barometric Pressure Floor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The fuel trim monitor (P0171 system too lean, P0172 system too rich) only runs its checks while barometric pressure is above this. Stock 70 kPa (roughly 3000 m altitude). Narrowing the window makes the monitor run less often. Effect: raise = the monitor stops running at a lower altitude Evidence: ledger:E0464, ledger:E0953</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A48" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x45C" flags="0x0">
    <title>Fuel Trim Monitor Enable - Intake Air Temperature Floor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The fuel trim monitor (P0171 system too lean, P0172 system too rich) only runs its checks while intake air temperature is above this. Stock -20 C. Narrowing the window makes the monitor run less often. Effect: raise = the monitor needs warmer intake air to run Evidence: ledger:E0464, ledger:E0953</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A76" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x45D" flags="0x0">
    <title>Fuel Trim Monitor Enable - MAP Floor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The fuel trim monitor (P0171 system too lean, P0172 system too rich) only runs its checks while manifold pressure is above this. Stock 11 kPa. Narrowing the window makes the monitor run less often. Effect: raise = the monitor needs more manifold pressure to run Evidence: ledger:E0464, ledger:E0953</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A4A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x45E" flags="0x0">
    <title>Fuel Trim Monitor Enable - MAP Ceiling</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The fuel trim monitor (P0171 system too lean, P0172 system too rich) only runs its checks while manifold pressure is below this. Stock 100 kPa. Narrowing the window makes the monitor run less often. Effect: lower = the monitor stops at a lower manifold pressure Evidence: ledger:E0464, ledger:E0953</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A4C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x45F" flags="0x0">
    <title>Fuel Trim Monitor - Low Fuel Level</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): fuel level below which the low fuel guard can apply. Stock 10 %. Effect: raise = the low fuel guard applies at a higher fuel level Evidence: ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A52" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x460" flags="0x0">
    <title>Fuel Trim Monitor - Low Fuel Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): time the fuel level must stay below the low fuel level before the low fuel guard applies (the lean reading is then capped so that running out of fuel does not set P0171). Stock 30 s. Effect: raise = the low fuel guard takes longer to apply Evidence: ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A00" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>6553.500000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/10"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x461" flags="0x0">
    <title>Fuel Trim Monitor - Cell Settle Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The fuel trim monitor (P0171 system too lean, P0172 system too rich) only samples a fuel trim cell once the engine has stayed in that cell for this many updates in a row. Stock 5. Effect: raise = the engine must stay in a trim cell longer before the monitor samples it Evidence: ledger:E0466, ledger:E0962</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A12" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>updates</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x462" flags="0x30">
    <title>Fuel Trim Monitor - Non Purge Rich Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): long term trim measured with purge off at or below which a purge-off segment counts as rich; enough rich segments set P0172. Stock 0.80. The lookup input is fixed, so only the first value is used; set all 17 the same. Effect: lower = more removed fuel is tolerated before P0172 sets Evidence: ledger:E0467, ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35AFA" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>multiplier</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x463" flags="0x30">
    <title>Fuel Trim Monitor - Rich Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): filtered long term trim at or below which the system is suspected rich and the purge-off test is requested (0.81 = 19 % fuel removed). P0172 is decided by the purge-off test, not by this value alone. Stock 0.81. The lookup input is fixed, so only the first value is used; set all 17 the same. Effect: lower = more removed fuel is tolerated before the purge-off test is requested Evidence: ledger:E0467, ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35AD6" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>multiplier</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x464" flags="0x30">
    <title>Fuel Trim Monitor - Lean Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): filtered long term trim at or above which the system is judged lean and P0171 sets (1.0 = no correction, 1.24 = 24 % fuel added). Stock 1.24. The lookup input is fixed, so only the first value is used; set all 17 the same. Effect: raise = more added fuel is tolerated before P0171 sets Evidence: ledger:E0467, ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35AB2" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>multiplier</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x465" flags="0x0">
    <title>Catalyst Monitor Enable - Throttle Change Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: the test only stays active while throttle position has varied by no more than this since it started tracking. Stock 50 %. Effect: lower = smaller throttle movements stop the test Evidence: ledger:E0998</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32312" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.675"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x466" flags="0x0">
    <title>Catalyst Monitor Enable - Airflow Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: only runs while mass airflow is at or above this (with engine speed near desired idle, see the RPM Above / Below Idle limits). Stock 2.0 g/s. Effect: raise = the test needs more airflow to run Evidence: ledger:E0468, ledger:E0919, ledger:E0998</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32318" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x467" flags="0x0">
    <title>Catalyst Monitor Enable - Airflow Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: only runs while mass airflow is at or below this (with engine speed near desired idle, see the RPM Above / Below Idle limits). Stock 12.0 g/s. Effect: raise = the test also runs at higher airflow Evidence: ledger:E0468, ledger:E0919, ledger:E0998</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3231A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x468" flags="0x0">
    <title>Catalyst Monitor Enable - RPM Above Idle Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: how far engine rpm may be above desired idle rpm for the test to run. Stock 500 rpm. Effect: raise = the test tolerates a higher rpm above idle Evidence: ledger:E0468, ledger:E0998</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3231C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x469" flags="0x0">
    <title>Catalyst Monitor Enable - RPM Below Idle Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: how far engine rpm may be below desired idle rpm for the test to run. Stock 500 rpm. Effect: raise = the test tolerates a lower rpm below idle Evidence: ledger:E0468, ledger:E0998</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3231E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x46A" flags="0x0">
    <title>Catalyst Monitor - Settle Time, Just Out of Park / Neutral</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420): settle time before the test proceeds when the transmission has just come out of Park, Neutral or Reverse and the truck has not driven off since. Stock 5 s. Effect: raise = the test waits longer after a range change Evidence: ledger:E0468, ledger:E0998, ledger:E1082</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32306" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x46B" flags="0x0">
    <title>Catalyst Monitor - Settle Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420): settle time at idle before the test proceeds (the shorter time, used when the truck was not just shifted out of Park, Neutral or Reverse). Stock 3 s. Effect: raise = the test waits longer at idle before it starts Evidence: ledger:E0468, ledger:E0998, ledger:E1082</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32308" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x46C" flags="0x0">
    <title>Catalyst Monitor - Closed Throttle Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: commanded throttle position, with the share used for idle air taken out, at or below this counts as closed throttle. Stock 5 %. Effect: raise = larger throttle openings still count as closed Evidence: ledger:E0999</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322F8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x46D" flags="0x0">
    <title>Catalyst Monitor - Closed Throttle Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: once the throttle has stayed closed longer than this, the readiness counter is reset and the test cannot arm. Stock 90 s. Effect: raise = the test can still arm after a longer closed-throttle period Evidence: ledger:E0469, ledger:E0998, ledger:E0999</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3230E" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x46E" flags="0x0">
    <title>Catalyst Monitor - Tests per Engine Run</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420): most catalyst tests that may be started in one engine run. Stock 12. Effect: lower = fewer catalyst tests are started per engine run Evidence: ledger:E1082</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32302" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>tests</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x46F" flags="0x0">
    <title>Catalyst Monitor - Readiness Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: count its readiness counter must reach before the test may arm. The counter goes up by one on each pass with its input condition true and down by one otherwise. Stock 60. Effect: raise = more passes are needed before the test may arm Evidence: ledger:E0469, ledger:E0998</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32303" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>counts</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x470" flags="0x0">
    <title>Catalyst Over-Temp Protection - Low Throttle EQ</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst over-temperature protection (catalyst temperature model): the commanded EQ requested while protection is active at low throttle. Stock 1.040 (lambda 0.96). Effect: raise = richer protection fuel at low throttle Evidence: ledger:E1043</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x21BD4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>EQ</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>63.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x471" flags="0x0">
    <title>Catalyst Hot-Confirm Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time the modelled catalyst temperature must stay above the catalyst over-temperature entry threshold before the catalyst-hot confirm flag sets. Stock 5 s. Effect: raise = longer hot dwell required before the confirm flag is set Evidence: ledger:E0475</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x21BD6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x472" flags="0x0">
    <title>Catalyst Hot Duty Cycle Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Share of total run time the catalyst may spend hot (above the over-temperature entry threshold) before the catalyst-hot duty flag sets. Stock 4.00 %. Effect: raise = catalyst must run hot a larger fraction of total run time before a flag is set Evidence: ledger:E0475</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x21BD8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x473" flags="0x0">
    <title>Vehicle Speed Limiter Ramp Timer Enable</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Enables the speed limiter&#x27;s ramp timer. When 0 the timer never counts and the ramp-time check is skipped. Stock 1 (enabled). Effect: 0 = disable the ramp timer entirely; 1 = enabled (stock) Evidence: ledger:E0482</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x31410" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>on/off</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x474" flags="0x0">
    <title>Vehicle Speed Limiter Ramp Mode Select</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Selects how the speed limiter applies its spark retard once armed: 1 = ramps in gradually as the ramp timer builds (retard follows speed over the limit times the gear gain); 0 = skips the ramp, presets the timer and applies no retard on that pass. Stock 1 (gradual). Effect: 0 = instant timer preset with no retard this pass; 1 = gradual ramp (stock) Evidence: ledger:E0483</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x3140E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>on/off</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x475" flags="0x0">
    <title>Vehicle Speed Limiter Ramp Timer Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Ramp time after which the speed limiter flags its ramp as complete; also the value the timer is preset to when the ramp is skipped. Stock 0.1 s. Effect: raise = longer ramp time before the limiter&#x27;s ramp-time-reached flag is set Evidence: ledger:E0483</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x31412" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x476" flags="0x0">
    <title>Closed Throttle Flag - Release Hysteresis</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The PCM&#x27;s closed-throttle flag sets when throttle position is at or below its enter threshold (0.10 % stock) and clears again when throttle rises above that threshold plus this amount. Stock 0.10 %. Effect: raise = the throttle must open further before the closed-throttle flag clears Evidence: ledger:E0485, ledger:E0717, ledger:E0987</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3146C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.001526</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.34"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x477" flags="0x30">
    <title>Cruise Control Demand Target vs MAP x Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cruise control demand target by engine load (MAP, rows) and vehicle speed (columns, 38 to 180 km/h). While cruise holds speed, the controller moves its demand toward this value corrected by the speed error, and the demand is turned into a throttle request by the Cruise Control Throttle Area curve (a lower demand means more throttle). Values are the controller&#x27;s internal demand counts. Shown raw. DO NOT EDIT. Effect: raise = the cruise target is allowed to ramp faster toward its new value Evidence: ledger:E0489, ledger:E0688, ledger:E0730, ledger:E0899, ledger:E0943, ledger:E0944</description>
    <CATEGORYMEM index="0" category="5" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>km/h (filtered vehicle speed)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="38" />
      <LABEL index="1" value="46.9" />
      <LABEL index="2" value="55.8" />
      <LABEL index="3" value="64.6" />
      <LABEL index="4" value="73.5" />
      <LABEL index="5" value="82.4" />
      <LABEL index="6" value="91.2" />
      <LABEL index="7" value="100.1" />
      <LABEL index="8" value="109" />
      <LABEL index="9" value="117.9" />
      <LABEL index="10" value="126.8" />
      <LABEL index="11" value="135.6" />
      <LABEL index="12" value="144.5" />
      <LABEL index="13" value="153.4" />
      <LABEL index="14" value="162.2" />
      <LABEL index="15" value="171.1" />
      <LABEL index="16" value="180" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>kPa (MAP)</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x21EA6" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>raw</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x478" flags="0x0">
    <title>Fuel Trim Monitor - Purge Off Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor purge-off test (P0172): longest purge-off measurement; after it the attempt is abandoned. Stock 35 s. Effect: raise = purge may stay off longer in one attempt Evidence: ledger:E1068</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A82" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>26843545.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x479" flags="0x0">
    <title>Fuel Trim Monitor - Out of Cell Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor purge-off test (P0172): longest time during the purge-off measurement outside a usable non-purge fuel trim cell; after it the attempt is abandoned. Stock 2 s. Effect: raise = the measurement tolerates longer excursions Evidence: ledger:E1068</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A7A" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>26843545.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x47A" flags="0x0">
    <title>Fuel Trim Monitor - Wait After an Unfinished Test</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor purge-off test (P0172): wait before the next test when no purge-off segment could be evaluated (wait limit or attempt limit reached). Stock 1200 s (20 minutes). Effect: raise = purge-off tests repeat less often after an unfinished one Evidence: ledger:E0498, ledger:E0898, ledger:E0900, ledger:E1068</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A7E" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>26843545.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x47B" flags="0x0">
    <title>Fuel Trim Monitor - Purge Restored Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor purge-off test (P0172): longest time purge runs normally between two purge-off segments; the next segment starts sooner once enough purge has flowed. Stock 30 s. Effect: raise = the pause between purge-off segments may last longer Evidence: ledger:E0499, ledger:E0898, ledger:E0900, ledger:E1068</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A20" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>6553.500000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/10"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x47C" flags="0x0">
    <title>Fuel Trim Monitor - Unused Count (no effect)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor: read only on a path the stock program never takes (its condition flag is cleared earlier in the same pass). Changing it has no effect. Stock 100. Effect: no effect Evidence: ledger:E0499, ledger:E0898, ledger:E0900, ledger:E1068</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x359FA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>counts</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x47D" flags="0x0">
    <title>Fuel Trim Monitor - Long Term Filter Idle Payback</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): the long term trim filter keeps an idle timer that counts up by one every 100 ms while the filter cannot sample; this many counts are taken back off for every 100 ms it does sample. Stock 2. Effect: raise = idle time is forgotten faster once sampling resumes Evidence: ledger:E0500, ledger:E0898, ledger:E0900, ledger:E1069</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A16" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>passes</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x47E" flags="0x0">
    <title>Fuel Trim Monitor - Short Term Trim Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): filter on the short term trim the lean and rich decisions use; each 100 ms sample moves the filtered value this fraction of the way to the new reading. Stock 0.20. Effect: raise = the filtered short term trim follows faster Evidence: ledger:E0500, ledger:E0898, ledger:E0900, ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A34" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x47F" flags="0x0">
    <title>Fuel Trim Monitor - Long Term Trim Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): filter on the long term trim the lean and rich decisions use; each 100 ms sample moves the filtered value this fraction of the way to the new reading. Stock 0.16. Effect: raise = the filtered long term trim follows faster Evidence: ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A30" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x480" flags="0x0">
    <title>Fuel Trim Monitor - Long Term Filter Idle Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): idle time after which the long term trim filter goes through its start-up delay again before it is used. Stock 300 s. Effect: raise = the filtered long term trim stays usable through longer gaps in sampling Evidence: ledger:E0500, ledger:E0898, ledger:E0900, ledger:E1069</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A18" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>6553.500000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/10"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x481" flags="0x0">
    <title>Fuel Trim Monitor - Long Term Filter Start-up Idle Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): idle time that cancels a start-up of the long term trim filter already in progress. Stock 20 s. Effect: raise = a start-up survives longer gaps in sampling Evidence: ledger:E0500, ledger:E0898, ledger:E0900, ledger:E1069</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A24" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>6553.500000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/10"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x482" flags="0x0">
    <title>Fuel Trim Monitor - Non Purge Filter Idle Payback</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): counts taken off the idle timer of the non-purge trim filter for every 100 ms it samples (the timer counts up by one every 100 ms while it cannot). Stock 2. Effect: raise = idle time is forgotten faster once sampling resumes Evidence: ledger:E0500, ledger:E0898, ledger:E0900, ledger:E1069</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A1C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>passes</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x483" flags="0x0">
    <title>Fuel Trim Monitor - Non Purge Trim Filter</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): filter on the long term trim measured with purge off (used by the purge-off test); fraction per 100 ms sample. Stock 0.10. Effect: raise = the filtered non-purge trim follows faster Evidence: ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A32" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x484" flags="0x0">
    <title>Fuel Trim Monitor - Non Purge Filter Idle Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): idle time after which the filtered non-purge trim is treated as stale and its averaging starts over. Stock 1200 s (20 minutes). Effect: raise = the filtered non-purge trim stays valid through longer gaps Evidence: ledger:E0500, ledger:E0898, ledger:E0900, ledger:E1069</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A1E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>6553.500000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/10"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x485" flags="0x0">
    <title>Fuel Trim Monitor - Non Purge Filter Start-up Idle Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): idle time that cancels a start-up of the non-purge trim filter already in progress. Stock 10 s. Effect: raise = a start-up survives longer gaps in sampling Evidence: ledger:E0500, ledger:E0898, ledger:E0900, ledger:E1069</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A1A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>6553.500000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/10"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x486" flags="0x0">
    <title>Traction Control Gear Request - Torque Limit Threshold A (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When the traction control torque limit is below this (with vehicle speed and rpm above their thresholds), traction control requests a gear change. On this calibration the request is not applied to the shift schedule. Stock 80 Nm. Effect: no effect on the stock calibration (the gear request is not applied) Evidence: ledger:E0502, ledger:E0914, ledger:E0918, ledger:E0925</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x2FCE4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>16383.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x487" flags="0x0">
    <title>Traction Control Gear Request - Torque Limit Threshold B1 (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Second request condition: torque limit below this with its own speed and rpm thresholds. On this calibration the request is not applied to the shift schedule. Stock 125 Nm. Effect: no effect on the stock calibration (the gear request is not applied) Evidence: ledger:E0503, ledger:E0914, ledger:E0918, ledger:E0925</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x2FCCE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>16383.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x488" flags="0x0">
    <title>Traction Control Gear Request - Torque Limit Threshold B2 (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Third request condition: torque limit below this with its own speed and rpm thresholds. On this calibration the request is not applied to the shift schedule. Stock 150 Nm. Effect: no effect on the stock calibration (the gear request is not applied) Evidence: ledger:E0503, ledger:E0914, ledger:E0918, ledger:E0925</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x2FCD4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>16383.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x489" flags="0x0">
    <title>Engine-Off Timer Diagnostic (P2610) - Enable</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The engine-off timer diagnostic (P2610) checks that the PCM&#x27;s engine-off timer counts once per second against the PCM&#x27;s own clock: a count every 0.59 to 1.39 s is a good sample, 3 bad samples set the code and 10 samples pass it. Set to 0 the diagnostic never runs. Stock 1 (on). Effect: 0 = the engine-off timer diagnostic is switched off Evidence: ledger:E0508, ledger:E0829</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D98" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>on/off</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x48A" flags="0x0">
    <title>Engine-Off Timer Diagnostic (P2610) - Minimum Intake Air Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The engine-off timer diagnostic (P2610) checks that the PCM&#x27;s engine-off timer counts once per second against the PCM&#x27;s own clock: a count every 0.59 to 1.39 s is a good sample, 3 bad samples set the code and 10 samples pass it. It only runs while intake air temperature is at or above this value. Stock -40 C. Effect: raise = the engine-off timer diagnostic stops running in colder intake air Evidence: ledger:E0508, ledger:E0829</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36DA8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x48B" flags="0x0">
    <title>Engine-Off Timer Diagnostic (P2610) - Maximum Intake Air Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The engine-off timer diagnostic (P2610) checks that the PCM&#x27;s engine-off timer counts once per second against the PCM&#x27;s own clock: a count every 0.59 to 1.39 s is a good sample, 3 bad samples set the code and 10 samples pass it. It only runs while intake air temperature is at or below this value. Stock 125 C. Effect: lower = the engine-off timer diagnostic stops running in hotter intake air Evidence: ledger:E0508, ledger:E0829</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36DAA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x48C" flags="0x0">
    <title>Fuel Trim Monitor Stage Enable - RPM Floor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. One of the fuel trim monitor&#x27;s (P0171 system too lean, P0172 system too rich) conditions for running its test stages: engine speed must be above this. Stock 500 rpm. Narrowing the window makes the monitor run less often. Effect: raise = the monitor&#x27;s stages need more engine speed to run Evidence: ledger:E0522, ledger:E0734, ledger:E0961</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A42" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x48D" flags="0x0">
    <title>Fuel Trim Monitor Stage Enable - MAP Floor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. One of the fuel trim monitor&#x27;s (P0171 system too lean, P0172 system too rich) conditions for running its test stages: manifold pressure must be above this. Stock 11 kPa. Narrowing the window makes the monitor run less often. Effect: raise = the monitor&#x27;s stages need more manifold pressure to run Evidence: ledger:E0522, ledger:E0734, ledger:E0961</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A50" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x48E" flags="0x0">
    <title>Fuel Trim Monitor Stage Enable - MAP Ceiling</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. One of the fuel trim monitor&#x27;s (P0171 system too lean, P0172 system too rich) conditions for running its test stages: manifold pressure must be below this. Stock 100 kPa. Narrowing the window makes the monitor run less often. Effect: lower = the monitor&#x27;s stages stop at a lower manifold pressure Evidence: ledger:E0522, ledger:E0734, ledger:E0961</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A4E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x48F" flags="0x0">
    <title>Fuel Trim Monitor - Rich Segment, Short Term Trim Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): a purge-off segment counts as rich only when the filtered short term trim is also at or below this. Stock 1.25. Effect: lower = a rich segment also needs a lower short term trim Evidence: ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A3A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>multiplier</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x490" flags="0x0">
    <title>Fuel Trim Monitor - Purge Off Attempts</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor purge-off test (P0172): number of times purge may be shut off before the test is sent to its long wait. Stock 30. Effect: lower = the test gives up after fewer purge shut-offs Evidence: ledger:E1068</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A02" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>attempts</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x491" flags="0x30">
    <title>Fuel Trim Monitor - Purge Ramp Down Step</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor purge-off test (P0172): amount commanded purge is lowered every 100 ms when the test shuts purge off, by the purge command at the start of the ramp (0 to 100 %). Stock 199.8 % (purge off at once) up to 25 % purge, 10 % per step above. Effect: lower = purge is shut off more gradually Evidence: ledger:E0525, ledger:E0734, ledger:E1068</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% commanded purge</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.275" />
      <LABEL index="2" value="12.55" />
      <LABEL index="3" value="18.825" />
      <LABEL index="4" value="25.1" />
      <LABEL index="5" value="31.375" />
      <LABEL index="6" value="37.65" />
      <LABEL index="7" value="43.925" />
      <LABEL index="8" value="50.2" />
      <LABEL index="9" value="56.475" />
      <LABEL index="10" value="62.75" />
      <LABEL index="11" value="69.025" />
      <LABEL index="12" value="75.3" />
      <LABEL index="13" value="81.575" />
      <LABEL index="14" value="87.85" />
      <LABEL index="15" value="94.125" />
      <LABEL index="16" value="100.4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35B66" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% per step</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.781250</max>
      <MATH equation="X/326.4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x492" flags="0x0">
    <title>Fuel Trim Monitor - Purge Level During Test</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor purge-off test (P0172): commanded purge held while the non-purge trim is measured (the end point of the ramp down). Stock 0 %. Effect: raise = some purge keeps flowing during the purge-off measurement Evidence: ledger:E1068</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A54" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.781250</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/326.4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x493" flags="0x0">
    <title>Fuel Trim Monitor - Purge Off Segment Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor (P0171 / P0172): length of one purge-off segment, counted while the non-purge trim filter is running. Stock 7 s. Effect: raise = each purge-off segment lasts longer Evidence: ledger:E1067</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A10" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>6553.500000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/10"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x494" flags="0x0">
    <title>P1574 Check - RPM Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1574 check (compares switch inputs during decelerations): the check only runs while engine speed is at or above this. Stock 500 rpm. Effect: raise = the check needs a higher engine speed Evidence: ledger:E1049</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36DC4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x495" flags="0x0">
    <title>P1574 Check - Settle Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1574 check (compares switch inputs during decelerations): engine speed must have been above the rpm minimum for this long before the check starts. Stock 1 s. Effect: raise = the check starts later Evidence: ledger:E1049</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36DC6" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>12.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x496" flags="0x0">
    <title>EVAP Engine-Off Test - Re-Vent Count Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: number of re-vents allowed in the vacuum phase; one more ends the test with what it has. Stock 3. Effect: raise = more re-vents are allowed before the test is ended Evidence: ledger:E1050</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334B8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>count</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x497" flags="0x0">
    <title>EVAP Engine-Off Service Test - Result Hold Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP service test (the scan tool started version of the leak test): how long the finished test holds its result before it ends. Stock 600 s. Effect: raise = the service test stays in its final step longer Evidence: ledger:E1055</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33A1C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x498" flags="0x30">
    <title>EVAP Engine-Off Tank Vacuum Jump Window - Upper</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Change in filtered tank vacuum between updates, by fuel level (0 to 100 %), that is the upper edge of the window that sets the main tank vacuum jump flag during the engine-off test. Stock 32 inH2O in every cell, which is never reached. Effect: lower = the upper edge of the engine-off jump window comes down Evidence: ledger:E0556, ledger:E0899, ledger:E0935, ledger:E0937, ledger:E0940, ledger:E0944, ledger:E1054</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% fuel level</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.25" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.75" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31.25" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="56.25" />
      <LABEL index="10" value="62.5" />
      <LABEL index="11" value="68.75" />
      <LABEL index="12" value="75" />
      <LABEL index="13" value="81.25" />
      <LABEL index="14" value="87.5" />
      <LABEL index="15" value="93.75" />
      <LABEL index="16" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x33D94" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>inH2O</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x499" flags="0x30">
    <title>EVAP Engine-Off Tank Vacuum Jump Window - Lower</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Change in filtered tank vacuum between updates, by fuel level (0 to 100 %), that is the lower edge of the window that sets the main tank vacuum jump flag during the engine-off test. Stock 32 inH2O in every cell, which is never reached. Effect: lower = smaller jumps fall inside the engine-off jump window Evidence: ledger:E0556, ledger:E0899, ledger:E0935, ledger:E0937, ledger:E0940, ledger:E0944, ledger:E1054</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% fuel level</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.25" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.75" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31.25" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="56.25" />
      <LABEL index="10" value="62.5" />
      <LABEL index="11" value="68.75" />
      <LABEL index="12" value="75" />
      <LABEL index="13" value="81.25" />
      <LABEL index="14" value="87.5" />
      <LABEL index="15" value="93.75" />
      <LABEL index="16" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x33DB8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>inH2O</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x49A" flags="0x30">
    <title>Dwell Multiplier vs Cam-Phase Factor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplies coil dwell (base dwell times the voltage and coolant modifier) by the cam-phase factor (Cam-Phase Factor vs Cam Angle and RPM). Ten points from 0 to 0.27 in 0.03 steps; above 0.27 the last point is used. Stock 1.0 everywhere (no effect). Effect: raise = longer coil dwell at that cam-phase factor Evidence: ledger:E0550, ledger:E0884</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>10</indexcount>
      <units>cam-phase factor</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="0.03" />
      <LABEL index="2" value="0.06" />
      <LABEL index="3" value="0.09" />
      <LABEL index="4" value="0.12" />
      <LABEL index="5" value="0.15" />
      <LABEL index="6" value="0.18" />
      <LABEL index="7" value="0.21" />
      <LABEL index="8" value="0.24" />
      <LABEL index="9" value="0.27" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2F3BC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="10" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>multiplier</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x49B" flags="0x30">
    <title>Spark Floor vs RPM (alternate mode A)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest spark advance allowed, by rpm, while alternate spark mode A (a run condition set elsewhere in the PCM) is active. Spark below it is raised to it. Stock -15 deg at every rpm. Effect: raise = spark is never allowed below a higher advance Evidence: ledger:E0552, ledger:E0718, ledger:E0724</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="256" />
      <LABEL index="2" value="512" />
      <LABEL index="3" value="768" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1280" />
      <LABEL index="6" value="1536" />
      <LABEL index="7" value="1792" />
      <LABEL index="8" value="2048" />
      <LABEL index="9" value="2304" />
      <LABEL index="10" value="2560" />
      <LABEL index="11" value="2816" />
      <LABEL index="12" value="3072" />
      <LABEL index="13" value="3328" />
      <LABEL index="14" value="3584" />
      <LABEL index="15" value="3840" />
      <LABEL index="16" value="4096" />
      <LABEL index="17" value="4352" />
      <LABEL index="18" value="4608" />
      <LABEL index="19" value="4864" />
      <LABEL index="20" value="5120" />
      <LABEL index="21" value="5376" />
      <LABEL index="22" value="5632" />
      <LABEL index="23" value="5888" />
      <LABEL index="24" value="6144" />
      <LABEL index="25" value="6400" />
      <LABEL index="26" value="6656" />
      <LABEL index="27" value="6912" />
      <LABEL index="28" value="7168" />
      <LABEL index="29" value="7424" />
      <LABEL index="30" value="7680" />
      <LABEL index="31" value="7936" />
      <LABEL index="32" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2FB44" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x49C" flags="0x30">
    <title>Spark Floor vs RPM (alternate mode B)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest spark advance allowed, by rpm, while alternate spark mode B (a run condition set elsewhere in the PCM; mode A takes priority) is active. Spark below it is raised to it. Stock -20 deg at every rpm. Effect: raise = spark is never allowed below a higher advance Evidence: ledger:E0552, ledger:E0718, ledger:E0724</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="256" />
      <LABEL index="2" value="512" />
      <LABEL index="3" value="768" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1280" />
      <LABEL index="6" value="1536" />
      <LABEL index="7" value="1792" />
      <LABEL index="8" value="2048" />
      <LABEL index="9" value="2304" />
      <LABEL index="10" value="2560" />
      <LABEL index="11" value="2816" />
      <LABEL index="12" value="3072" />
      <LABEL index="13" value="3328" />
      <LABEL index="14" value="3584" />
      <LABEL index="15" value="3840" />
      <LABEL index="16" value="4096" />
      <LABEL index="17" value="4352" />
      <LABEL index="18" value="4608" />
      <LABEL index="19" value="4864" />
      <LABEL index="20" value="5120" />
      <LABEL index="21" value="5376" />
      <LABEL index="22" value="5632" />
      <LABEL index="23" value="5888" />
      <LABEL index="24" value="6144" />
      <LABEL index="25" value="6400" />
      <LABEL index="26" value="6656" />
      <LABEL index="27" value="6912" />
      <LABEL index="28" value="7168" />
      <LABEL index="29" value="7424" />
      <LABEL index="30" value="7680" />
      <LABEL index="31" value="7936" />
      <LABEL index="32" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2FB8C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x49D" flags="0x30">
    <title>Spark Floor vs RPM (default)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest spark advance allowed, by rpm, in normal running. Spark below it is raised to it. Stock -15 deg at every rpm. (E0724) Effect: raise = spark is never allowed below a higher advance Evidence: ledger:E0552, ledger:E0718, ledger:E0724</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="256" />
      <LABEL index="2" value="512" />
      <LABEL index="3" value="768" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1280" />
      <LABEL index="6" value="1536" />
      <LABEL index="7" value="1792" />
      <LABEL index="8" value="2048" />
      <LABEL index="9" value="2304" />
      <LABEL index="10" value="2560" />
      <LABEL index="11" value="2816" />
      <LABEL index="12" value="3072" />
      <LABEL index="13" value="3328" />
      <LABEL index="14" value="3584" />
      <LABEL index="15" value="3840" />
      <LABEL index="16" value="4096" />
      <LABEL index="17" value="4352" />
      <LABEL index="18" value="4608" />
      <LABEL index="19" value="4864" />
      <LABEL index="20" value="5120" />
      <LABEL index="21" value="5376" />
      <LABEL index="22" value="5632" />
      <LABEL index="23" value="5888" />
      <LABEL index="24" value="6144" />
      <LABEL index="25" value="6400" />
      <LABEL index="26" value="6656" />
      <LABEL index="27" value="6912" />
      <LABEL index="28" value="7168" />
      <LABEL index="29" value="7424" />
      <LABEL index="30" value="7680" />
      <LABEL index="31" value="7936" />
      <LABEL index="32" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2FAFC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x49E" flags="0x0">
    <title>MAP Plausibility - Fail Count (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Inactive on the stock calibration: the check&#x27;s enable is off, so it never runs. MAP plausibility check: every sample in which manifold pressure is above the high limit or below the low limit for the current engine speed and throttle area counts as out of band. When the out-of-band count reaches the fail count, the window ends as a failure; when the window reaches its sample count first, it ends as a pass. The high limit tops out near 104 kPa, so sustained boost would be counted out of band, but the check sets no code. This is the out-of-band sample count that ends a window as a failure. Stock 80. Effect: raise = more out-of-band samples needed to fail a window Evidence: ledger:E0565, ledger:E0886, ledger:E0890</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F5C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x49F" flags="0x0">
    <title>MAP Plausibility - Window Samples (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Inactive on the stock calibration: the check&#x27;s enable is off, so it never runs. MAP plausibility check: every sample in which manifold pressure is above the high limit or below the low limit for the current engine speed and throttle area counts as out of band. When the out-of-band count reaches the fail count, the window ends as a failure; when the window reaches its sample count first, it ends as a pass. The high limit tops out near 104 kPa, so sustained boost would be counted out of band, but the check sets no code. This is the number of samples in a window. Stock 100. Effect: raise = longer windows (keep above the fail count) Evidence: ledger:E0565, ledger:E0886, ledger:E0890</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35F5E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x4A0" flags="0x30">
    <title>MAP Circuit High - Arming Time vs Startup Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. After each start the MAP sensor circuit high monitor (P0108 and P1106) waits this long before it counts samples, by coolant temperature at start. Five points from -30 to 30 C in 15 C steps; outside that range the end points are used. Stock 40 s at -30 C, 30 s at -15 C, 20 s at 0 and 15 C, 5 s at 30 C and above. Effect: raise = the high-circuit monitor starts later after a start Evidence: ledger:E0566, ledger:E0890</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>5</indexcount>
      <units>degC (startup coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-30" />
      <LABEL index="1" value="-15" />
      <LABEL index="2" value="0" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="30" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x360DE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="5" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4A1" flags="0x30">
    <title>MAP Sensor Fault Substitute - Throttle Term</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When the MAP sensor has failed, the PCM uses a modelled manifold pressure instead: the throttle term (throttle area times the throttle curve) plus the engine speed term, capped at 90 kPa. This curve is the throttle term&#x27;s gain by engine speed: kPa of substitute pressure per percent of throttle area. Effect: raise = substitute manifold pressure rises faster with throttle at that engine speed Evidence: ledger:E0166, ledger:E0567, ledger:E0716, ledger:E0839</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>26</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2BFDE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="26" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>kPa per % throttle area</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>20.479375</max>
      <MATH equation="X/3200.0488"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4A2" flags="0x30">
    <title>MAP Sensor Fault Substitute - Engine Speed Term</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When the MAP sensor has failed, the PCM uses a modelled manifold pressure instead: the throttle term (throttle area times the throttle curve) plus the engine speed term, capped at 90 kPa. This curve is the engine speed term, added directly. Stock 96 kPa with the engine stopped, falling to 7.5 kPa at higher engine speed. Effect: raise = higher substitute manifold pressure at that engine speed Evidence: ledger:E0166, ledger:E0567, ledger:E0716, ledger:E0839</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>26</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2BFA8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="26" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>kPa</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>255.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x4A3" flags="0x0">
    <title>Airflow Rationality - Intake Air Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101): lowest intake air temperature at which the test runs. Stock -7 C. Effect: raise = the test does not run in colder air Evidence: ledger:E1066</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35D10" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4A4" flags="0x0">
    <title>Airflow Rationality - Intake Air Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101): highest intake air temperature at which the test runs. Stock 125 C. Effect: lower = the test stops at a lower intake air temperature Evidence: ledger:E1066</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35D0E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4A5" flags="0x0">
    <title>Airflow Rationality - Engine Speed Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101): highest engine speed at which the test runs. Stock 8191.9 rpm (no limit). Effect: lower = the test stops above this engine speed Evidence: ledger:E1066</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35D12" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4A6" flags="0x0">
    <title>Airflow Rationality - Intake Manifold Volume</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101), diagnostic model only: intake manifold volume the two manifold pressure models use to turn the difference between air entering and air leaving into a pressure change. Stock 6.4 L. Change only for a different intake manifold. Effect: raise = the modelled manifold pressure changes more slowly Evidence: ledger:E1074</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35E4E" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>L</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>268435.455937</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16000"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4A7" flags="0x0">
    <title>Airflow Rationality - Pressure Difference Filter, Throttle Model</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101): filter on the difference between measured manifold pressure and the pressure modelled from throttle position; each update the filtered difference moves this fraction of the way to the new reading. Stock 0.01 (it takes roughly 100 updates, about 10 s, to follow a change). Effect: raise = the first pressure check reacts faster and is less smoothed Evidence: ledger:E1066</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35E80" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4A8" flags="0x0">
    <title>Airflow Rationality - Pressure Difference Filter, Airflow Model</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101): filter on the difference between measured manifold pressure and the pressure modelled from measured airflow; each update the filtered difference moves this fraction of the way to the new reading. Stock 0.01 (it takes roughly 100 updates, about 10 s, to follow a change). Effect: raise = the second pressure check reacts faster and is less smoothed Evidence: ledger:E1066</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35E82" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4A9" flags="0x0">
    <title>Catalyst Monitor - Idle RPM Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: engine speed below this counts as idle; time spent at or above it counts as driving. Stock 950 rpm. Effect: raise = higher engine speeds still count as idle Evidence: ledger:E0998</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322FE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4AA" flags="0x0">
    <title>Catalyst Monitor Enable - Off Idle Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: an idle period only qualifies for a test if the engine spent at least this long off idle just before it. Stock 35 s. Effect: lower = a shorter drive between idle periods is enough Evidence: ledger:E0998</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3230A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4AB" flags="0x0">
    <title>Catalyst Monitor Enable - Engine Run Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: an idle period only qualifies once the engine has been running at least this long. Stock 600 s. Effect: lower = the test can run sooner after a start Evidence: ledger:E0998</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3230C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4AC" flags="0x0">
    <title>Catalyst Monitor Enable - Stopped Time Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: only arms while the vehicle has been stopped with the throttle closed for no longer than this. Stock 60 s. Effect: raise = the test can still arm later into a stop Evidence: ledger:E0999</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32304" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4AD" flags="0x0">
    <title>Catalyst Monitor Enable - Intake Air Temperature Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: only arms while intake air temperature is below this. Stock 80 C. Effect: lower = the test stops arming at a lower intake air temperature Evidence: ledger:E0572, ledger:E0984, ledger:E0998</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322FC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4AE" flags="0x0">
    <title>P0116 Test Enable - Engine Off Soak Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant rationality test (P0116): only runs after the engine has been off for longer than this. Stock 28800 s (8 hours). Effect: lower = the test also runs after a shorter soak Evidence: ledger:E1011</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32EC0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4AF" flags="0x0">
    <title>P0125 / P0128 Check - Intake Air Temperature Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant warm-up checks P0125 / P0128: the checks are skipped for the trip once the lowest intake air temperature seen since start is below this. Stock -6.75 degC. Effect: lower = the checks also run in colder weather Evidence: ledger:E1056</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32ECC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4B0" flags="0x0">
    <title>P0125 / P0128 Check - Engine Run Time Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant warm-up checks P0125 / P0128: an instance that has not started by this engine run time is skipped for the trip. Stock 1800 s. Effect: raise = the checks may still start later in the trip Evidence: ledger:E1056</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32EC8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4B1" flags="0x0">
    <title>P0125 / P0128 Check - Engine Run Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant warm-up checks P0125 / P0128: the checks become active once the engine has run this long. Stock 30 s. Effect: raise = the checks become active later Evidence: ledger:E1056</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32ECA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4B2" flags="0x0">
    <title>P0125 / P0128 Check - Distance Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant warm-up checks P0125 / P0128: the distance they require only counts while vehicle speed is at or above this. Stock 3 km/h. Effect: raise = slow driving no longer counts toward the distance Evidence: ledger:E1056</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32ED0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4B3" flags="0x0">
    <title>Minimum RPM Run Latch</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. RPM threshold that permanently latches a run-detected flag for the remainder of the key cycle once engine speed climbs above it. Stock 50 rpm. Effect: raise = engine must spin faster before the latch sets; lower = the latch sets sooner Evidence: ledger:E0583</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x32E6C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4B4" flags="0x0">
    <title>Diagnostic Model - Engine Speed Input Ceiling</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Diagnostic model: three channels that rise toward a target set by engine speed and airflow and fall back when they drop, with a fixed value while coolant is cold. Its only readers are the misfire monitor enable conditions, a diagnostic timer and the secondary air routine; it does not limit torque, spark, fuel or throttle. Engine speed above this counts as this speed. Changing it moves when the misfire monitor runs. Stock 4000 rpm. Effect: moves when the misfire monitor and related diagnostics are enabled Evidence: ledger:E0588, ledger:E0852</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32F7A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4B5" flags="0x0">
    <title>Diagnostic Model - Airflow Input Ceiling</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Diagnostic model: three channels that rise toward a target set by engine speed and airflow and fall back when they drop, with a fixed value while coolant is cold. Its only readers are the misfire monitor enable conditions, a diagnostic timer and the secondary air routine; it does not limit torque, spark, fuel or throttle. Airflow above this counts as this airflow. Changing it moves when the misfire monitor runs. Stock 50 g/s. Effect: moves when the misfire monitor and related diagnostics are enabled Evidence: ledger:E0588, ledger:E0852</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32F7C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4B6" flags="0x0">
    <title>Idle Throttle Area Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The idle airflow control&#x27;s throttle area request is capped at this percentage of full throttle area. Stock 2.82 %. Effect: raise = the idle control can open the throttle further Evidence: ledger:E0282, ledger:E0589, ledger:E0924</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x246D8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>99.998474</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.36"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x4B7" flags="0x30">
    <title>Pedal Throttle Request Factor vs Commanded Air-Fuel Ratio</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Factor on the driver&#x27;s pedal throttle request, by the commanded air-fuel ratio (0 to 32). The PCM multiplies the pedal map&#x27;s throttle request by this and several other factors. 1.0 = no change; lower = less throttle for the same pedal. Stock 1.0 everywhere. Effect: lower = less throttle for the same pedal position Evidence: ledger:E0594, ledger:E0947</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>AFR (commanded)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="2" />
      <LABEL index="2" value="4" />
      <LABEL index="3" value="6" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="10" />
      <LABEL index="6" value="12" />
      <LABEL index="7" value="14" />
      <LABEL index="8" value="16" />
      <LABEL index="9" value="18" />
      <LABEL index="10" value="20" />
      <LABEL index="11" value="22" />
      <LABEL index="12" value="24" />
      <LABEL index="13" value="26" />
      <LABEL index="14" value="28" />
      <LABEL index="15" value="30" />
      <LABEL index="16" value="32" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x239A2" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4B8" flags="0x30">
    <title>Pedal Throttle Request Factor vs Torque Reduction</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Factor on the driver&#x27;s pedal throttle request, by how much of the engine torque is being removed (0 to 50 %). The PCM multiplies the pedal map&#x27;s throttle request by this and several other factors. 1.0 = no change; lower = less throttle for the same pedal. Stock 1.0 everywhere. Effect: lower = less throttle for the same pedal position Evidence: ledger:E0594, ledger:E0947</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% torque reduction</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="3.125" />
      <LABEL index="2" value="6.25" />
      <LABEL index="3" value="9.375" />
      <LABEL index="4" value="12.5" />
      <LABEL index="5" value="15.625" />
      <LABEL index="6" value="18.75" />
      <LABEL index="7" value="21.875" />
      <LABEL index="8" value="25" />
      <LABEL index="9" value="28.125" />
      <LABEL index="10" value="31.25" />
      <LABEL index="11" value="34.375" />
      <LABEL index="12" value="37.5" />
      <LABEL index="13" value="40.625" />
      <LABEL index="14" value="43.75" />
      <LABEL index="15" value="46.875" />
      <LABEL index="16" value="50" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x239D8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4B9" flags="0x30">
    <title>Vacuum Plausibility Threshold vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A manifold vacuum threshold, indexed by engine speed, used to flag a vacuum reading as out of range for the checks that depend on it. Stock is a flat 10.0 kPa across the whole rpm range. Effect: Raising a point makes the vacuum reading have to drop further before it counts as in range at that rpm; lowering it makes the reading count as in range sooner. Evidence: ledger:E0598, ledger:E0792, ledger:E0805</description>
    <CATEGORYMEM index="0" category="5" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x245B4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>kPa</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>255.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x4BA" flags="0x0">
    <title>Fuel Level Filter Start Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time the PCM waits after the fuel level filter is reset before it starts filtering fuel level, and with it the fuel level jump check the EVAP leak test uses. Stock 1.0 s. Effect: raise = fuel level filtering and the EVAP fuel level jump check start later Evidence: ledger:E0217, ledger:E0599, ledger:E0942</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34F16" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4BB" flags="0x0">
    <title>EVAP Vapour Reference at Full Tank</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP test vapour reference with a full tank. The PCM blends linearly from this value (full) to the empty-tank value by fuel level, and the EVAP leak test tables are looked up by the result, so this sets which rows of those tables apply at each fuel level. Stock 3003. Shown raw. DO NOT EDIT. Effect: raise = the blended result starts higher; lower = it starts lower Evidence: ledger:E0599, ledger:E0899, ledger:E0941, ledger:E0944</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34F1E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>raw</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4BC" flags="0x0">
    <title>EVAP Vapour Reference at Empty Tank</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP test vapour reference with an empty tank. The PCM blends linearly from the full-tank value to this value (empty) by fuel level, and the EVAP leak test tables are looked up by the result, so this sets which rows of those tables apply at each fuel level. Stock 25582. Shown raw. DO NOT EDIT. Effect: raise = the blended result can reach higher; lower = it is capped lower Evidence: ledger:E0599, ledger:E0899, ledger:E0941, ledger:E0944</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34F18" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>raw</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x4BD" flags="0x30">
    <title>EVAP Test Fuel Level Jump Limit A</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Largest change in filtered fuel level between updates that the EVAP leak test tolerates, by fuel level. A bigger jump (either direction) sets a fuel level jump flag, and the EVAP leak test routines pause or restart while it is set. Stock 100 % everywhere, so the flag never sets. Effect: lower = smaller fuel level jumps pause or restart the EVAP leak test Evidence: ledger:E0600, ledger:E0935</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% fuel level</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.25" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.75" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31.25" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="56.25" />
      <LABEL index="10" value="62.5" />
      <LABEL index="11" value="68.75" />
      <LABEL index="12" value="75" />
      <LABEL index="13" value="81.25" />
      <LABEL index="14" value="87.5" />
      <LABEL index="15" value="93.75" />
      <LABEL index="16" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34ED0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% fuel level change</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4BE" flags="0x30">
    <title>EVAP Test Fuel Level Jump Limit B</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Largest change in filtered fuel level between updates that the EVAP leak test tolerates, by fuel level. A bigger jump (either direction) sets a fuel level jump flag, and the EVAP leak test routines pause or restart while it is set. Stock 100 % everywhere, so the flag never sets. Effect: lower = smaller fuel level jumps pause or restart the EVAP leak test Evidence: ledger:E0600, ledger:E0935</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% fuel level</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.25" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.75" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31.25" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="56.25" />
      <LABEL index="10" value="62.5" />
      <LABEL index="11" value="68.75" />
      <LABEL index="12" value="75" />
      <LABEL index="13" value="81.25" />
      <LABEL index="14" value="87.5" />
      <LABEL index="15" value="93.75" />
      <LABEL index="16" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34EF4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% fuel level change</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x4BF" flags="0x0">
    <title>P0496 Pass - Time, Cold Start</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP purge valve leak check (P0496): time with purge off without the vacuum limit being exceeded that passes the check, cold start. Stock 60 s. Effect: raise = the check runs longer before it passes Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FF0" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>214748364.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x4C0" flags="0x30">
    <title>EVAP Leak Test Settle Time Limit - Low Range</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP leak test, before the vacuum hold is timed: while tank vacuum is still above the settle level, the PCM waits up to this long before it takes the starting vacuum reading, then starts timing the decay. The axis covers the lower half of the EVAP test reference value (the EVAP vapour reference, which the PCM derives from fuel level: the axis labels give the fuel level on stock settings, n/a = not reached). Stock 40 s everywhere. Not used by the stock calibration: this belongs to the engine-running small leak phase, which the stock calibration switches off (small leaks are checked by the engine-off test instead). Effect: no effect in the stock calibration Evidence: ledger:E0217, ledger:E0603, ledger:E0828, ledger:E0933, ledger:E0941, ledger:E1071</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>% fuel level (stock settings)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="n/a" />
      <LABEL index="1" value="n/a" />
      <LABEL index="2" value="n/a" />
      <LABEL index="3" value="100" />
      <LABEL index="4" value="95" />
      <LABEL index="5" value="91" />
      <LABEL index="6" value="86" />
      <LABEL index="7" value="82" />
      <LABEL index="8" value="77" />
      <LABEL index="9" value="72" />
      <LABEL index="10" value="68" />
      <LABEL index="11" value="63" />
      <LABEL index="12" value="59" />
      <LABEL index="13" value="54" />
      <LABEL index="14" value="50" />
      <LABEL index="15" value="45" />
      <LABEL index="16" value="41" />
      <LABEL index="17" value="36" />
      <LABEL index="18" value="32" />
      <LABEL index="19" value="27" />
      <LABEL index="20" value="23" />
      <LABEL index="21" value="18" />
      <LABEL index="22" value="14" />
      <LABEL index="23" value="9" />
      <LABEL index="24" value="4" />
      <LABEL index="25" value="0" />
      <LABEL index="26" value="n/a" />
      <LABEL index="27" value="n/a" />
      <LABEL index="28" value="n/a" />
      <LABEL index="29" value="n/a" />
      <LABEL index="30" value="n/a" />
      <LABEL index="31" value="n/a" />
      <LABEL index="32" value="n/a" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x354E6" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>3276.750000</max>
      <MATH equation="X/20"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4C1" flags="0x30">
    <title>EVAP Leak Test Settle Time Limit - High Range</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP leak test, before the vacuum hold is timed: while tank vacuum is still above the settle level, the PCM waits up to this long before it takes the starting vacuum reading, then starts timing the decay. The axis covers the upper half of the EVAP test reference value (the EVAP vapour reference; with stock settings it never reaches this range, so this curve is not used). Stock 40 s everywhere. Not used by the stock calibration: this belongs to the engine-running small leak phase, which the stock calibration switches off (small leaks are checked by the engine-off test instead). Effect: no effect in the stock calibration Evidence: ledger:E0217, ledger:E0603, ledger:E0828, ledger:E0933, ledger:E0941, ledger:E1071</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>% fuel level (stock settings)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="n/a" />
      <LABEL index="1" value="n/a" />
      <LABEL index="2" value="n/a" />
      <LABEL index="3" value="n/a" />
      <LABEL index="4" value="n/a" />
      <LABEL index="5" value="n/a" />
      <LABEL index="6" value="n/a" />
      <LABEL index="7" value="n/a" />
      <LABEL index="8" value="n/a" />
      <LABEL index="9" value="n/a" />
      <LABEL index="10" value="n/a" />
      <LABEL index="11" value="n/a" />
      <LABEL index="12" value="n/a" />
      <LABEL index="13" value="n/a" />
      <LABEL index="14" value="n/a" />
      <LABEL index="15" value="n/a" />
      <LABEL index="16" value="n/a" />
      <LABEL index="17" value="n/a" />
      <LABEL index="18" value="n/a" />
      <LABEL index="19" value="n/a" />
      <LABEL index="20" value="n/a" />
      <LABEL index="21" value="n/a" />
      <LABEL index="22" value="n/a" />
      <LABEL index="23" value="n/a" />
      <LABEL index="24" value="n/a" />
      <LABEL index="25" value="n/a" />
      <LABEL index="26" value="n/a" />
      <LABEL index="27" value="n/a" />
      <LABEL index="28" value="n/a" />
      <LABEL index="29" value="n/a" />
      <LABEL index="30" value="n/a" />
      <LABEL index="31" value="n/a" />
      <LABEL index="32" value="n/a" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3552E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>3276.750000</max>
      <MATH equation="X/20"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x4C2" flags="0x0">
    <title>EVAP Test - Purge Step per Update</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-running EVAP test: largest change of commanded purge per 100 ms while the test controls purge (pull-down and ramp down). Stock 1 %. Effect: raise = purge changes faster during the test Evidence: ledger:E0605, ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3500E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.781250</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/326.4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4C3" flags="0x0">
    <title>Tip-In Torque Ramp - Fast Step Vehicle Speed Trigger</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after a closed-throttle tip-in the torque limit ramps up (default, lash and fast steps). The fast step starts once the limit passes its target, once gearbox slip is large, or once the driveline has shunted forward, swung back and started climbing again. After a shunt and swing back, the fast step also starts once vehicle speed rises faster than this per update. Stock 60 km/h per update (effectively off). Effect: tip-in torque management Evidence: ledger:E0845, ledger:E0846</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x20F54" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h per update</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4C4" flags="0x0">
    <title>Extra Diagnostic Service Gate Enable (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Enables or disables an additional diagnostic-service gate that must pass an engine speed threshold and two other status checks before a periodic diagnostic service routine runs. Stock is off on this vehicle; the same gate is on in some other GM applications of this controller. Effect: Turning it on allows the diagnostic routine to run once the speed and status conditions are met; off, the routine never runs. Stock is off. Evidence: ledger:E0620, ledger:E0799, ledger:E0805</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36DDE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>flag</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x4C5" flags="0x30">
    <title>Starter - Cut-Out RPM vs Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The PCM treats the engine as started, and turns the starter relay off, once engine speed has stayed above this for a short confirmation count, by coolant temperature. Stock 550 rpm at -40 C falling to 400 rpm from 56 C. Effect: raise = the starter stays engaged to a higher engine speed Evidence: ledger:E1024</description>
    <CATEGORYMEM index="0" category="11" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2FC5A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4C6" flags="0x30">
    <title>Starter Low-Voltage Hold - Hold Time vs Startup Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Starter low-voltage hold: the hold ends this long after the starter engaged, by coolant temperature at start-up; after that the normal key and crank time rules apply again. Stock 4.5 s at -30 C to 1.5 s from 7.5 C. Effect: raise = the starter is held longer through a voltage collapse Evidence: ledger:E1025</description>
    <CATEGORYMEM index="0" category="11" />
    <XDFAXIS id="x">
      <indexcount>5</indexcount>
      <units>degC (startup coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-30" />
      <LABEL index="1" value="-17.5" />
      <LABEL index="2" value="-5" />
      <LABEL index="3" value="7.5" />
      <LABEL index="4" value="20" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2FC46" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="5" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4C7" flags="0x30">
    <title>Starter Low-Voltage Hold - Arm Time vs Startup Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Starter low-voltage hold: if system voltage collapses below 4 V while cranking, the PCM keeps the starter engaged without the key signal. That can only begin once the starter has been engaged for this long. Stock 0.2 s. Effect: raise = the starter must be engaged longer before the hold can begin Evidence: ledger:E1025</description>
    <CATEGORYMEM index="0" category="11" />
    <XDFAXIS id="x">
      <indexcount>5</indexcount>
      <units>degC (startup coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-30" />
      <LABEL index="1" value="-17.5" />
      <LABEL index="2" value="-5" />
      <LABEL index="3" value="7.5" />
      <LABEL index="4" value="20" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2FC36" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="5" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x4C8" flags="0x0">
    <title>Plausibility Check Timer Gate A</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long a running timer must accumulate before a downstream plausibility check is even evaluated; below this time the check is skipped entirely. The check this gate belongs to is an unidentified plausibility check, since its fault code has not been identified. Stock is 0.5 seconds. Effect: Raising it makes the timer run longer before the plausibility check below is evaluated at all; lowering it lets the check be reached sooner. Evidence: ledger:E0625, ledger:E0801, ledger:E0805</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x20256" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>seconds</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4C9" flags="0x0">
    <title>Plausibility Check Timer Gate B</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long a running timer must accumulate before a downstream plausibility check is even evaluated; below this time the check is skipped entirely. The check this gate belongs to is an unidentified plausibility check, since its fault code has not been identified. Stock is 1.0 second. Effect: Raising it makes the timer run longer before the plausibility check below is evaluated at all; lowering it lets the check be reached sooner. Evidence: ledger:E0626, ledger:E0801, ledger:E0805</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x2025A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>seconds</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4CA" flags="0x0">
    <title>Intake Air Temperature Plausibility Check Timer Gate</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long a running timer must accumulate before the intake air temperature plausibility check downstream is even evaluated; below this time the check is skipped entirely. The specific fault code this check sets has not been identified. Stock is 1.0 second. Effect: Raising it makes the timer run longer before the intake air temperature plausibility check is evaluated at all; lowering it lets the check be reached sooner. Evidence: ledger:E0627, ledger:E0801, ledger:E0805</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x2025E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>seconds</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4CB" flags="0x0">
    <title>Intake Air Temperature Plausibility Drift Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How much the intake air temperature reading is allowed to drift away from a periodically recorded snapshot of itself before the plausibility check treats it as suspect. The specific fault code this check sets has not been identified. Stock is 5.0 degrees Celsius. Effect: Raising it lets the sensor drift further from its recorded snapshot before being treated as suspect; lowering it means a smaller drift is enough to flag it. Evidence: ledger:E0627, ledger:E0801, ledger:E0805</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x2025C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4CC" flags="0x0">
    <title>Plausibility Check Timer Gate C</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long a running timer must accumulate before a downstream plausibility check is even evaluated; below this time the check is skipped entirely. The check this gate belongs to is an unidentified plausibility check, since its fault code has not been identified. Stock is 1.0 second. Effect: Raising it makes the timer run longer before the plausibility check below is evaluated at all; lowering it lets the check be reached sooner. Evidence: ledger:E0628, ledger:E0801, ledger:E0805</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x20262" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>seconds</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4CD" flags="0x0">
    <title>Cam Phasing Alt Mode Deactivate Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine speed at or below which an alternate cam phasing control mode is switched off once it has been active (further conditions must also hold for it to stay on above this speed). Stock value is above the engine&#x27;s redline, so this mode is not reached in normal driving. Effect: raise = the mode has to run at a higher engine speed before it can be switched off Evidence: ledger:E0630</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22904" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4CE" flags="0x0">
    <title>Cam Phasing Alt Mode Activate Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine speed that an alternate cam phasing control mode must reach, along with other conditions, before it can switch on. Stock value is above the engine&#x27;s redline, so this mode does not activate in normal driving. Effect: raise = a higher engine speed is required before the mode can switch on Evidence: ledger:E0630</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22906" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x4CF" flags="0x30">
    <title>Intake Air Temp Sensor - Temperature Points</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Temperature at each of the 33 sensor resistance points (stock 150 C down to -40 C in 5.9 C steps); the PCM interpolates between them to get intake air temperature. Effect: reported and used intake air temperature Evidence: ledger:E0638, ledger:E1047</description>
    <CATEGORYMEM index="0" category="10" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>point</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <LABEL index="31" value="31" />
      <LABEL index="32" value="32" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x28B06" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x4D0" flags="0x0">
    <title>Idle Speed Diagnostic Enable - Barometric Pressure Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The idle speed diagnostic (P0506 idle rpm lower than expected, P0507 higher than expected) only runs while barometric pressure is at or above this. Stock 75 kPa. Effect: raise = the diagnostic stops running at a lower altitude Evidence: ledger:E0640, ledger:E0679, ledger:E0898, ledger:E0985</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35CF0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x4D1" flags="0x30">
    <title>Load Cam Target Offset vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Load cam target offset: once a fuel start-up ramp has finished, an offset is taken off the load-based cam target: the offset by engine speed, times a factor by time since it became active, times a factor by cylinder airmass. Stock all three tables are zero, so the offset is off; filling them switches it on. This is the offset by engine speed. Effect: raise = less cam angle from the load target at that speed Evidence: ledger:E0644, ledger:E0876</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="400" />
      <LABEL index="2" value="800" />
      <LABEL index="3" value="1200" />
      <LABEL index="4" value="1600" />
      <LABEL index="5" value="2000" />
      <LABEL index="6" value="2400" />
      <LABEL index="7" value="2800" />
      <LABEL index="8" value="3200" />
      <LABEL index="9" value="3600" />
      <LABEL index="10" value="4000" />
      <LABEL index="11" value="4400" />
      <LABEL index="12" value="4800" />
      <LABEL index="13" value="5200" />
      <LABEL index="14" value="5600" />
      <LABEL index="15" value="6000" />
      <LABEL index="16" value="6400" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22C40" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4D2" flags="0x30">
    <title>Load Cam Target Offset - Time Factor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Load cam target offset: once a fuel start-up ramp has finished, an offset is taken off the load-based cam target: the offset by engine speed, times a factor by time since it became active, times a factor by cylinder airmass. Stock all three tables are zero, so the offset is off; filling them switches it on. This is the factor by time since the offset became active. Effect: raise = more of the offset at that time Evidence: ledger:E0644, ledger:E0876</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>s (since active)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="4" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="16" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="24" />
      <LABEL index="7" value="28" />
      <LABEL index="8" value="32" />
      <LABEL index="9" value="36" />
      <LABEL index="10" value="40" />
      <LABEL index="11" value="44" />
      <LABEL index="12" value="48" />
      <LABEL index="13" value="52" />
      <LABEL index="14" value="56" />
      <LABEL index="15" value="60" />
      <LABEL index="16" value="64" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22C64" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4D3" flags="0x30">
    <title>Load Cam Target Offset - Airmass Factor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Load cam target offset: once a fuel start-up ramp has finished, an offset is taken off the load-based cam target: the offset by engine speed, times a factor by time since it became active, times a factor by cylinder airmass. Stock all three tables are zero, so the offset is off; filling them switches it on. This is the factor by cylinder airmass. Effect: raise = more of the offset at that airmass Evidence: ledger:E0644, ledger:E0876</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>g/cyl (airmass)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.08" />
      <LABEL index="1" value="0.12" />
      <LABEL index="2" value="0.16" />
      <LABEL index="3" value="0.2" />
      <LABEL index="4" value="0.24" />
      <LABEL index="5" value="0.28" />
      <LABEL index="6" value="0.32" />
      <LABEL index="7" value="0.36" />
      <LABEL index="8" value="0.4" />
      <LABEL index="9" value="0.44" />
      <LABEL index="10" value="0.48" />
      <LABEL index="11" value="0.52" />
      <LABEL index="12" value="0.56" />
      <LABEL index="13" value="0.6" />
      <LABEL index="14" value="0.64" />
      <LABEL index="15" value="0.68" />
      <LABEL index="16" value="0.72" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22C88" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4D4" flags="0x30">
    <title>O2 Heater - Upstream Duty During Turn-On Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor heater: upstream heater duty while the turn-on delay after start is still running, by coolant temperature at start-up. Stock 0 % everywhere (heater off during the delay). Effect: raise = the upstream heater is run gently during the delay Evidence: ledger:E1062</description>
    <CATEGORYMEM index="0" category="11" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (startup coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2C0F8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>199.996948</max>
      <MATH equation="X/327.68"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4D5" flags="0x30">
    <title>O2 Response Test (P1134) - Min Time Ratio (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Used only by the ratio form of the P1134 test, which stock does not select. Stock 0. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: no effect on stock (inactive) Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3404C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ratio</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4D6" flags="0x30">
    <title>O2 Response Test - Max Average Lean-to-Rich Time, Second Sensor (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Copy of the sensor 1 limit for a second front O2 sensor. The H3 tests one sensor, so this is never used. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: no effect on stock (inactive) Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x340D0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ms</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>63999.023438</max>
      <MATH equation="X/1.024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4D7" flags="0x30">
    <title>O2 Response Test - Max Average Rich-to-Lean Time, Second Sensor (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Copy of the sensor 1 limit for a second front O2 sensor. The H3 tests one sensor, so this is never used. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: no effect on stock (inactive) Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34128" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ms</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>63999.023438</max>
      <MATH equation="X/1.024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4D8" flags="0x30">
    <title>O2 Response Test - Min Time Ratio, Second Sensor (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Copy of the sensor 1 limit for a second front O2 sensor. The H3 tests one sensor, so this is never used. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: no effect on stock (inactive) Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x341AC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ratio</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4D9" flags="0x30">
    <title>O2 Response Test - Max Time Difference, Second Sensor (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Copy of the sensor 1 limit for a second front O2 sensor. The H3 tests one sensor, so this is never used. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: no effect on stock (inactive) Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3425C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>ms</units>
      <decimalpl>1</decimalpl>
      <min>-32000.000000</min>
      <max>31999.023438</max>
      <MATH equation="X/1.024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4DA" flags="0x30">
    <title>O2 Response Test - Min Time Difference, Second Sensor (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Copy of the sensor 1 limit for a second front O2 sensor. The H3 tests one sensor, so this is never used. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: no effect on stock (inactive) Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x342B4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>ms</units>
      <decimalpl>1</decimalpl>
      <min>-32000.000000</min>
      <max>31999.023438</max>
      <MATH equation="X/1.024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4DB" flags="0x30">
    <title>Fuel Level vs Sender Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Converts the fuel tank level sender voltage (0 to 5 V in 0.156 V steps) to the fuel level the PCM reports on the fuel level PID and uses for its EVAP leak tests. Cells are fuel level in %. Stock reads full (101 %) up to about 0.8 V and falls to empty at about 2.7 V. Change it only to match a different sender. Effect: raise = the PCM reads a fuller tank at that sender voltage Evidence: ledger:E0655, ledger:E0936, ledger:E0955</description>
    <CATEGORYMEM index="0" category="10" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>V (fuel level sender)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="0.156" />
      <LABEL index="2" value="0.312" />
      <LABEL index="3" value="0.469" />
      <LABEL index="4" value="0.625" />
      <LABEL index="5" value="0.781" />
      <LABEL index="6" value="0.938" />
      <LABEL index="7" value="1.094" />
      <LABEL index="8" value="1.25" />
      <LABEL index="9" value="1.406" />
      <LABEL index="10" value="1.562" />
      <LABEL index="11" value="1.719" />
      <LABEL index="12" value="1.875" />
      <LABEL index="13" value="2.031" />
      <LABEL index="14" value="2.188" />
      <LABEL index="15" value="2.344" />
      <LABEL index="16" value="2.5" />
      <LABEL index="17" value="2.656" />
      <LABEL index="18" value="2.812" />
      <LABEL index="19" value="2.969" />
      <LABEL index="20" value="3.125" />
      <LABEL index="21" value="3.281" />
      <LABEL index="22" value="3.438" />
      <LABEL index="23" value="3.594" />
      <LABEL index="24" value="3.75" />
      <LABEL index="25" value="3.906" />
      <LABEL index="26" value="4.062" />
      <LABEL index="27" value="4.219" />
      <LABEL index="28" value="4.375" />
      <LABEL index="29" value="4.531" />
      <LABEL index="30" value="4.688" />
      <LABEL index="31" value="4.844" />
      <LABEL index="32" value="5" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35C12" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% fuel level</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>292.763011</max>
      <MATH equation="X/223.85"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4DC" flags="0x30">
    <title>PE Delay Countdown Rate vs Throttle x RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How much power-enrichment (PE) delay time is removed each update while PE is requested, by throttle and rpm. The PE delay store fills up to PE Delay - Maximum Delay Store while PE is not requested and must drain before a delayed PE request takes effect. Stock 0.05 s per update at low throttle and rpm, rising to 0.35 to 0.5 s at high throttle and high rpm. Effect: raise = the power-enrichment (PE) delay timer counts down faster at that throttle/rpm cell, shortening the PE delay Evidence: ledger:E0654, ledger:E0704</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% (throttle)</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2864E" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>s per update</units>
      <decimalpl>2</decimalpl>
      <min>-1638.400000</min>
      <max>1638.350000</max>
      <MATH equation="X/20"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x4DD" flags="0x0">
    <title>P1545 Circuit Check - RPM Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Output circuit check P1545 only runs with engine speed at or above this. Stock 425 rpm. Effect: raise = the check needs a higher engine speed Evidence: ledger:E1058</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x320A6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x4DE" flags="0x0">
    <title>Traction Control - Torque Request Default</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The traction control sends the engine a torque limit; while traction control is active it becomes the electronic throttle torque limit. This is the request while traction control is not scaling it, and the top of its scaled range. Stock 350 Nm. Effect: lower = traction control holds engine torque lower when it is active Evidence: ledger:E0666, ledger:E0918</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x2FCA6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>16383.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x4DF" flags="0x30">
    <title>Traction Control - Torque Request Floor vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The traction control sends the engine a torque limit; while traction control is active it becomes the electronic throttle torque limit. The request is never lower than this value at the current engine speed. Stock 30 Nm at 0 and 512 rpm, 0 from 1024 rpm. Effect: raise = traction control cannot pull torque below this at that rpm Evidence: ledger:E0667, ledger:E0918</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x308F0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>Nm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4E0" flags="0x30">
    <title>Port Temperature Model - Response Rate vs Airflow</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How fast the modelled intake port temperature (used by the transient wall-wetting fuel) moves toward its target each update, by airflow. Stock 0.8 % of the gap at no airflow rising to 8 % from about 210 g/s. Effect: raise = the port temperature model follows its target faster Evidence: ledger:E0741</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="16" />
      <LABEL index="2" value="32" />
      <LABEL index="3" value="48" />
      <LABEL index="4" value="64" />
      <LABEL index="5" value="80" />
      <LABEL index="6" value="96" />
      <LABEL index="7" value="112" />
      <LABEL index="8" value="128" />
      <LABEL index="9" value="144" />
      <LABEL index="10" value="160" />
      <LABEL index="11" value="176" />
      <LABEL index="12" value="192" />
      <LABEL index="13" value="208" />
      <LABEL index="14" value="224" />
      <LABEL index="15" value="240" />
      <LABEL index="16" value="256" />
      <LABEL index="17" value="272" />
      <LABEL index="18" value="288" />
      <LABEL index="19" value="304" />
      <LABEL index="20" value="320" />
      <LABEL index="21" value="336" />
      <LABEL index="22" value="352" />
      <LABEL index="23" value="368" />
      <LABEL index="24" value="384" />
      <LABEL index="25" value="400" />
      <LABEL index="26" value="416" />
      <LABEL index="27" value="432" />
      <LABEL index="28" value="448" />
      <LABEL index="29" value="464" />
      <LABEL index="30" value="480" />
      <LABEL index="31" value="496" />
      <LABEL index="32" value="512" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A4BA" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction per update</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4E1" flags="0x30">
    <title>Calculated Load - IAT Density Factor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Intake air temperature factor on the 100 % calculated load airflow. Only changes the calculated load value reported to a scan tool (PID 04). Stock 1.13 at -40 C falling to 0.85 at 140 C. Effect: raise = lower reported calculated load at that intake temperature Evidence: ledger:E0740</description>
    <CATEGORYMEM index="0" category="10" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-34.375" />
      <LABEL index="2" value="-28.75" />
      <LABEL index="3" value="-23.125" />
      <LABEL index="4" value="-17.5" />
      <LABEL index="5" value="-11.875" />
      <LABEL index="6" value="-6.25" />
      <LABEL index="7" value="-0.625" />
      <LABEL index="8" value="5" />
      <LABEL index="9" value="10.625" />
      <LABEL index="10" value="16.25" />
      <LABEL index="11" value="21.875" />
      <LABEL index="12" value="27.5" />
      <LABEL index="13" value="33.125" />
      <LABEL index="14" value="38.75" />
      <LABEL index="15" value="44.375" />
      <LABEL index="16" value="50" />
      <LABEL index="17" value="55.625" />
      <LABEL index="18" value="61.25" />
      <LABEL index="19" value="66.875" />
      <LABEL index="20" value="72.5" />
      <LABEL index="21" value="78.125" />
      <LABEL index="22" value="83.75" />
      <LABEL index="23" value="89.375" />
      <LABEL index="24" value="95" />
      <LABEL index="25" value="100.625" />
      <LABEL index="26" value="106.25" />
      <LABEL index="27" value="111.875" />
      <LABEL index="28" value="117.5" />
      <LABEL index="29" value="123.125" />
      <LABEL index="30" value="128.75" />
      <LABEL index="31" value="134.375" />
      <LABEL index="32" value="140" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2BC70" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4E2" flags="0x30">
    <title>Airflow Rationality - High Throttle Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101): throttle position, by engine speed (400 to 6800 rpm), above which only the first pressure check (P0106) is judged and the airflow, second pressure and throttle checks are held at zero. Stock 25 % up to 1200 rpm, 32 % at 1400 rpm, 45 % from 1600 rpm. Effect: raise = the full set of checks runs up to a higher throttle position Evidence: ledger:E0772, ledger:E1066</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="600" />
      <LABEL index="2" value="800" />
      <LABEL index="3" value="1000" />
      <LABEL index="4" value="1200" />
      <LABEL index="5" value="1400" />
      <LABEL index="6" value="1600" />
      <LABEL index="7" value="1800" />
      <LABEL index="8" value="2000" />
      <LABEL index="9" value="2200" />
      <LABEL index="10" value="2400" />
      <LABEL index="11" value="2600" />
      <LABEL index="12" value="2800" />
      <LABEL index="13" value="3000" />
      <LABEL index="14" value="3200" />
      <LABEL index="15" value="3400" />
      <LABEL index="16" value="3600" />
      <LABEL index="17" value="3800" />
      <LABEL index="18" value="4000" />
      <LABEL index="19" value="4200" />
      <LABEL index="20" value="4400" />
      <LABEL index="21" value="4600" />
      <LABEL index="22" value="4800" />
      <LABEL index="23" value="5000" />
      <LABEL index="24" value="5200" />
      <LABEL index="25" value="5400" />
      <LABEL index="26" value="5600" />
      <LABEL index="27" value="5800" />
      <LABEL index="28" value="6000" />
      <LABEL index="29" value="6200" />
      <LABEL index="30" value="6400" />
      <LABEL index="31" value="6600" />
      <LABEL index="32" value="6800" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35E90" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% throttle</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.003052</max>
      <MATH equation="X/327.67"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4E3" flags="0x30">
    <title>Charge Temperature Conversion (C to K)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Converts the blended intake and coolant temperature into the absolute charge temperature used by the cranking airmass calculation (ideal gas law). Stock is an exact Celsius to Kelvin conversion, 233 K at -40 C to 413 K at 140 C. Effect: raise = less cranking airmass (leaner cranking fuel) at that temperature; stock is exact physics Evidence: ledger:E0772, ledger:E0803, ledger:E0861</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>19</indexcount>
      <units>degC (intake / coolant blend)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-30" />
      <LABEL index="2" value="-20" />
      <LABEL index="3" value="-10" />
      <LABEL index="4" value="0" />
      <LABEL index="5" value="10" />
      <LABEL index="6" value="20" />
      <LABEL index="7" value="30" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="60" />
      <LABEL index="11" value="70" />
      <LABEL index="12" value="80" />
      <LABEL index="13" value="90" />
      <LABEL index="14" value="100" />
      <LABEL index="15" value="110" />
      <LABEL index="16" value="120" />
      <LABEL index="17" value="130" />
      <LABEL index="18" value="140" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2AB56" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="19" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>K</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>511.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4E4" flags="0x30">
    <title>Cam Phasing Enable - RPM On Above vs Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phasing is allowed only while all of its enable conditions hold. The rpm condition turns on above this engine speed, by coolant temperature. Stock 1200 rpm up to 80 C, rising to 2800 rpm hot. Effect: raise = cam phasing needs more rpm at that coolant Evidence: ledger:E0738</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2296C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4E5" flags="0x30">
    <title>EVAP Purge - Minimum Target vs System Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest EVAP purge target allowed at each system voltage, applied unless an EVAP test is running. Stock 0 up to 6 V, 23 % at 7.5 V, 11 % from 12 V up. Effect: raise = more purge at that system voltage Evidence: ledger:E0746</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>V</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1.5" />
      <LABEL index="2" value="3" />
      <LABEL index="3" value="4.5" />
      <LABEL index="4" value="6" />
      <LABEL index="5" value="7.5" />
      <LABEL index="6" value="9" />
      <LABEL index="7" value="10.5" />
      <LABEL index="8" value="12" />
      <LABEL index="9" value="13.5" />
      <LABEL index="10" value="15" />
      <LABEL index="11" value="16.5" />
      <LABEL index="12" value="18" />
      <LABEL index="13" value="19.5" />
      <LABEL index="14" value="21" />
      <LABEL index="15" value="22.5" />
      <LABEL index="16" value="24" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x24B66" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.781250</max>
      <MATH equation="X/326.4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4E6" flags="0x30">
    <title>Crank to Run Fuel Blend Rate vs Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once the engine starts, the base fuel amount moves from the cranking fuel amount (the one shaped by Base Fuel Multiplier vs RPM) to the normal running amount. This is the fraction of that change made each update, by coolant temperature; the move is complete when the total reaches 1.0. Stock 0.05 up to 2 C, 0.07 at 14 C and 0.10 from 26 C. Effect: raise = fueling reaches the normal running amount sooner after a start Evidence: ledger:E0670, ledger:E0969</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-34" />
      <LABEL index="2" value="-28" />
      <LABEL index="3" value="-22" />
      <LABEL index="4" value="-16" />
      <LABEL index="5" value="-10" />
      <LABEL index="6" value="-4" />
      <LABEL index="7" value="2" />
      <LABEL index="8" value="14" />
      <LABEL index="9" value="26" />
      <LABEL index="10" value="38" />
      <LABEL index="11" value="50" />
      <LABEL index="12" value="62" />
      <LABEL index="13" value="74" />
      <LABEL index="14" value="86" />
      <LABEL index="15" value="98" />
      <LABEL index="16" value="110" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x25042" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction per update</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4E7" flags="0x30">
    <title>Transient Fuel Model - Hot Restart Temperature Carry-Over</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When the transient (wall-wetting) fuel model starts, its temperature starts between the current coolant temperature and the hotter temperature it had when the engine was shut off. This is the fraction of that difference kept, by engine-off time (0 to 512 s). Stock 1.0 right after shut-off, 0.5 at 32 s, 0.25 at 96 s and 0 from 256 s. Effect: raise = a hot restart is treated as hotter for longer Evidence: ledger:E0670, ledger:E0965</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>s (engine-off time)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="32" />
      <LABEL index="2" value="64" />
      <LABEL index="3" value="96" />
      <LABEL index="4" value="128" />
      <LABEL index="5" value="160" />
      <LABEL index="6" value="192" />
      <LABEL index="7" value="224" />
      <LABEL index="8" value="256" />
      <LABEL index="9" value="288" />
      <LABEL index="10" value="320" />
      <LABEL index="11" value="352" />
      <LABEL index="12" value="384" />
      <LABEL index="13" value="416" />
      <LABEL index="14" value="448" />
      <LABEL index="15" value="480" />
      <LABEL index="16" value="512" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A522" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4E8" flags="0x30">
    <title>EVAP Engine-Off Test - Vent Open Time vs Ambient Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: how long the vent stays open at the start of the test before the pressure phase begins, by ambient air temperature. Stock 30 s when cold rising to 500 s when hot. Effect: raise = the tank is vented longer before the test starts measuring Evidence: ledger:E1053</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (ambient air)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-10" />
      <LABEL index="1" value="-4.375" />
      <LABEL index="2" value="1.25" />
      <LABEL index="3" value="6.875" />
      <LABEL index="4" value="12.5" />
      <LABEL index="5" value="18.125" />
      <LABEL index="6" value="23.75" />
      <LABEL index="7" value="29.375" />
      <LABEL index="8" value="35" />
      <LABEL index="9" value="40.625" />
      <LABEL index="10" value="46.25" />
      <LABEL index="11" value="51.875" />
      <LABEL index="12" value="57.5" />
      <LABEL index="13" value="63.125" />
      <LABEL index="14" value="68.75" />
      <LABEL index="15" value="74.375" />
      <LABEL index="16" value="80" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3378E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>3276.750000</max>
      <MATH equation="X/20"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4E9" flags="0x30">
    <title>EVAP Engine-Off Test - Vent Open Time vs Ambient Temperature (service test)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: the same vent-open time for the scan tool started version of the test while its ambient temperature estimate is not yet valid. Stock equal to the normal curve. Effect: raise = the tank is vented longer before the service test starts measuring Evidence: ledger:E1053</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (ambient air)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-10" />
      <LABEL index="1" value="-4.375" />
      <LABEL index="2" value="1.25" />
      <LABEL index="3" value="6.875" />
      <LABEL index="4" value="12.5" />
      <LABEL index="5" value="18.125" />
      <LABEL index="6" value="23.75" />
      <LABEL index="7" value="29.375" />
      <LABEL index="8" value="35" />
      <LABEL index="9" value="40.625" />
      <LABEL index="10" value="46.25" />
      <LABEL index="11" value="51.875" />
      <LABEL index="12" value="57.5" />
      <LABEL index="13" value="63.125" />
      <LABEL index="14" value="68.75" />
      <LABEL index="15" value="74.375" />
      <LABEL index="16" value="80" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x337B2" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>3276.750000</max>
      <MATH equation="X/20"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4EA" flags="0x30">
    <title>Fuel Trim Monitor - Purge Ramp Up Step</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fuel trim monitor purge-off test (P0172): amount commanded purge is raised every 100 ms when purge is restored after the measurement, by the normal purge command (0 to 100 %). Stock 0.5 % per step up to 25 % purge, 5 % at 31 %, 10 % above. Effect: raise = purge returns faster after the test Evidence: ledger:E0670, ledger:E1068</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% commanded purge</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.275" />
      <LABEL index="2" value="12.55" />
      <LABEL index="3" value="18.825" />
      <LABEL index="4" value="25.1" />
      <LABEL index="5" value="31.375" />
      <LABEL index="6" value="37.65" />
      <LABEL index="7" value="43.925" />
      <LABEL index="8" value="50.2" />
      <LABEL index="9" value="56.475" />
      <LABEL index="10" value="62.75" />
      <LABEL index="11" value="69.025" />
      <LABEL index="12" value="75.3" />
      <LABEL index="13" value="81.575" />
      <LABEL index="14" value="87.85" />
      <LABEL index="15" value="94.125" />
      <LABEL index="16" value="100.4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35B42" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% per step</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.781250</max>
      <MATH equation="X/326.4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4EB" flags="0x30">
    <title>Airflow Rationality - Throttle Flow Factor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101), diagnostic model only: flow factor of the throttle airflow model by the ratio of manifold pressure to barometric pressure (0.5 to 0.99). Stock follows the ideal gas flow function: 0.685 at a ratio of 0.5 and below, falling to 0.141 at 0.99. Effect: raise = the model expects more airflow through the throttle at that pressure ratio Evidence: ledger:E0772, ledger:E1074</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>pressure ratio</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.500" />
      <LABEL index="1" value="0.531" />
      <LABEL index="2" value="0.561" />
      <LABEL index="3" value="0.592" />
      <LABEL index="4" value="0.622" />
      <LABEL index="5" value="0.653" />
      <LABEL index="6" value="0.684" />
      <LABEL index="7" value="0.714" />
      <LABEL index="8" value="0.745" />
      <LABEL index="9" value="0.776" />
      <LABEL index="10" value="0.806" />
      <LABEL index="11" value="0.837" />
      <LABEL index="12" value="0.867" />
      <LABEL index="13" value="0.898" />
      <LABEL index="14" value="0.929" />
      <LABEL index="15" value="0.959" />
      <LABEL index="16" value="0.990" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35E56" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4EC" flags="0x30">
    <title>Airflow-Weighted Intake Temperature Blend Factor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. 16-point curve indexed by airflow. Each cell is a fraction, from 0 to 1.0, that blends the intake air temperature reading toward coolant temperature: 0 keeps the raw intake reading, 1.0 uses coolant temperature entirely. This compensates for heat soak, when the intake air sensor reads artificially hot right after a hot engine is shut off and restarted with little airflow to clear it. The blended temperature feeds an air density correction inside the engine&#x27;s airflow estimate. Stock blend fraction ranges from about 0.20 to 0.71 across the airflow range, leaning further toward coolant temperature at low airflow. Effect: raise = leans the blended intake temperature further toward coolant temperature at that airflow (1.0 = fully coolant temperature), changing the air density correction used by the airflow estimate at low airflow Evidence: ledger:E0772, ledger:E0793, ledger:E0803</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>16</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2AB34" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction (Q15: 32768 = weight of 1.0)</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4ED" flags="0x30">
    <title>Cam Phasing Enable - Minimum Run Time vs Start-Up Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phasing is allowed only while all of its enable conditions hold. This one: the engine must have run for at least this long since start, by the coolant temperature at start-up. Stock 120 s when starting below about -16 C, 18 s from 8 to 56 C, 5 s at 80 to 104 C, 8 to 12 s when hotter. Effect: raise = cam phasing starts later after a start Evidence: ledger:E0769, ledger:E0970</description>
    <CATEGORYMEM index="0" category="11" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC (start-up coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-16" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="32" />
      <LABEL index="4" value="56" />
      <LABEL index="5" value="80" />
      <LABEL index="6" value="104" />
      <LABEL index="7" value="128" />
      <LABEL index="8" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2294A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4EE" flags="0x30">
    <title>Charge Temperature - Filter Speed vs Airflow</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Charge temperature model (used by the VE airflow model and the VE Maximum airmass cap): the charge temperature moves toward intake air temperature plus a fraction of the coolant-to-intake difference, the fraction set by airflow (more airflow, closer to intake temperature), through a lag filter whose speed is also set by airflow. This is the filter speed per update. Stock 0.07 at zero airflow up to 0.57 at 128 g/s. Effect: raise = charge temperature follows changes faster Evidence: ledger:E0670, ledger:E0878</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>g/s (airflow)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="16" />
      <LABEL index="2" value="32" />
      <LABEL index="3" value="48" />
      <LABEL index="4" value="64" />
      <LABEL index="5" value="80" />
      <LABEL index="6" value="96" />
      <LABEL index="7" value="112" />
      <LABEL index="8" value="128" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22D50" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4EF" flags="0x30">
    <title>Engine Start Detection RPM vs Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The PCM decides the engine has started (cranking is over and it is running) once engine speed has stayed at or above this for the number of updates in Engine Start Detection Count, by coolant temperature. Stock 575 rpm up to about 8 C, 550 rpm from about 31 C. Effect: raise = the engine must spin faster before it counts as started Evidence: ledger:E0768, ledger:E0966</description>
    <CATEGORYMEM index="0" category="11" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC (coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-16.25" />
      <LABEL index="2" value="7.5" />
      <LABEL index="3" value="31.25" />
      <LABEL index="4" value="55" />
      <LABEL index="5" value="78.75" />
      <LABEL index="6" value="102.5" />
      <LABEL index="7" value="126.25" />
      <LABEL index="8" value="150" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x234BC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4F0" flags="0x30">
    <title>Engine Start Detection Count vs Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How many updates in a row engine speed must stay at or above Engine Start Detection RPM before the PCM decides the engine has started, by coolant temperature. Stock 8 at -40 C, 6 at -16 C, 4 from about 8 C. Effect: raise = the engine must hold start speed longer Evidence: ledger:E0768, ledger:E0966</description>
    <CATEGORYMEM index="0" category="11" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC (coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-16.25" />
      <LABEL index="2" value="7.5" />
      <LABEL index="3" value="31.25" />
      <LABEL index="4" value="55" />
      <LABEL index="5" value="78.75" />
      <LABEL index="6" value="102.5" />
      <LABEL index="7" value="126.25" />
      <LABEL index="8" value="150" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x234D0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>updates</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4F1" flags="0x30">
    <title>Burst Knock Retard - Multiplier vs Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant factor on the burst knock retard, alongside its intake temperature and rpm multipliers (1.0 = full retard). Lower = less burst knock retard at that coolant temperature. Effect: raise = more burst knock retard at that coolant Evidence: ledger:E0759</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-16" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="32" />
      <LABEL index="4" value="56" />
      <LABEL index="5" value="80" />
      <LABEL index="6" value="104" />
      <LABEL index="7" value="128" />
      <LABEL index="8" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A6D2" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4F2" flags="0x30">
    <title>Burst Knock Retard Multiplier vs Coolant, Per-Bank</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A curve, indexed by coolant temperature from -40 to 152 degrees Celsius over 9 points, that scales how much a per-bank rolling maximum burst-knock-retard value is updated each pass. Stock ranges from a multiplier of 0.20 at the coldest point to about 1.00 once the engine is warm. Effect: Raising a point increases how much the coolant-based multiplier contributes when updating that bank&#x27;s rolling burst-knock-retard maximum at that temperature; lowering it reduces that contribution. Evidence: ledger:E0772, ledger:E0805</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A712" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gain (Q16, unitless)</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4F3" flags="0x30">
    <title>Knock Learn Rate - MAP Curve</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock learning rate for under-sampled cylinders: when a cylinder has had too few knock-learning samples, its learning rate factor is the weighted average of five curves (manifold pressure, engine speed, sample count, coolant and intake temperature), each a fraction from 0 to 1, weighted by the five weights. This is the MAP curve. Effect: raise = faster knock learning for under-sampled cylinders there Evidence: ledger:E0193, ledger:E0772, ledger:E0871</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>kPa (MAP)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="20" />
      <LABEL index="1" value="30" />
      <LABEL index="2" value="40" />
      <LABEL index="3" value="50" />
      <LABEL index="4" value="60" />
      <LABEL index="5" value="70" />
      <LABEL index="6" value="80" />
      <LABEL index="7" value="90" />
      <LABEL index="8" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A840" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4F4" flags="0x30">
    <title>Knock Learn Rate - Coolant Curve</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock learning rate for under-sampled cylinders: when a cylinder has had too few knock-learning samples, its learning rate factor is the weighted average of five curves (manifold pressure, engine speed, sample count, coolant and intake temperature), each a fraction from 0 to 1, weighted by the five weights. This is the coolant temperature curve. Effect: raise = faster knock learning for under-sampled cylinders there Evidence: ledger:E0193, ledger:E0772, ledger:E0871</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC coolant</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-16" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="32" />
      <LABEL index="4" value="56" />
      <LABEL index="5" value="80" />
      <LABEL index="6" value="104" />
      <LABEL index="7" value="128" />
      <LABEL index="8" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A86A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4F5" flags="0x30">
    <title>Knock Learn Rate - Intake Temperature Curve</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock learning rate for under-sampled cylinders: when a cylinder has had too few knock-learning samples, its learning rate factor is the weighted average of five curves (manifold pressure, engine speed, sample count, coolant and intake temperature), each a fraction from 0 to 1, weighted by the five weights. This is the intake temperature curve. Effect: raise = faster knock learning for under-sampled cylinders there Evidence: ledger:E0193, ledger:E0772, ledger:E0871</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC intake air</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-16" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="32" />
      <LABEL index="4" value="56" />
      <LABEL index="5" value="80" />
      <LABEL index="6" value="104" />
      <LABEL index="7" value="128" />
      <LABEL index="8" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A87E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4F6" flags="0x30">
    <title>O2 Response Test (P0133) - Max Average Lean-to-Rich Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0133 sets if the average lean-to-rich transition time (350 to 650 mV) is above this. Stock 200 ms. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: raise = a slower sensor still passes Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x33F70" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ms</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>63999.023438</max>
      <MATH equation="X/1.024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4F7" flags="0x30">
    <title>O2 Response Test (P1133) - Min Lean-to-Rich Transitions</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1133 sets if fewer lean-to-rich transitions than this are timed in the test. Stock 4. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: raise = the test needs more complete transitions to pass Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x33F9C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>count</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4F8" flags="0x30">
    <title>O2 Response Test (P0133) - Max Average Rich-to-Lean Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0133 sets if the average rich-to-lean transition time (650 to 350 mV) is above this. Stock 200 ms. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: raise = a slower sensor still passes Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x33FC8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ms</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>63999.023438</max>
      <MATH equation="X/1.024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4F9" flags="0x30">
    <title>O2 Response Test (P1133) - Min Rich-to-Lean Transitions</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1133 sets if fewer rich-to-lean transitions than this are timed in the test. Stock 4. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: raise = the test needs more complete transitions to pass Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x33FF4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>count</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4FA" flags="0x30">
    <title>O2 Response Test (P1134) - Max Time Ratio (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Used only by the ratio form of the P1134 test, which stock does not select (the difference form above is used). Stock 7.0. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: no effect on stock (inactive) Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34020" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ratio</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4FB" flags="0x30">
    <title>O2 Response Test - Min Lean-to-Rich Transitions, Second Sensor (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Copy of the sensor 1 limit for a second front O2 sensor. The H3 tests one sensor, so this is never used. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: no effect on stock (inactive) Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x340FC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>count</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4FC" flags="0x30">
    <title>O2 Response Test - Min Rich-to-Lean Transitions, Second Sensor (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Copy of the sensor 1 limit for a second front O2 sensor. The H3 tests one sensor, so this is never used. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: no effect on stock (inactive) Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34154" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>count</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4FD" flags="0x30">
    <title>O2 Response Test - Max Time Ratio, Second Sensor (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Copy of the sensor 1 limit for a second front O2 sensor. The H3 tests one sensor, so this is never used. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: no effect on stock (inactive) Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34180" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ratio</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4FE" flags="0x30">
    <title>O2 Response Test - Min Rich Switches, Second Sensor (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Copy of the sensor 1 limit for a second front O2 sensor. The H3 tests one sensor, so this is never used. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: no effect on stock (inactive) Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x341D8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>count</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x4FF" flags="0x30">
    <title>O2 Response Test - Min Lean Switches, Second Sensor (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Copy of the sensor 1 limit for a second front O2 sensor. The H3 tests one sensor, so this is never used. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: no effect on stock (inactive) Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34204" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>count</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x500" flags="0x30">
    <title>O2 Response Test (P1134) - Max Time Difference</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1134 sets if the average rich-to-lean time minus the average lean-to-rich time is above this. Stock 90 ms. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: raise = a larger imbalance still passes Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34230" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>ms</units>
      <decimalpl>1</decimalpl>
      <min>-32000.000000</min>
      <max>31999.023438</max>
      <MATH equation="X/1.024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x501" flags="0x30">
    <title>O2 Response Test (P1134) - Min Time Difference</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1134 sets if the average rich-to-lean time minus the average lean-to-rich time is below this. Stock -65 ms. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: lower = a larger imbalance still passes Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34288" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>ms</units>
      <decimalpl>1</decimalpl>
      <min>-32000.000000</min>
      <max>31999.023438</max>
      <MATH equation="X/1.024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x502" flags="0x30">
    <title>Pedal Filter Speed Factor vs Engine Run Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Factor on how quickly the PCM&#x27;s filtered accelerator pedal signal follows the pedal, by engine run time (0 to 200 s). The PCM uses the lowest of several such factors, and the pedal filter never runs slower than 0.8 of full speed. 1.0 = no slowing; lower = smoother, slower pedal response. Stock 1.0 everywhere. Effect: lower = the filtered pedal follows the pedal more slowly (smoother, down to the 0.8 floor) Evidence: ledger:E0768, ledger:E0945</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>s (engine run time)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="12.5" />
      <LABEL index="2" value="25" />
      <LABEL index="3" value="37.5" />
      <LABEL index="4" value="50" />
      <LABEL index="5" value="62.5" />
      <LABEL index="6" value="75" />
      <LABEL index="7" value="87.5" />
      <LABEL index="8" value="100" />
      <LABEL index="9" value="112.5" />
      <LABEL index="10" value="125" />
      <LABEL index="11" value="137.5" />
      <LABEL index="12" value="150" />
      <LABEL index="13" value="162.5" />
      <LABEL index="14" value="175" />
      <LABEL index="15" value="187.5" />
      <LABEL index="16" value="200" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x24870" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x503" flags="0x30">
    <title>Pedal Filter Speed Factor vs Coolant Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Factor on how quickly the PCM&#x27;s filtered accelerator pedal signal follows the pedal, by coolant temperature (-40 to 152 C). The PCM uses the lowest of several such factors, and the pedal filter never runs slower than 0.8 of full speed. 1.0 = no slowing; lower = smoother, slower pedal response. Stock 1.0 everywhere. Effect: lower = the filtered pedal follows the pedal more slowly (smoother, down to the 0.8 floor) Evidence: ledger:E0768, ledger:E0945</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x24894" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x504" flags="0x30">
    <title>Pedal Filter Speed Factor vs Vehicle Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Factor on how quickly the PCM&#x27;s filtered accelerator pedal signal follows the pedal, by vehicle speed (0 to 128 km/h). The PCM uses the lowest of several such factors, and the pedal filter never runs slower than 0.8 of full speed. 1.0 = no slowing; lower = smoother, slower pedal response. Stock 1.0 everywhere. Effect: lower = the filtered pedal follows the pedal more slowly (smoother, down to the 0.8 floor) Evidence: ledger:E0768, ledger:E0945</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>km/h (vehicle speed)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="8" />
      <LABEL index="2" value="16" />
      <LABEL index="3" value="24" />
      <LABEL index="4" value="32" />
      <LABEL index="5" value="40" />
      <LABEL index="6" value="48" />
      <LABEL index="7" value="56" />
      <LABEL index="8" value="64" />
      <LABEL index="9" value="72" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="88" />
      <LABEL index="12" value="96" />
      <LABEL index="13" value="104" />
      <LABEL index="14" value="112" />
      <LABEL index="15" value="120" />
      <LABEL index="16" value="128" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x248CC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x505" flags="0x30">
    <title>EVAP Engine-Off Test - Pressure Peak Factor vs Vapour Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: factor on the pressure peak stored at the end of the pressure phase, by fuel vapour temperature. Stock 1.0 everywhere. Effect: lower = the pressure peak counts for less at that vapour temperature Evidence: ledger:E1053</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (fuel vapour)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-10" />
      <LABEL index="1" value="-4.375" />
      <LABEL index="2" value="1.25" />
      <LABEL index="3" value="6.875" />
      <LABEL index="4" value="12.5" />
      <LABEL index="5" value="18.125" />
      <LABEL index="6" value="23.75" />
      <LABEL index="7" value="29.375" />
      <LABEL index="8" value="35" />
      <LABEL index="9" value="40.625" />
      <LABEL index="10" value="46.25" />
      <LABEL index="11" value="51.875" />
      <LABEL index="12" value="57.5" />
      <LABEL index="13" value="63.125" />
      <LABEL index="14" value="68.75" />
      <LABEL index="15" value="74.375" />
      <LABEL index="16" value="80" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x33746" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x506" flags="0x30">
    <title>EVAP Engine-Off Test - Pressure Peak Factor vs Vapour Temperature Rise</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: factor on the pressure peak stored at the end of the pressure phase, by how much the fuel vapour temperature rose during the phase. Stock 1.0 everywhere. Effect: lower = the pressure peak counts for less at that temperature rise Evidence: ledger:E1053</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (fuel vapour rise)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="0.625" />
      <LABEL index="2" value="1.25" />
      <LABEL index="3" value="1.875" />
      <LABEL index="4" value="2.5" />
      <LABEL index="5" value="3.125" />
      <LABEL index="6" value="3.75" />
      <LABEL index="7" value="4.375" />
      <LABEL index="8" value="5" />
      <LABEL index="9" value="5.625" />
      <LABEL index="10" value="6.25" />
      <LABEL index="11" value="6.875" />
      <LABEL index="12" value="7.5" />
      <LABEL index="13" value="8.125" />
      <LABEL index="14" value="8.75" />
      <LABEL index="15" value="9.375" />
      <LABEL index="16" value="10" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3376A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x507" flags="0x30">
    <title>Misfire - Minimum Load Coolant Factor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: multiplier of the minimum load curve by coolant temperature (-40 to 151 C). Stock 1.0 at every temperature. Effect: raise = the minimum load is higher at that coolant temperature Evidence: ledger:E0670, ledger:E1065</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>16</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-27.25" />
      <LABEL index="2" value="-14.5" />
      <LABEL index="3" value="-1.75" />
      <LABEL index="4" value="11" />
      <LABEL index="5" value="23.75" />
      <LABEL index="6" value="36.5" />
      <LABEL index="7" value="49.25" />
      <LABEL index="8" value="62" />
      <LABEL index="9" value="74.75" />
      <LABEL index="10" value="87.5" />
      <LABEL index="11" value="100.25" />
      <LABEL index="12" value="113" />
      <LABEL index="13" value="125.75" />
      <LABEL index="14" value="138.5" />
      <LABEL index="15" value="151.25" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x368DA" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>7.999878</max>
      <MATH equation="X/8192"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x508" flags="0x30">
    <title>Knock Learn Rate - Sample Count Curve</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock learning rate for under-sampled cylinders: when a cylinder has had too few knock-learning samples, its learning rate factor is the weighted average of five curves (manifold pressure, engine speed, sample count, coolant and intake temperature), each a fraction from 0 to 1, weighted by the five weights. This is the sample count curve. Effect: raise = faster knock learning for under-sampled cylinders there Evidence: ledger:E0193, ledger:E0772, ledger:E0871</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>11</indexcount>
      <units>count (learn samples)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2560" />
      <LABEL index="1" value="6400" />
      <LABEL index="2" value="10240" />
      <LABEL index="3" value="14080" />
      <LABEL index="4" value="17920" />
      <LABEL index="5" value="21760" />
      <LABEL index="6" value="25600" />
      <LABEL index="7" value="29440" />
      <LABEL index="8" value="33280" />
      <LABEL index="9" value="37120" />
      <LABEL index="10" value="40960" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A892" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="11" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x509" flags="0x30">
    <title>Knock Learn Rate - Engine Speed Curve</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock learning rate for under-sampled cylinders: when a cylinder has had too few knock-learning samples, its learning rate factor is the weighted average of five curves (manifold pressure, engine speed, sample count, coolant and intake temperature), each a fraction from 0 to 1, weighted by the five weights. This is the engine speed curve. Effect: raise = faster knock learning for under-sampled cylinders there Evidence: ledger:E0193, ledger:E0772, ledger:E0871</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>10</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="800" />
      <LABEL index="1" value="1600" />
      <LABEL index="2" value="2400" />
      <LABEL index="3" value="3200" />
      <LABEL index="4" value="4000" />
      <LABEL index="5" value="4800" />
      <LABEL index="6" value="5600" />
      <LABEL index="7" value="6400" />
      <LABEL index="8" value="7200" />
      <LABEL index="9" value="8000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A854" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="10" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x50A" flags="0x30">
    <title>Pedal Filter Speed Factor vs Coolant Above Intake Air</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Factor on how quickly the PCM&#x27;s filtered accelerator pedal signal follows the pedal, by how much hotter the coolant is than the intake air (0 to 96 C). The PCM uses the lowest of several such factors, and the pedal filter never runs slower than 0.8 of full speed. 1.0 = no slowing. Stock 1.0 everywhere. Effect: lower = the filtered pedal follows the pedal more slowly (smoother, down to the 0.8 floor) Evidence: ledger:E0768, ledger:E0946</description>
    <CATEGORYMEM index="0" category="7" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>degC (coolant above intake air)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="12" />
      <LABEL index="2" value="24" />
      <LABEL index="3" value="36" />
      <LABEL index="4" value="48" />
      <LABEL index="5" value="60" />
      <LABEL index="6" value="72" />
      <LABEL index="7" value="84" />
      <LABEL index="8" value="96" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x248B8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x50B" flags="0x30">
    <title>EVAP Purge - Ramp Rate Falling, Highway</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Share of the gap to the purge target closed each 125 ms update when commanded purge is falling at or above the speed split, by airflow. Stock 99.9 % (near instant). Effect: raise = purge follows its target faster Evidence: ledger:E0739</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="4" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="16" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="24" />
      <LABEL index="7" value="28" />
      <LABEL index="8" value="32" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x24B00" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction per update</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x50C" flags="0x30">
    <title>EVAP Purge - Ramp Rate Rising, Highway</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Share of the gap to the purge target closed each 125 ms update when commanded purge is rising at or above the speed split, by airflow. Stock 99.9 % (near instant). Effect: raise = purge follows its target faster Evidence: ledger:E0739</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="4" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="16" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="24" />
      <LABEL index="7" value="28" />
      <LABEL index="8" value="32" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x24B14" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction per update</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x50D" flags="0x30">
    <title>Spark Ceiling - Hot Mode Hold Airmass vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once armed, the hot high-load spark ceiling stays active while cylinder airmass is above this curve. Stock 0.65 g/cyl at every rpm. Effect: raise = the ceiling drops out at a higher load Evidence: ledger:E0719</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1600" />
      <LABEL index="1" value="2400" />
      <LABEL index="2" value="3200" />
      <LABEL index="3" value="4000" />
      <LABEL index="4" value="4800" />
      <LABEL index="5" value="5600" />
      <LABEL index="6" value="6400" />
      <LABEL index="7" value="7200" />
      <LABEL index="8" value="8000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2FBDA" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g/cyl</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8.191875</max>
      <MATH equation="X/8000"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x50E" flags="0x30">
    <title>Spark Ceiling - Hot Mode Entry Airmass vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The hot high-load spark ceiling starts arming only while cylinder airmass is above this curve. Stock 0.67 g/cyl at every rpm. Effect: raise = the ceiling arms only at higher load Evidence: ledger:E0719</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1600" />
      <LABEL index="1" value="2400" />
      <LABEL index="2" value="3200" />
      <LABEL index="3" value="4000" />
      <LABEL index="4" value="4800" />
      <LABEL index="5" value="5600" />
      <LABEL index="6" value="6400" />
      <LABEL index="7" value="7200" />
      <LABEL index="8" value="8000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2FBEE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g/cyl</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8.191875</max>
      <MATH equation="X/8000"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x50F" flags="0x0">
    <title>Charging Rate-of-Change Check Gate Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Delays how soon a charging-system rate-of-change check is allowed to run after this monitor starts counting. Stock is 0.3 seconds. Effect: Raising it delays how soon this charging rate-of-change check can run; lowering it lets it run sooner. Evidence: ledger:E0776, ledger:E0805</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x2024C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x510" flags="0x0">
    <title>Charging Fault Minimum Confirm Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A minimum confirm time that must elapse before this charging-system fault can be set. Stock is 0.5 seconds. Effect: Raising it delays how soon this charging fault can be set; lowering it lets the fault be set sooner. Evidence: ledger:E0776, ledger:E0805</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x2024E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x511" flags="0x0">
    <title>Alternator Duty Consistency Check Maximum Debounce Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The upper time bound for an alternator duty-cycle consistency check; once a running timer reaches this value without the consistency check passing, the fault is set immediately instead. Stock is 2.04 seconds. Effect: Raising it extends the window during which the alternator duty-consistency check is evaluated normally rather than defaulting to an immediate fault; lowering it shortens that window. Evidence: ledger:E0776, ledger:E0805</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x20250" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x512" flags="0x0">
    <title>Alternator Duty Consistency Check Minimum Debounce Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The minimum time this monitor must run before the alternator duty-cycle consistency check is allowed to evaluate at all. Stock is 0.1 seconds. Effect: Raising it delays how soon after the monitor starts the alternator duty-consistency check can run; lowering it lets it run sooner. Evidence: ledger:E0776, ledger:E0805</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x20252" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x513" flags="0x0">
    <title>Rev Limit Hysteresis Mode Select</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Selects how the rev limiter hysteresis timer, which governs how the limiter comes back in after hitting the rev limit, is produced. Off resets the timer straight to its fixed default value; on calculates the timer from current running conditions instead. Stock is on. Effect: Turning it off makes the rev limiter hysteresis timer always start from its fixed default value; turning it on lets the timer be calculated from current running conditions. Evidence: ledger:E0776, ledger:E0800, ledger:E0805</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x233B6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>flag</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x514" flags="0x0">
    <title>Rev Limit Hysteresis Alternate Enable</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Turns an alternate, wider rev limiter hysteresis on or off. Off, the rev limiter always comes back in using the normal in-gear hysteresis. On, the wider alternate hysteresis becomes available once its own timing condition is met. Stock is on. Effect: Turning it off forces the rev limiter to always use the normal hysteresis; turning it on allows the wider alternate hysteresis to take over once its own condition is met. Evidence: ledger:E0769, ledger:E0800, ledger:E0805</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x233B8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>flag</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x515" flags="0x0">
    <title>Rev Limit Hysteresis Default Value</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The starting value of the rev limiter hysteresis timer, and also the time that timer must count up to before the hysteresis condition is considered satisfied. Stock is 3.0 seconds. Effect: Raising it means the rev limiter hysteresis timer starts higher and takes longer to satisfy its condition, so the limiter&#x27;s hysteresis behavior is reached later; lowering it reaches sooner. Evidence: ledger:E0776, ledger:E0800, ledger:E0805</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x233BC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x516" flags="0x0">
    <title>Rev Limit Hysteresis Alternate Counter Reset Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The starting value of a second rev limiter hysteresis timer, and also the time that timer must count up to before it stops resetting the alternate hysteresis selection counter. Stock is 3.0 seconds. Effect: Raising it makes this second timer take longer to reach its own cap, so the alternate hysteresis selection counter keeps getting reset for longer; lowering it shortens that. Evidence: ledger:E0769, ledger:E0800, ledger:E0805</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x233BE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x517" flags="0x0">
    <title>Rev Limit State Timer Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long the rev limiter&#x27;s state timer must run before the limiter&#x27;s state debounce count is cleared. Stock 3.0 seconds. Effect: raise = the state debounce count is kept longer before it is cleared Evidence: ledger:E0776, ledger:E0805</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x233F4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x518" flags="0x0">
    <title>ETC Torque Limit Correction - Proportional Error Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When a torque limit is active, the throttle control corrects the torque it uses to look up the ETC throttle limit with a proportional plus integral term on the error between the torque limit and the engine&#x27;s net torque (limit minus actual). With no limit active the correction is zero. The proportional term uses the error clamped to this minimum. Stock -50 Nm. Effect: lower = a bigger proportional pull-down when torque is over the limit Evidence: ledger:E0259, ledger:E0670, ledger:E0917</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x30EAA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x519" flags="0x0">
    <title>ETC Torque Limit Correction - Proportional Error Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When a torque limit is active, the throttle control corrects the torque it uses to look up the ETC throttle limit with a proportional plus integral term on the error between the torque limit and the engine&#x27;s net torque (limit minus actual). With no limit active the correction is zero. The proportional term uses the error clamped to this maximum. Stock 50 Nm. Effect: raise = a bigger proportional push-up when torque is under the limit Evidence: ledger:E0259, ledger:E0670, ledger:E0917</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x30EAC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x51A" flags="0x0">
    <title>ETC Torque Limit Correction - Integral Error Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When a torque limit is active, the throttle control corrects the torque it uses to look up the ETC throttle limit with a proportional plus integral term on the error between the torque limit and the engine&#x27;s net torque (limit minus actual). With no limit active the correction is zero. Each integral step uses the error clamped to this minimum. Stock -15 Nm. Effect: lower = the integral term can fall faster Evidence: ledger:E0259, ledger:E0670, ledger:E0917</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x30EAE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x51B" flags="0x0">
    <title>ETC Torque Limit Correction - Integral Error Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When a torque limit is active, the throttle control corrects the torque it uses to look up the ETC throttle limit with a proportional plus integral term on the error between the torque limit and the engine&#x27;s net torque (limit minus actual). With no limit active the correction is zero. Each integral step uses the error clamped to this maximum. Stock 15 Nm. Effect: raise = the integral term can climb faster Evidence: ledger:E0259, ledger:E0670, ledger:E0917</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x30EB0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x51C" flags="0x0">
    <title>ETC Torque Limit Correction - Error Deadband</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When a torque limit is active, the throttle control corrects the torque it uses to look up the ETC throttle limit with a proportional plus integral term on the error between the torque limit and the engine&#x27;s net torque (limit minus actual). With no limit active the correction is zero. Errors smaller than this (either sign) give no proportional term and no integral step. Stock 5 Nm. Effect: raise = the correction ignores bigger errors Evidence: ledger:E0259, ledger:E0670, ledger:E0917</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x30EB2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x51D" flags="0x0">
    <title>ETC Torque Limit Correction - Integral Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When a torque limit is active, the throttle control corrects the torque it uses to look up the ETC throttle limit with a proportional plus integral term on the error between the torque limit and the engine&#x27;s net torque (limit minus actual). With no limit active the correction is zero. The integral term is held at or above this. Stock 0 Nm, so it can only add torque. Effect: lower = the integral term can also take torque away Evidence: ledger:E0259, ledger:E0670, ledger:E0917</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x30EB4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x51E" flags="0x0">
    <title>ETC Torque Limit Correction - Integral Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When a torque limit is active, the throttle control corrects the torque it uses to look up the ETC throttle limit with a proportional plus integral term on the error between the torque limit and the engine&#x27;s net torque (limit minus actual). With no limit active the correction is zero. The integral term is held at or below this. Stock 50 Nm. Effect: raise = the integral term can add more torque Evidence: ledger:E0259, ledger:E0670, ledger:E0917</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x30EB6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x51F" flags="0x0">
    <title>ETC Torque Limit Correction - Total Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When a torque limit is active, the throttle control corrects the torque it uses to look up the ETC throttle limit with a proportional plus integral term on the error between the torque limit and the engine&#x27;s net torque (limit minus actual). With no limit active the correction is zero. The total correction (proportional plus integral) is held at or above this. Stock -65 Nm. Effect: lower = the correction can cut the throttle limit further Evidence: ledger:E0259, ledger:E0670, ledger:E0917</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x30EB8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x520" flags="0x0">
    <title>ETC Torque Limit Correction - Total Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When a torque limit is active, the throttle control corrects the torque it uses to look up the ETC throttle limit with a proportional plus integral term on the error between the torque limit and the engine&#x27;s net torque (limit minus actual). With no limit active the correction is zero. The total correction (proportional plus integral) is held at or below this. Stock 65 Nm. Effect: raise = the correction can open the throttle limit further Evidence: ledger:E0259, ledger:E0670, ledger:E0917</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x30EBA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>Nm</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x521" flags="0x0">
    <title>ETC Torque Limit Correction - Proportional Gain</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When a torque limit is active, the throttle control corrects the torque it uses to look up the ETC throttle limit with a proportional plus integral term on the error between the torque limit and the engine&#x27;s net torque (limit minus actual). With no limit active the correction is zero. The proportional term is the clamped error times this. Stock 0.50. Effect: raise = a stronger immediate correction Evidence: ledger:E0259, ledger:E0670, ledger:E0917</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x30EBC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>factor</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x522" flags="0x0">
    <title>ETC Torque Limit Correction - Integral Gain</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When a torque limit is active, the throttle control corrects the torque it uses to look up the ETC throttle limit with a proportional plus integral term on the error between the torque limit and the engine&#x27;s net torque (limit minus actual). With no limit active the correction is zero. Each integral step adds the clamped error times this. Stock 0.40. Effect: raise = the integral term moves faster Evidence: ledger:E0259, ledger:E0670, ledger:E0917</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x30EBE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>factor</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x523" flags="0x0">
    <title>ETC Torque Limit - Update Band Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A new throttle limit from the torque limit table is taken at once when it falls or rises by no more than this. Stock 2.00 % throttle. Effect: raise = larger rises are taken at once Evidence: ledger:E0670, ledger:E0917, ledger:E0926</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x30EC0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>-200.000000</min>
    <max>199.993896</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/163.84"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x524" flags="0x0">
    <title>ETC Torque Limit - Update Band High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A rise at least this big is also taken at once; rises between the low and this value keep the previous limit. Stock 4.00 % throttle. Effect: lower = fewer rises are held back Evidence: ledger:E0670, ledger:E0917, ledger:E0926</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x30EC2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>-200.000000</min>
    <max>199.993896</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/163.84"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x525" flags="0x0">
    <title>ETC Torque Limit Correction - Integral Step Period</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When a torque limit is active, the throttle control corrects the torque it uses to look up the ETC throttle limit with a proportional plus integral term on the error between the torque limit and the engine&#x27;s net torque (limit minus actual). With no limit active the correction is zero. Time between integral steps after the first one. Stock 0.10 s. Effect: lower = more frequent integral steps Evidence: ledger:E0259, ledger:E0670, ledger:E0917</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x30EC4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x526" flags="0x0">
    <title>ETC Torque Limit Correction - First Integral Step Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When a torque limit is active, the throttle control corrects the torque it uses to look up the ETC throttle limit with a proportional plus integral term on the error between the torque limit and the engine&#x27;s net torque (limit minus actual). With no limit active the correction is zero. Time from a limit becoming active to the first integral step. Stock 0.10 s. Effect: lower = the integral term starts sooner Evidence: ledger:E0259, ledger:E0670, ledger:E0917</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x30EC6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x527" flags="0x0">
    <title>Catalyst Monitor Enable - Intake Air Temperature Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420): intake air temperature must be above this, otherwise the monitor is switched off for the engine run. Stock -20.5 C. Effect: raise = the monitor does not run in colder air Evidence: ledger:E1082</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322FA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x528" flags="0x0">
    <title>Cam Desired Value Spread Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The allowed spread between the recent high and low points of the desired cam angle command; if the running desired-cam value swings by more than this before the stability timer below completes, it is flagged unstable instead. Stock is about 0.9 degrees. Effect: Raising it allows a wider swing in the desired-cam-angle command before it is treated as unstable; lowering it makes the check more sensitive to small swings. Evidence: ledger:E0776, ledger:E0805</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x3348E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>deg</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x529" flags="0x0">
    <title>Cam Desired Value Stable Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long the desired cam angle command must stay within the spread limit above before it is reported stable. Stock is 3.0 seconds. Effect: Raising it requires the desired-cam value to stay within its allowed spread for longer before it reports stable; lowering it reports stable sooner. Evidence: ledger:E0776, ledger:E0805</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x33490" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x52A" flags="0x0">
    <title>Cam Command Filter Gain</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The filter gain used when blending the commanded cam angle input into the value the engine actually uses. Stock is effectively 1.0, about 99.998 percent, meaning the commanded value currently passes through with essentially no filtering. Effect: Lowering it adds smoothing and lag to the cam command relative to its input; raising it toward the maximum keeps it close to unfiltered, which is the stock setting. Evidence: ledger:E0776, ledger:E0805</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x33498" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>gain (fraction x65536)</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x52B" flags="0x0">
    <title>Misfire - Overspeed Pause Engine Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: engine speed at or above which the overspeed pause is requested. The pause length is zero in the stock calibration, so this has no effect. Stock 7200 rpm. Effect: no effect while the overspeed pause length is zero Evidence: ledger:E1065</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3616A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x52C" flags="0x0">
    <title>Misfire Condition Confirm Timer</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once engine speed, coolant temperature and misfire load conditions all sit inside their required windows continuously, this timer must elapse before the misfire-condition flag is confirmed. Stock is 0.25 seconds. Effect: Raising it means the qualifying conditions must hold steady for longer before the misfire condition flag confirms; lowering it confirms the flag sooner. Evidence: ledger:E0780, ledger:E0805</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36B5A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x52D" flags="0x0">
    <title>P1574 Check - Vehicle Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1574 check (compares switch inputs during decelerations): the check stops and waits for the arm speed again once vehicle speed falls to this. Stock 5 km/h. Effect: raise = the check stops at a higher speed Evidence: ledger:E1049</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36DCC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x52E" flags="0x0">
    <title>P1574 Check - Arm Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1574 check (compares switch inputs during decelerations): the check arms once vehicle speed reaches this. Stock 32 km/h. Effect: raise = the check arms at a higher speed Evidence: ledger:E1049</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36DD0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x52F" flags="0x0">
    <title>Hot-Restart Fuel - Latch Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Hot-restart fuel gate: a latch sets while the engine is hot (coolant above the latch coolant threshold with intake air above the latch intake threshold, or corrected coolant above its own threshold). On the next start, if the soak lasted between the minimum and maximum soak times, coolant is above the minimum coolant and run time is under the maximum run time, the Open Loop Hot-Restart Gain table multiplies open-loop fuel; it drops out once coolant falls to the minimum or run time reaches the maximum. This is the latch coolant threshold. Stock 105 C. Effect: raise = the engine must run hotter before a hot restart is armed Evidence: ledger:E0671, ledger:E0885</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2892A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x530" flags="0x0">
    <title>Learned MAF/VE Ratio - Deep Vacuum MAP</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The PCM learns a MAF to VE airflow ratio in steady state and uses it on the VE airflow during transients. While manifold pressure is below the deep vacuum MAP (closed throttle decel) learning is frozen; on the first update back above it, a learned ratio below the reset threshold is put back to 1.0, and a higher one is kept. This is the deep vacuum MAP. Stock 20 kPa. Effect: raise = learning freezes over more of the decel range and the reset check runs more often Evidence: ledger:E0219, ledger:E0671, ledger:E0856</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2AB88" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x531" flags="0x0">
    <title>Airmass Predictor Idle Region - MAP Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airmass predictor region: the PCM predicts cylinder airmass a little ahead of the MAF reading, with a separate set of predictor coefficients per region. The region is an idle window (low throttle, low engine speed, moderate vacuum) or one of 16 cells from four engine speed bands by four MAP bands. Leave these at stock unless the predictor coefficients are recalibrated with them. The idle region needs MAP below this. Stock 59 kPa. Effect: moves which predictor coefficient set applies Evidence: ledger:E0323, ledger:E0864</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BF00" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x532" flags="0x0">
    <title>Airmass Predictor Idle Region - MAP At Or Above</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airmass predictor region: the PCM predicts cylinder airmass a little ahead of the MAF reading, with a separate set of predictor coefficients per region. The region is an idle window (low throttle, low engine speed, moderate vacuum) or one of 16 cells from four engine speed bands by four MAP bands. Leave these at stock unless the predictor coefficients are recalibrated with them. The idle region needs MAP at or above this. Stock 26 kPa. Effect: moves which predictor coefficient set applies Evidence: ledger:E0323, ledger:E0864</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BF02" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x533" flags="0x0">
    <title>Cam Signal Lost Test - Run Condition, Airflow Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam position sensor signal lost test (P0340 / P0365): least airflow for the test to run. Stock 0 g/s (no limit). Effect: raise = the test only runs above this airflow Evidence: ledger:E1080</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34440" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x534" flags="0x0">
    <title>Misfire - Dead Cylinder Exemption Load Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: highest load at which a single dead cylinder is exempt from the catalyst-damage limit. Stock 30 %. Effect: raise = the exemption reaches higher load Evidence: ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36A8C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x535" flags="0x30">
    <title>EVAP Engine-Off Test - Disturbance Threshold vs Fuel Level</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP leak test: change of the filtered tank reading within one disturbance check interval, by fuel level, above which a disturbance is flagged (tank pressure sensor noise or a sudden pressure change). Stock 0.45 inH2O at every fuel level. Effect: raise = a larger pressure change is tolerated before a disturbance is flagged Evidence: ledger:E1053</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% fuel level</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.25" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.75" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31.25" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="56.25" />
      <LABEL index="10" value="62.5" />
      <LABEL index="11" value="68.75" />
      <LABEL index="12" value="75" />
      <LABEL index="13" value="81.25" />
      <LABEL index="14" value="87.5" />
      <LABEL index="15" value="93.75" />
      <LABEL index="16" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x33E6E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>inH2O</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x536" flags="0x30">
    <title>P0116 Test - Startup Coolant Above Intake Air Fail Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant rationality test (P0116): the code sets outright when coolant at start-up is at least this much warmer than intake air, by intake air temperature. Stock 100 C everywhere. Effect: lower = a smaller coolant to intake air gap fails the test Evidence: ledger:E1011</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (intake air)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x32E9A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x537" flags="0x30">
    <title>Misfire - Minimum Load</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: load below which misfire detection is paused, by engine speed (400 to 6500 rpm; at 7000 rpm and above there is no minimum). The value is multiplied by the coolant factor curve. Stock 20 % at 400 rpm, 14 % from 800 to 1600 rpm, rising to 43 % at 6500 rpm. Effect: raise = misfire detection is paused up to a higher load Evidence: ledger:E0676, ledger:E1065</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>26</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="400" />
      <LABEL index="1" value="500" />
      <LABEL index="2" value="600" />
      <LABEL index="3" value="700" />
      <LABEL index="4" value="800" />
      <LABEL index="5" value="900" />
      <LABEL index="6" value="1000" />
      <LABEL index="7" value="1100" />
      <LABEL index="8" value="1200" />
      <LABEL index="9" value="1400" />
      <LABEL index="10" value="1600" />
      <LABEL index="11" value="1800" />
      <LABEL index="12" value="2000" />
      <LABEL index="13" value="2200" />
      <LABEL index="14" value="2400" />
      <LABEL index="15" value="2600" />
      <LABEL index="16" value="2800" />
      <LABEL index="17" value="3000" />
      <LABEL index="18" value="3500" />
      <LABEL index="19" value="4000" />
      <LABEL index="20" value="4500" />
      <LABEL index="21" value="5000" />
      <LABEL index="22" value="5500" />
      <LABEL index="23" value="6000" />
      <LABEL index="24" value="6500" />
      <LABEL index="25" value="7000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x368A4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="26" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>199.996948</max>
      <MATH equation="X/327.68"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x538" flags="0x30">
    <title>O2 Response Test (P1133) - Min Rich Switches</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1133 sets if the sensor rises to 600 mV or above fewer times than this during the test. Stock 100. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: raise = the sensor must switch more often to pass Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34078" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>count</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x539" flags="0x30">
    <title>O2 Response Test (P1133) - Min Lean Switches</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1133 sets if the sensor falls to 500 mV or below fewer times than this during the test. Stock 100. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: raise = the sensor must switch more often to pass Evidence: ledger:E0281, ledger:E0295, ledger:E0902, ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>21</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <LABEL index="17" value="85" />
      <LABEL index="18" value="90" />
      <LABEL index="19" value="95" />
      <LABEL index="20" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x340A4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="21" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>count</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x53A" flags="0x30">
    <title>Catalyst Monitor - RPM Span Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420): largest engine speed movement allowed during a test: first value before the fuel steps, second value during them. More movement ends the test. Stock 500 rpm. Effect: raise = more engine speed movement is tolerated during a test Evidence: ledger:E1082</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>phase</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="before the fuel steps" />
      <LABEL index="1" value="during the fuel steps" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x32314" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x53B" flags="0x30">
    <title>Catalyst Monitor - Load Span Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420): largest engine load movement allowed during a test: first value before the fuel steps, second value during them. Stock 50 %. Effect: raise = more load movement is tolerated during a test Evidence: ledger:E1082</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>phase</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="before the fuel steps" />
      <LABEL index="1" value="during the fuel steps" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x32328" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>199.996948</max>
      <MATH equation="X/327.68"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x53C" flags="0x0">
    <title>P0125 / P0128 Check - Airflow Counted Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant warm-up checks P0125 / P0128: airflow above this is counted as this much when the checks add up the air the engine has drawn since start. Stock 55 g/s. Effect: raise = high airflow counts in full toward the required air mass Evidence: ledger:E0776, ledger:E0805, ledger:E1056</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32EC4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x53D" flags="0x30">
    <title>P0125 / P0128 Check - Start-Up Coolant Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant warm-up checks P0125 / P0128: each check only runs on starts where coolant temperature at start-up was at or below its value here. Stock 36.25 degC for P0125 and 75 degC for P0128. Effect: raise = the check also runs after warmer starts Evidence: ledger:E1056</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>check</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="P0125" />
      <LABEL index="1" value="P0128" />
      <LABEL index="2" value="third column (unused)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x32F30" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x53E" flags="0x30">
    <title>P0125 / P0128 - Coolant Target Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant warm-up checks P0125 / P0128: coolant must have reached this by the time the engine has drawn the required air mass; reaching it reports a pass. Stock 36.25 degC for P0125 and 80 degC for P0128 (the thermostat check). Effect: lower = a cooler running engine still passes Evidence: ledger:E1056</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>check</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="P0125" />
      <LABEL index="1" value="P0128" />
      <LABEL index="2" value="third column (unused)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x32F36" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x53F" flags="0x30">
    <title>P0125 / P0128 Check - Distance Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant warm-up checks P0125 / P0128: each check only fails once the vehicle has also been driven this far since start. Stock 0.57 km for P0125 and 1.71 km for P0128. Effect: raise = more distance is needed before the code can set Evidence: ledger:E1056</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>check</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="P0125" />
      <LABEL index="1" value="P0128" />
      <LABEL index="2" value="third column (unused)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x32F3C" mmedelementsizebits="32" mmedrowcount="1" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>km</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1193046.470833</max>
      <MATH equation="X/3600"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x540" flags="0x30">
    <title>P0443 Circuit Check - Fault Count and Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP purge valve circuit check P0443: the code sets once the first value&#x27;s number of faulted samples is reached; if the second value&#x27;s number of samples is reached first, the check passes and both counts start again. Stock 100 and 120. Effect: raise the first value = more faulted samples are needed to set the code; raise the second = each window is longer Evidence: ledger:E1058</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>value</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="fault samples to fail" />
      <LABEL index="1" value="window samples to pass" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35770" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x541" flags="0x0">
    <title>P1574 Check - Deceleration Speed Drop</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1574 check (compares switch inputs during decelerations): a deceleration is counted when vehicle speed falls by at least this much inside the deceleration window. Stock 4 km/h. Effect: raise = only harder decelerations are counted Evidence: ledger:E1049</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36DC8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x542" flags="0x0">
    <title>P1574 Check - Deceleration Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1574 check (compares switch inputs during decelerations): the speed drop is measured from a reference speed that is refreshed after this long. Stock 0.5 s. Effect: raise = slower decelerations are also counted Evidence: ledger:E1049</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36DCA" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>12.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x543" flags="0x0">
    <title>P1574 Check - Speed Signal Difference Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1574 check (compares switch inputs during decelerations): the check restarts if its two vehicle speed signals differ by this much or more. Stock 10 km/h. Effect: raise = a larger speed signal difference is tolerated Evidence: ledger:E1049</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36DCE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x544" flags="0x30">
    <title>P0615 Circuit Check - Fault Count and Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Starter relay circuit check P0615 (this code is switched off in the stock calibration): the code sets once the first value&#x27;s number of faulted samples is reached; if the second value&#x27;s number of samples is reached first, the check passes and both counts start again. Stock 10 and 12. Effect: raise the first value = more faulted samples are needed to set the code; raise the second = each window is longer Evidence: ledger:E1058</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>value</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="fault samples to fail" />
      <LABEL index="1" value="window samples to pass" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x36DE0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x545" flags="0x30">
    <title>P1689 Circuit Check - Fault Count and Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Output circuit check P1689 (switched off in the stock calibration): the code sets once the first value&#x27;s number of faulted samples is reached; if the second value&#x27;s number of samples is reached first, the check passes and both counts start again. Stock 100 and 120. Effect: raise the first value = more faulted samples are needed to set the code; raise the second = each window is longer Evidence: ledger:E1058</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>value</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="fault samples to fail" />
      <LABEL index="1" value="window samples to pass" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x36DE6" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x546" flags="0x0">
    <title>Crank Variation Learn - Arm RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Crankshaft variation learn (the service procedure that clears P0315): sampling is armed once engine speed has risen above this. Stock 3970 rpm. Effect: raise = the engine must be revved higher before sampling is armed Evidence: ledger:E1040</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322D4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x547" flags="0x0">
    <title>Crank Variation Learn - Factor Average Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Crankshaft variation learn: a learn is stored, and the stored factors are accepted (otherwise P0315 sets), only when the average of the five cylinder factors is below this. Stock 1.0008. Effect: raise = a learn with a higher average factor is accepted Evidence: ledger:E1081</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322DE" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>26214.399994</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/163840"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x548" flags="0x0">
    <title>Crank Variation Learn - Factor Average Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Crankshaft variation learn: a learn is stored, and the stored factors are accepted (otherwise P0315 sets), only when the average of the five cylinder factors is above this. Stock 0.9992. Effect: lower = a learn with a lower average factor is accepted Evidence: ledger:E1081</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322E2" mmedelementsizebits="32" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>26214.399994</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/163840"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x549" flags="0x30">
    <title>Catalyst Monitor - First Step Downstream Time Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: if the downstream O2 sensor took longer than this to switch in the first fuel step, the catalyst is given the maximum storage time. Stock 5.9 s. Effect: lower = a slow downstream switch is scored as maximum storage sooner Evidence: ledger:E1000</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="bank 1" />
      <LABEL index="1" value="bank 2 (not used)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x323D6" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x54A" flags="0x30">
    <title>Catalyst Monitor - Storage Time Reference</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: each test&#x27;s oxygen storage time, after correction for airflow and catalyst temperature, is compared with this reference; the amount it falls short is the test result. Stock 3.0 s. Effect: lower = a catalyst with less oxygen storage still scores as good Evidence: ledger:E1021</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>bank</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="bank 1" />
      <LABEL index="1" value="bank 2 (not used)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x323DA" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x54B" flags="0x0">
    <title>Catalyst Monitor - Rich Step Downstream Switch Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: when the test starts with its rich step (stock), the downstream O2 sensor counts as switched once it reads at or above this. Stock 600 mV. Effect: lower = the downstream sensor counts as switched at a lower reading Evidence: ledger:E1000</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x323FE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>mV</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x54C" flags="0x0">
    <title>Catalyst Monitor - Lean First Step Upstream Switch Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: only used if the test is set to start with a lean step (not stock): the upstream O2 sensor counts as switched once it reads at or below this. Stock 300 mV. Effect: raise = the upstream sensor counts as switched at a higher reading Evidence: ledger:E1000</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32400" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>mV</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x54D" flags="0x0">
    <title>Catalyst Monitor - Lean First Step Downstream Switch Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: only used if the test is set to start with a lean step (not stock): the downstream O2 sensor counts as switched once it reads at or below this. Stock 300 mV. Effect: raise = the downstream sensor counts as switched at a higher reading Evidence: ledger:E1000</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32402" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>mV</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x54E" flags="0x0">
    <title>Catalyst Monitor - Second Step Switch Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: in the second fuel step (lean, with the stock rich first step) each O2 sensor counts as switched once it reads at or below this. Stock 300 mV. Effect: raise = the sensors count as switched at a higher reading Evidence: ledger:E1000</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32404" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>mV</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x54F" flags="0x30">
    <title>Cam Angle Test - Angle Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam angle test (sets P0017 on this engine; runs with the cam phaser parked): lowest measured cam angle that counts as in range for a cylinder. Stock 48.8 deg. The second value belongs to the other cam input, which this test does not check. Effect: lower = a more retarded or advanced cam reading still passes Evidence: ledger:E1080</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>input</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="cam input reporting P0365 / P0366 / P0017" />
      <LABEL index="1" value="cam input reporting P0340 / P0341 / P0016" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34466" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>3</decimalpl>
      <min>-128.000000</min>
      <max>127.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x550" flags="0x30">
    <title>Cam Angle Test - Angle Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam angle test (sets P0017 on this engine; runs with the cam phaser parked): highest measured cam angle that counts as in range for a cylinder. Stock 56.6 deg. The second value belongs to the other cam input, which this test does not check. Effect: raise = a larger cam angle reading still passes Evidence: ledger:E1080</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>input</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="cam input reporting P0365 / P0366 / P0017" />
      <LABEL index="1" value="cam input reporting P0340 / P0341 / P0016" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3446E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>3</decimalpl>
      <min>-128.000000</min>
      <max>127.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x551" flags="0x30">
    <title>Cam Angle Test - Cylinders Out of Range</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam angle test (sets P0017 on this engine; runs with the cam phaser parked): number of the five per-cylinder angles that must be out of range for a sample to count as bad. Stock 2. Effect: raise = more cylinders must read out of range before a sample is bad Evidence: ledger:E1080</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>input</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="cam input reporting P0365 / P0366 / P0017" />
      <LABEL index="1" value="cam input reporting P0340 / P0341 / P0016" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34476" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>cylinders</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x552" flags="0x30">
    <title>P0335 Count Test - Fail Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0335 crank count test (runs only while the engine turns on the cam signal with the crank signal not synchronised): bad samples that set P0335. Stock 8. Effect: raise = more bad samples are needed to set the code Evidence: ledger:E1080</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>input</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="crank sensor" />
      <LABEL index="1" value="not used" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3448E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x553" flags="0x30">
    <title>P0335 Count Test - Counts Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0335 crank count test (runs only while the engine turns on the cam signal with the crank signal not synchronised): fewest crank counts per sample that count as good. Stock 90 (nominal 100). Effect: lower = fewer crank counts are accepted Evidence: ledger:E1080</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>input</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="crank sensor" />
      <LABEL index="1" value="not used" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34492" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>counts</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x554" flags="0x30">
    <title>P0335 Count Test - Counts Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0335 crank count test (runs only while the engine turns on the cam signal with the crank signal not synchronised): most crank counts per sample that count as good. Stock 110 (nominal 100). Effect: raise = more crank counts are accepted Evidence: ledger:E1080</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>input</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="crank sensor" />
      <LABEL index="1" value="not used" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34496" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>counts</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x555" flags="0x30">
    <title>P0335 Count Test - Samples per Block</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0335 crank count test (runs only while the engine turns on the cam signal with the crank signal not synchronised): samples after which the bad sample count starts over if the fail count was not reached. Stock 10. Effect: raise = bad samples are collected over a longer block Evidence: ledger:E1080</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>input</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="crank sensor" />
      <LABEL index="1" value="not used" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3449A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>samples</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x556" flags="0x0">
    <title>P0335 Count Test - Events per Sample</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0335 crank count test (runs only while the engine turns on the cam signal with the crank signal not synchronised): number of engine cycle events over which crank counts are added up for one sample. Stock 10. Effect: change together with the count limits: they are counts per sample Evidence: ledger:E1080</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3449E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>events</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x557" flags="0x30">
    <title>Cam Signal Lost Test - Pass Counts</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam position sensor signal lost test (P0365 / P0340): cam signal counts that must be seen within the fail time to pass. Stock 5 and 1. Effect: raise = more cam signal activity is needed to pass Evidence: ledger:E1080</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>input</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="cam input reporting P0365 / P0366 / P0017" />
      <LABEL index="1" value="cam input reporting P0340 / P0341 / P0016" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34516" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>counts</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x558" flags="0x0">
    <title>Airflow Rationality - Airflow Difference Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101): filtered difference, in either direction, between measured airflow (MAF) and the airflow modelled from throttle position above which the airflow check is failing. Together with a failing second pressure check this sets P0101. Stock 15 g/s. Effect: raise = a larger airflow disagreement is tolerated Evidence: ledger:E1066</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35E84" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>-512.000000</min>
    <max>511.984375</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/64"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x559" flags="0x0">
    <title>Airflow Rationality - Pressure Difference Limit, Throttle Model</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow rationality test (P0101 / P0106 / P0121 / P1101): filtered difference, in either direction, between measured manifold pressure and the pressure modelled from throttle position above which the first pressure check is failing. Together with a failing second pressure check this sets P0106. Stock 20 kPa. Effect: raise = a larger pressure disagreement is tolerated Evidence: ledger:E1066</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35E86" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x55A" flags="0x0">
    <title>Misfire - Emission Failed Windows Required</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: number of failed emission windows among the recent ones that makes one emission exceedance. An exceedance in the first 3200 revolutions after start, or the fourth one later in the trip, sets P0300. Stock 5. Keep below 256. Effect: raise = more failed windows are needed before the code sets Evidence: ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x369B6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>windows</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x55B" flags="0x0">
    <title>Misfire - Abnormal Event Ratio Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: each detected event is classed as a normal misfire shape or an abnormal (disturbance) shape. When the abnormal events in a 200-revolution window exceed this percentage of the normal ones, the window is marked as a disturbance and gets no decision unless the disturbance override count is reached. Stock 50 %. Effect: raise = more abnormal events are tolerated before a window is set aside Evidence: ledger:E0780, ledger:E0805, ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36A84" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x55C" flags="0x0">
    <title>Misfire - Disturbance Override Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: a window marked as a disturbance (too many abnormal events, see the abnormal event ratio limit) normally gets no decision. When the window holds at least this many misfires it is judged anyway. Stock 90 misfires in 500 firings. Effect: lower = disturbed windows are judged at a lower misfire count Evidence: ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36A86" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>misfires</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>127.500000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/2"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x55D" flags="0x0">
    <title>Misfire - Emission Limit Multiplier After Start</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: multiplier applied to the emission limit during the first 16 windows (3200 revolutions) after start. Stock 1.0. Effect: raise = more misfire is tolerated in the first 3200 revolutions Evidence: ledger:E0780, ledger:E0805, ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36A88" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction (Q12, 4096=1.0)</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>15.999756</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4096"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x55E" flags="0x0">
    <title>Misfire - Dead Cylinder Exemption Speed Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: a window over the catalyst-damage limit is not counted as catalyst damaging when engine speed is at or below this, load is at or below the exemption load and one cylinder alone has the dead cylinder misfire count. The emission limit still applies. Stock 2000 rpm. Effect: raise = the exemption reaches higher engine speed Evidence: ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36A8A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x55F" flags="0x0">
    <title>Misfire - Emission Limit Multiplier, Special Period</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: multiplier applied to the emission limit for a calibrated period after an internal stored flag clears. That period is zero in the stock calibration, so this value is not used. Stock 1.0. Effect: no effect in the stock calibration Evidence: ledger:E0780, ledger:E0805, ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36AAC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction (Q12, 4096=1.0)</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>15.999756</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4096"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x560" flags="0x30">
    <title>Charge Temperature - Coolant Weight vs Airflow</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Charge temperature model (used by the VE airflow model and the VE Maximum airmass cap): the charge temperature moves toward intake air temperature plus a fraction of the coolant-to-intake difference, the fraction set by airflow (more airflow, closer to intake temperature), through a lag filter whose speed is also set by airflow. This is the fraction of the coolant-to-intake difference added to intake temperature. Stock 0.16 at idle airflow down to 0.003 at 128 g/s. Effect: raise = charge temperature reads hotter (less VE airmass) Evidence: ledger:E0677, ledger:E0878</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>g/s (airflow)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="4" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="16" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="24" />
      <LABEL index="7" value="28" />
      <LABEL index="8" value="32" />
      <LABEL index="9" value="36" />
      <LABEL index="10" value="40" />
      <LABEL index="11" value="44" />
      <LABEL index="12" value="48" />
      <LABEL index="13" value="52" />
      <LABEL index="14" value="56" />
      <LABEL index="15" value="60" />
      <LABEL index="16" value="64" />
      <LABEL index="17" value="68" />
      <LABEL index="18" value="72" />
      <LABEL index="19" value="76" />
      <LABEL index="20" value="80" />
      <LABEL index="21" value="84" />
      <LABEL index="22" value="88" />
      <LABEL index="23" value="92" />
      <LABEL index="24" value="96" />
      <LABEL index="25" value="100" />
      <LABEL index="26" value="104" />
      <LABEL index="27" value="108" />
      <LABEL index="28" value="112" />
      <LABEL index="29" value="116" />
      <LABEL index="30" value="120" />
      <LABEL index="31" value="124" />
      <LABEL index="32" value="128" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22D0C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x561" flags="0x30">
    <title>Calculated Load - Reference Airflow vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow that counts as 100 % calculated load at each rpm (corrected by baro and the IAT factor). Only changes the calculated load value reported to a scan tool (PID 04), not fuelling. Stock 0 rising to 180 g/s at 6000 rpm. Effect: raise = lower reported calculated load at that rpm Evidence: ledger:E0740</description>
    <CATEGORYMEM index="0" category="10" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="256" />
      <LABEL index="2" value="512" />
      <LABEL index="3" value="768" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1280" />
      <LABEL index="6" value="1536" />
      <LABEL index="7" value="1792" />
      <LABEL index="8" value="2048" />
      <LABEL index="9" value="2304" />
      <LABEL index="10" value="2560" />
      <LABEL index="11" value="2816" />
      <LABEL index="12" value="3072" />
      <LABEL index="13" value="3328" />
      <LABEL index="14" value="3584" />
      <LABEL index="15" value="3840" />
      <LABEL index="16" value="4096" />
      <LABEL index="17" value="4352" />
      <LABEL index="18" value="4608" />
      <LABEL index="19" value="4864" />
      <LABEL index="20" value="5120" />
      <LABEL index="21" value="5376" />
      <LABEL index="22" value="5632" />
      <LABEL index="23" value="5888" />
      <LABEL index="24" value="6144" />
      <LABEL index="25" value="6400" />
      <LABEL index="26" value="6656" />
      <LABEL index="27" value="6912" />
      <LABEL index="28" value="7168" />
      <LABEL index="29" value="7424" />
      <LABEL index="30" value="7680" />
      <LABEL index="31" value="7936" />
      <LABEL index="32" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2BC28" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g/s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>511.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x562" flags="0x30">
    <title>Cam Phasing Enable - RPM Off Below vs Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phasing is allowed only while all of its enable conditions hold. The rpm condition turns off below this engine speed, by coolant temperature. Stock 950 to 1500 rpm. Effect: raise = cam phasing drops out at a higher rpm at that coolant Evidence: ledger:E0738</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22990" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x563" flags="0x30">
    <title>Cold Start MAP Plausibility Coolant Offset</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A curve, indexed by startup coolant temperature, that adds an offset before comparing an expected value to the actual coolant reading as part of a startup manifold-pressure and airflow plausibility check that can set a fault flag. Stock ranges from 5.0 degrees Celsius at cold startup temperatures up to 17.0 degrees Celsius at warmer startup temperatures. Effect: Raising a point makes it more likely the check treats current conditions as normal and skips the fault path; lowering it makes it more likely the routine proceeds into the rest of the plausibility check that can set the fault. Evidence: ledger:E0781, ledger:E0792, ledger:E0805, ledger:E0936</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x24D90" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x564" flags="0x30">
    <title>O2 Sensor Ready - Run Time vs Startup Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor ready logic: engine run time that must pass before an O2 sensor can be flagged ready, by coolant temperature at start-up. Stock 40 s cold to 3 s warm. Effect: raise = sensors are flagged ready later after a start Evidence: ledger:E1005</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (startup coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2896C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x565" flags="0x30">
    <title>EVAP Purge - Ramp Rate Falling, Low Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Share of the gap to the purge target closed each 125 ms update when commanded purge is falling below the speed split, by airflow. Stock 100 % (instant). Effect: raise = purge follows its target faster Evidence: ledger:E0739</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="4" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="16" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="24" />
      <LABEL index="7" value="28" />
      <LABEL index="8" value="32" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x24B28" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction per update</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x566" flags="0x30">
    <title>EVAP Purge - Ramp Rate Rising, Low Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Share of the gap to the purge target closed each 125 ms update when commanded purge is rising below the speed split, by airflow. Stock 10 %, a gradual ramp-in. Effect: raise = purge follows its target faster Evidence: ledger:E0739</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>g/s</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="4" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="16" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="24" />
      <LABEL index="7" value="28" />
      <LABEL index="8" value="32" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x24B3C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>fraction per update</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>0.999985</max>
      <MATH equation="X/65536"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x567" flags="0x0">
    <title>Cam Phasing Region - RPM Hysteresis</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How far engine speed must pass an rpm band edge before the cam phasing region changes. Stock 50 rpm. Effect: raise = less region hunting near an rpm edge Evidence: ledger:E0744</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22CB4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x568" flags="0x0">
    <title>Cam Phasing Region - Throttle Hysteresis</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How far throttle must pass a throttle band edge before the cam phasing region changes. Stock 0.15 %. Effect: raise = less region hunting near a throttle edge Evidence: ledger:E0744</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22CB6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x569" flags="0x0">
    <title>Diagnostic RPM Ceiling</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. An engine speed ceiling used by a diagnostic monitor: below this speed the monitor&#x27;s alternate fault path can trigger, at or above it that path is skipped. Stock is 4200 rpm. Effect: Raising it raises the engine speed ceiling below which this monitor&#x27;s alternate fault path can trigger; lowering it lowers that ceiling. Evidence: ledger:E0776, ledger:E0805</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x23450" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x56A" flags="0x0">
    <title>Crank and Cam Signal Loss Watchdog B</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A companion watchdog timer that, once it reaches this value without seeing a qualifying crank or cam signal event, forces engine speed, mass airflow and related running values back to zero. Stock is 0.8 seconds. Effect: Raising it allows a longer gap since the last qualifying crank or cam signal event before this watchdog resets those readings; lowering it makes the watchdog trip sooner. Evidence: ledger:E0775, ledger:E0805</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x234A9" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>1.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x56B" flags="0x0">
    <title>Throttle Position Check Settle Timer</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A settle time that must elapse before the throttle-position pass/fail check below it is evaluated. Stock is 0.5 seconds. Effect: Raising it extends the settle time before the throttle-position check is evaluated; lowering it shortens it. Evidence: ledger:E0775, ledger:E0805</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x23698" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x56C" flags="0x0">
    <title>Throttle Position Pass/Fail Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once the settle timer above has elapsed, the throttle position reading is compared against this percentage to decide pass or fail for this check. Stock is about 36.0 percent throttle. Effect: Raising it raises the throttle-position percentage the reading is compared against for this check; lowering it lowers that boundary. Evidence: ledger:E0775, ledger:E0805</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x2369A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x56D" flags="0x0">
    <title>Throttle Monitor Over-Limit Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Electronic throttle safety monitor: how long the actual throttle opening must stay above the monitor&#x27;s allowed ceiling before the monitor acts (commits its limit and sets its fault state). Stock 0.19 seconds. This is a throttle safety check: do not raise it casually. Effect: raise = the throttle may exceed the monitor ceiling for longer before the monitor acts Evidence: ledger:E0775, ledger:E0805</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x249AC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x56E" flags="0x0">
    <title>Hot-Restart Fuel - Latch Corrected Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Hot-restart fuel gate: a latch sets while the engine is hot (coolant above the latch coolant threshold with intake air above the latch intake threshold, or corrected coolant above its own threshold). On the next start, if the soak lasted between the minimum and maximum soak times, coolant is above the minimum coolant and run time is under the maximum run time, the Open Loop Hot-Restart Gain table multiplies open-loop fuel; it drops out once coolant falls to the minimum or run time reaches the maximum. This is the corrected coolant threshold that arms the latch on its own. Stock 120 C. Effect: raise = the corrected-coolant path arms a hot restart less often Evidence: ledger:E0677, ledger:E0885</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2892C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x56F" flags="0x0">
    <title>Hot-Restart Fuel - Maximum Run Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Hot-restart fuel gate: a latch sets while the engine is hot (coolant above the latch coolant threshold with intake air above the latch intake threshold, or corrected coolant above its own threshold). On the next start, if the soak lasted between the minimum and maximum soak times, coolant is above the minimum coolant and run time is under the maximum run time, the Open Loop Hot-Restart Gain table multiplies open-loop fuel; it drops out once coolant falls to the minimum or run time reaches the maximum. This is the maximum run time after the start. Stock 45 s. Effect: raise = hot-restart fuel stays on longer after the start Evidence: ledger:E0677, ledger:E0885</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2892E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x570" flags="0x0">
    <title>O2 Sensor Ready - Active Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor ready logic: a sensor is flagged ready once more than this many samples have read outside the resting band. Stock 10. Effect: raise = more activity is needed before a sensor is flagged ready Evidence: ledger:E1005</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x289B6" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x571" flags="0x0">
    <title>Airmass Estimate Filter Gain</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lag filter gain (fraction of the new sample blended in each update) applied to the engine&#x27;s mass airflow estimate. A value of 100 percent makes the filtered estimate follow each new reading immediately, with no smoothing; lower values blend in only part of each reading, smoothing out noise between updates. Stock value blends in about 15.5 percent of the new reading on every update. Effect: raise = the airflow estimate follows a new mass airflow reading faster; lower = smooths more heavily and reacts more slowly. Stock about 15.5 percent per update Evidence: ledger:E0780, ledger:E0795, ledger:E0803</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BC16" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>fraction of the new sample blended in per update (1.0 = follows instantly, low values smooth more)</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x572" flags="0x0">
    <title>Volumetric Efficiency Maximum Limit Multiplier</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Below the dynamic airflow MAF-only engine speed (stock 5000 rpm), the cylinder airmass that spark and fuel use is capped at this maximum VE x barometric pressure / charge temperature x the limit multiplier (and x the learned MAF to VE ratio when that is above 1.0). Barometric pressure, not MAP, so under boost this cap holds the airmass near a naturally aspirated full charge whatever the MAF reads: stock about 0.70 g per cylinder at 2000 rpm and 0.84 g at 5000 rpm (100 kPa, 20 C). Above the MAF-only engine speed the cap is skipped. This multiplies that cap. Stock 1.03. Effect: raise = higher airmass ceiling below the MAF-only engine speed (needed for boost) Evidence: ledger:E0780, ledger:E0795, ledger:E0865, ledger:E0867</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BE1E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>multiplier (1.0 = no change)</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>1.999969</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/32768"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x573" flags="0x30">
    <title>Spark Reference for Cam Target Reduction</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Reference spark advance by rpm and airmass (0.08 to 1.36 g/cyl). When delivered spark stays below this reference for the Spark Reference Shortfall Confirm Time, the PCM starts reducing the load-based cam target: the Cam Target Spark-Limit Reduction factor (1.0 = no change) drops by its step down every down period, never below its floor, and climbs back once spark is at or above the reference. Stock flat -10 deg. The stock floor of 1.0 holds the factor at 1.0, so on the stock calibration this table changes nothing. Effect: raise = cam target reduction starts at higher delivered spark (only acts if the reduction floor is below 1.0) Evidence: ledger:E0680, ledger:E0720, ledger:E0733, ledger:E0875, ledger:E0931, ledger:E0932</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>g/cyl (airmass)</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2F465" mmedelementsizebits="8" mmedrowcount="33" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>deg</units>
      <decimalpl>1</decimalpl>
      <min>-64.000000</min>
      <max>63.500000</max>
      <MATH equation="X/2"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x574" flags="0x30">
    <title>Open-Loop Fuel Gain vs Airflow and Temperature (in gear)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Open-loop fuel gain by airflow and modelled temperature, used in gear. Multiplies the open-loop commanded equivalence ratio together with a baro curve and a voltage curve (1.0 = no change). Stock 1.0 everywhere, so the stage is wired up but calibrated as no change on the H3. Effect: raise = the Q15 gain this table contributes to the open-loop commanded EQ chain goes up (currently pinned at 1.0/no correction across the whole airflow x temperature grid) Evidence: ledger:E0682, ledger:E0702, ledger:E0929</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>g/s (airflow)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="4" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="16" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="24" />
      <LABEL index="7" value="28" />
      <LABEL index="8" value="32" />
      <LABEL index="9" value="36" />
      <LABEL index="10" value="40" />
      <LABEL index="11" value="44" />
      <LABEL index="12" value="48" />
      <LABEL index="13" value="52" />
      <LABEL index="14" value="56" />
      <LABEL index="15" value="60" />
      <LABEL index="16" value="64" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>degC (modelled temperature)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-32" />
      <LABEL index="2" value="-24" />
      <LABEL index="3" value="-16" />
      <LABEL index="4" value="-8" />
      <LABEL index="5" value="0" />
      <LABEL index="6" value="8" />
      <LABEL index="7" value="16" />
      <LABEL index="8" value="24" />
      <LABEL index="9" value="32" />
      <LABEL index="10" value="40" />
      <LABEL index="11" value="48" />
      <LABEL index="12" value="56" />
      <LABEL index="13" value="64" />
      <LABEL index="14" value="72" />
      <LABEL index="15" value="80" />
      <LABEL index="16" value="88" />
      <LABEL index="17" value="96" />
      <LABEL index="18" value="104" />
      <LABEL index="19" value="112" />
      <LABEL index="20" value="120" />
      <LABEL index="21" value="128" />
      <LABEL index="22" value="136" />
      <LABEL index="23" value="144" />
      <LABEL index="24" value="152" />
      <LABEL index="25" value="160" />
      <LABEL index="26" value="168" />
      <LABEL index="27" value="176" />
      <LABEL index="28" value="184" />
      <LABEL index="29" value="192" />
      <LABEL index="30" value="200" />
      <LABEL index="31" value="208" />
      <LABEL index="32" value="216" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x26B3E" mmedelementsizebits="16" mmedrowcount="33" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x575" flags="0x30">
    <title>Open-Loop Fuel Gain vs Airflow and Temperature (Park / Neutral)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Open-loop fuel gain by airflow and modelled temperature, used in Park / Neutral. Multiplies the open-loop commanded equivalence ratio together with a baro curve and a voltage curve (1.0 = no change). Stock 1.0 everywhere, so the stage is wired up but calibrated as no change on the H3. Effect: raise = the Q15 gain this table contributes to the open-loop commanded EQ chain goes up (currently pinned at 1.0/no correction across the whole airflow x temperature grid) Evidence: ledger:E0682, ledger:E0702, ledger:E0929</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>g/s (airflow)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="4" />
      <LABEL index="2" value="8" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="16" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="24" />
      <LABEL index="7" value="28" />
      <LABEL index="8" value="32" />
      <LABEL index="9" value="36" />
      <LABEL index="10" value="40" />
      <LABEL index="11" value="44" />
      <LABEL index="12" value="48" />
      <LABEL index="13" value="52" />
      <LABEL index="14" value="56" />
      <LABEL index="15" value="60" />
      <LABEL index="16" value="64" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>33</indexcount>
      <units>degC (modelled temperature)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-32" />
      <LABEL index="2" value="-24" />
      <LABEL index="3" value="-16" />
      <LABEL index="4" value="-8" />
      <LABEL index="5" value="0" />
      <LABEL index="6" value="8" />
      <LABEL index="7" value="16" />
      <LABEL index="8" value="24" />
      <LABEL index="9" value="32" />
      <LABEL index="10" value="40" />
      <LABEL index="11" value="48" />
      <LABEL index="12" value="56" />
      <LABEL index="13" value="64" />
      <LABEL index="14" value="72" />
      <LABEL index="15" value="80" />
      <LABEL index="16" value="88" />
      <LABEL index="17" value="96" />
      <LABEL index="18" value="104" />
      <LABEL index="19" value="112" />
      <LABEL index="20" value="120" />
      <LABEL index="21" value="128" />
      <LABEL index="22" value="136" />
      <LABEL index="23" value="144" />
      <LABEL index="24" value="152" />
      <LABEL index="25" value="160" />
      <LABEL index="26" value="168" />
      <LABEL index="27" value="176" />
      <LABEL index="28" value="184" />
      <LABEL index="29" value="192" />
      <LABEL index="30" value="200" />
      <LABEL index="31" value="208" />
      <LABEL index="32" value="216" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x26FA6" mmedelementsizebits="16" mmedrowcount="33" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x576" flags="0x30">
    <title>Idle Airflow Closed Loop - Mode 2 MAP Target (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Idle MAP target by rpm and vehicle speed for the idle airflow closed loop&#x27;s mode 2, scaled by a coolant factor (1.2 cold to 1.0 warm); the loop steps idle air on the MAP error from it. Mode 2 is not selected on the stock H3 (mode 1 is), so this table has no effect as delivered. Stock 30 kPa flat (E0726). Effect: no effect on the stock H3 (mode 2 not selected) Evidence: ledger:E0686, ledger:E0726, ledger:E0929</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>km/h (vehicle speed)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="8" />
      <LABEL index="2" value="16" />
      <LABEL index="3" value="24" />
      <LABEL index="4" value="32" />
      <LABEL index="5" value="40" />
      <LABEL index="6" value="48" />
      <LABEL index="7" value="56" />
      <LABEL index="8" value="64" />
      <LABEL index="9" value="72" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="88" />
      <LABEL index="12" value="96" />
      <LABEL index="13" value="104" />
      <LABEL index="14" value="112" />
      <LABEL index="15" value="120" />
      <LABEL index="16" value="128" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="512" />
      <LABEL index="2" value="1024" />
      <LABEL index="3" value="1536" />
      <LABEL index="4" value="2048" />
      <LABEL index="5" value="2560" />
      <LABEL index="6" value="3072" />
      <LABEL index="7" value="3584" />
      <LABEL index="8" value="4096" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x28E34" mmedelementsizebits="16" mmedrowcount="9" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>kPa</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>255.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x577" flags="0x30">
    <title>Cam Phaser Proportional Gain - Cam At Or Past Command</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phaser controller proportional gain, by engine speed and coolant temperature: the solenoid duty changes by this many percent for each degree the cam is away from the commanded angle, times a learned factor that starts at 1.0 and only learns upward (12 learned slots by error direction, engine speed and coolant). This table is used while the cam is at or past the commanded angle (duty is taken away). Stock 3.9 to 6.5 % per degree. Effect: raise = the phaser is pulled back harder toward the commanded angle; too high can oscillate Evidence: ledger:E0690, ledger:E0837, ledger:E0850, ledger:E0929</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="800" />
      <LABEL index="1" value="1200" />
      <LABEL index="2" value="1600" />
      <LABEL index="3" value="2000" />
      <LABEL index="4" value="2400" />
      <LABEL index="5" value="2800" />
      <LABEL index="6" value="3200" />
      <LABEL index="7" value="3600" />
      <LABEL index="8" value="4000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>degC (corrected coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x22564" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%/deg</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>199.996948</max>
      <MATH equation="X/327.68"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x578" flags="0x30">
    <title>Cam Phaser Proportional Gain - Cam Behind Command</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phaser controller proportional gain, by engine speed and coolant temperature: the solenoid duty changes by this many percent for each degree the cam is away from the commanded angle, times a learned factor that starts at 1.0 and only learns upward (12 learned slots by error direction, engine speed and coolant). This table is used while the cam is behind the commanded angle (duty is added). Stock 2.0 to 5.7 % per degree. Effect: raise = the phaser is driven harder toward the commanded angle; too high can oscillate Evidence: ledger:E0690, ledger:E0837, ledger:E0850, ledger:E0929</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="800" />
      <LABEL index="1" value="1200" />
      <LABEL index="2" value="1600" />
      <LABEL index="3" value="2000" />
      <LABEL index="4" value="2400" />
      <LABEL index="5" value="2800" />
      <LABEL index="6" value="3200" />
      <LABEL index="7" value="3600" />
      <LABEL index="8" value="4000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>degC (corrected coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2269C" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%/deg</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>199.996948</max>
      <MATH equation="X/327.68"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x579" flags="0x30">
    <title>EVAP Purge Flow Model 1</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP purge flow model: the flow the PCM expects through the purge valve, by engine vacuum (rows, 0 to 80 kPa) and commanded purge (columns, 0 to 100 %). The EVAP leak test adds it up during its test phases and compares the total with its own limits to decide the phase. The PCM reads this table or EVAP Purge Flow Model 2 according to the state of one of its EVAP outputs. Shown raw. Reference only: changing it changes how the EVAP leak test judges the system and can hide or cause leak codes. DO NOT EDIT. Effect: reference only (EVAP leak test) Evidence: ledger:E0691, ledger:E0899, ledger:E0929, ledger:E0930</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>% (commanded evap purge)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="3.1" />
      <LABEL index="2" value="6.3" />
      <LABEL index="3" value="9.4" />
      <LABEL index="4" value="12.5" />
      <LABEL index="5" value="15.7" />
      <LABEL index="6" value="18.8" />
      <LABEL index="7" value="22.0" />
      <LABEL index="8" value="25.1" />
      <LABEL index="9" value="28.2" />
      <LABEL index="10" value="31.4" />
      <LABEL index="11" value="34.5" />
      <LABEL index="12" value="37.6" />
      <LABEL index="13" value="40.8" />
      <LABEL index="14" value="43.9" />
      <LABEL index="15" value="47.1" />
      <LABEL index="16" value="50.2" />
      <LABEL index="17" value="53.3" />
      <LABEL index="18" value="56.5" />
      <LABEL index="19" value="59.6" />
      <LABEL index="20" value="62.7" />
      <LABEL index="21" value="65.9" />
      <LABEL index="22" value="69.0" />
      <LABEL index="23" value="72.2" />
      <LABEL index="24" value="75.3" />
      <LABEL index="25" value="78.4" />
      <LABEL index="26" value="81.6" />
      <LABEL index="27" value="84.7" />
      <LABEL index="28" value="87.8" />
      <LABEL index="29" value="91.0" />
      <LABEL index="30" value="94.1" />
      <LABEL index="31" value="97.3" />
      <LABEL index="32" value="100.4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>kPa (vacuum)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34542" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>raw</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x57A" flags="0x30">
    <title>EVAP Purge Flow Model 2</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP purge flow model: the flow the PCM expects through the purge valve, by engine vacuum (rows, 0 to 80 kPa) and commanded purge (columns, 0 to 100 %). The EVAP leak test adds it up during its test phases and compares the total with its own limits to decide the phase. The PCM reads this table or EVAP Purge Flow Model 1 according to the state of one of its EVAP outputs. Shown raw. Reference only: changing it changes how the EVAP leak test judges the system and can hide or cause leak codes. DO NOT EDIT. Effect: reference only (EVAP leak test) Evidence: ledger:E0691, ledger:E0899, ledger:E0929, ledger:E0930</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>% (commanded evap purge)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0.0" />
      <LABEL index="1" value="3.1" />
      <LABEL index="2" value="6.3" />
      <LABEL index="3" value="9.4" />
      <LABEL index="4" value="12.5" />
      <LABEL index="5" value="15.7" />
      <LABEL index="6" value="18.8" />
      <LABEL index="7" value="22.0" />
      <LABEL index="8" value="25.1" />
      <LABEL index="9" value="28.2" />
      <LABEL index="10" value="31.4" />
      <LABEL index="11" value="34.5" />
      <LABEL index="12" value="37.6" />
      <LABEL index="13" value="40.8" />
      <LABEL index="14" value="43.9" />
      <LABEL index="15" value="47.1" />
      <LABEL index="16" value="50.2" />
      <LABEL index="17" value="53.3" />
      <LABEL index="18" value="56.5" />
      <LABEL index="19" value="59.6" />
      <LABEL index="20" value="62.7" />
      <LABEL index="21" value="65.9" />
      <LABEL index="22" value="69.0" />
      <LABEL index="23" value="72.2" />
      <LABEL index="24" value="75.3" />
      <LABEL index="25" value="78.4" />
      <LABEL index="26" value="81.6" />
      <LABEL index="27" value="84.7" />
      <LABEL index="28" value="87.8" />
      <LABEL index="29" value="91.0" />
      <LABEL index="30" value="94.1" />
      <LABEL index="31" value="97.3" />
      <LABEL index="32" value="100.4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>kPa (vacuum)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="5" />
      <LABEL index="2" value="10" />
      <LABEL index="3" value="15" />
      <LABEL index="4" value="20" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="30" />
      <LABEL index="7" value="35" />
      <LABEL index="8" value="40" />
      <LABEL index="9" value="45" />
      <LABEL index="10" value="50" />
      <LABEL index="11" value="55" />
      <LABEL index="12" value="60" />
      <LABEL index="13" value="65" />
      <LABEL index="14" value="70" />
      <LABEL index="15" value="75" />
      <LABEL index="16" value="80" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x349AA" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>raw</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x57B" flags="0x30">
    <title>Airflow Model - MAF/VE Ratio Start Value vs Baro and Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Starting value of the learned MAF-to-VE airmass ratio, by barometric pressure (columns, 65 to 105 kPa) and coolant temperature (rows, -20 to 101 C in 20.25 C steps). The engine then learns the ratio in steady running, clamped 0.5 to 1.5. Stock 1.05 to 1.25. Effect: raise = the learned MAF/VE airmass ratio starts higher at that baro / coolant, until steady-state learning corrects it Evidence: ledger:E0696, ledger:E0697, ledger:E0929</description>
    <CATEGORYMEM index="0" category="4" />
    <XDFAXIS id="x">
      <indexcount>5</indexcount>
      <units>kPa (baro)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="65" />
      <LABEL index="1" value="75" />
      <LABEL index="2" value="85" />
      <LABEL index="3" value="95" />
      <LABEL index="4" value="105" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>7</indexcount>
      <units>degC (ECT)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-20.25" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="20.25" />
      <LABEL index="3" value="40.5" />
      <LABEL index="4" value="60.75" />
      <LABEL index="5" value="81" />
      <LABEL index="6" value="101.25" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2ABA2" mmedelementsizebits="16" mmedrowcount="7" mmedcolcount="5" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>ratio (MAF / VE)</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x57C" flags="0x30">
    <title>EVAP Engine-Off Test - Reference Pressure</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP small leak test (P0442): reference tank reading by ambient air temperature (rows, -10 to 80 C) and fuel level (columns, 0 to 100 %). The pressure phase is complete as soon as the tank reading reaches this, and the leak result is the shortfall of the pressure-to-vacuum swing against it. Stock -2.5 inH2O in every cell (2.5 inH2O of pressure; vacuum is positive, pressure negative). Changing it changes when the test passes or sets P0442. Effect: more negative = more tank pressure is needed for a full pass Evidence: ledger:E0698, ledger:E0899, ledger:E0935, ledger:E0936, ledger:E0939, ledger:E0944, ledger:E1053</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% fuel level</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.25" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.75" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31.25" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="56.25" />
      <LABEL index="10" value="62.5" />
      <LABEL index="11" value="68.75" />
      <LABEL index="12" value="75" />
      <LABEL index="13" value="81.25" />
      <LABEL index="14" value="87.5" />
      <LABEL index="15" value="93.75" />
      <LABEL index="16" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>degC (ambient air)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-10" />
      <LABEL index="1" value="-4.375" />
      <LABEL index="2" value="1.25" />
      <LABEL index="3" value="6.875" />
      <LABEL index="4" value="12.5" />
      <LABEL index="5" value="18.125" />
      <LABEL index="6" value="23.75" />
      <LABEL index="7" value="29.375" />
      <LABEL index="8" value="35" />
      <LABEL index="9" value="40.625" />
      <LABEL index="10" value="46.25" />
      <LABEL index="11" value="51.875" />
      <LABEL index="12" value="57.5" />
      <LABEL index="13" value="63.125" />
      <LABEL index="14" value="68.75" />
      <LABEL index="15" value="74.375" />
      <LABEL index="16" value="80" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x33502" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>inH2O</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x57D" flags="0x30">
    <title>EVAP Engine-Off Test - Reference Pressure (service test)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine-off EVAP small leak test (P0442): the same reference for the scan tool started version of the test while its ambient temperature estimate is not yet valid, by ambient air temperature (rows, -10 to 80 C) and fuel level (columns, 0 to 100 %). Stock -2.5 inH2O in every cell (2.5 inH2O of pressure; vacuum is positive, pressure negative). Effect: more negative = more tank pressure is needed for a full pass Evidence: ledger:E0698, ledger:E0899, ledger:E0935, ledger:E0936, ledger:E0939, ledger:E0944, ledger:E1053</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% fuel level</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.25" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.75" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31.25" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="56.25" />
      <LABEL index="10" value="62.5" />
      <LABEL index="11" value="68.75" />
      <LABEL index="12" value="75" />
      <LABEL index="13" value="81.25" />
      <LABEL index="14" value="87.5" />
      <LABEL index="15" value="93.75" />
      <LABEL index="16" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>17</indexcount>
      <units>degC (ambient air)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-10" />
      <LABEL index="1" value="-4.375" />
      <LABEL index="2" value="1.25" />
      <LABEL index="3" value="6.875" />
      <LABEL index="4" value="12.5" />
      <LABEL index="5" value="18.125" />
      <LABEL index="6" value="23.75" />
      <LABEL index="7" value="29.375" />
      <LABEL index="8" value="35" />
      <LABEL index="9" value="40.625" />
      <LABEL index="10" value="46.25" />
      <LABEL index="11" value="51.875" />
      <LABEL index="12" value="57.5" />
      <LABEL index="13" value="63.125" />
      <LABEL index="14" value="68.75" />
      <LABEL index="15" value="74.375" />
      <LABEL index="16" value="80" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x337DA" mmedelementsizebits="16" mmedrowcount="17" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>inH2O</units>
      <decimalpl>3</decimalpl>
      <min>-32.000000</min>
      <max>31.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x57E" flags="0x30">
    <title>Misfire - Catalyst Damage Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Misfire monitor: misfire rate (misfires per 100 cylinder firings, measured over 200 engine revolutions) at or above which the window counts as catalyst damaging. Looked up at the engine speed and load of the start and of the end of the window; the larger limit is used. Stock 18 % at low speed and load falling to 5 % at high speed or load. Effect: raise = more misfire is tolerated before the catalyst-damage decision and the flashing lamp Evidence: ledger:E0707, ledger:E0929, ledger:E1064</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>8</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1000" />
      <LABEL index="2" value="2000" />
      <LABEL index="3" value="3000" />
      <LABEL index="4" value="4000" />
      <LABEL index="5" value="5000" />
      <LABEL index="6" value="6000" />
      <LABEL index="7" value="7000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>11</indexcount>
      <units>% load</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="10" />
      <LABEL index="2" value="20" />
      <LABEL index="3" value="30" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="50" />
      <LABEL index="6" value="60" />
      <LABEL index="7" value="70" />
      <LABEL index="8" value="80" />
      <LABEL index="9" value="90" />
      <LABEL index="10" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x36906" mmedelementsizebits="16" mmedrowcount="11" mmedcolcount="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>511.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x57F" flags="0x30">
    <title>MAP Plausibility - High Limit (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Inactive on the stock calibration: the check&#x27;s enable is off, so it never runs. MAP plausibility check: every sample in which manifold pressure is above the high limit or below the low limit for the current engine speed and throttle area counts as out of band. When the out-of-band count reaches the fail count, the window ends as a failure; when the window reaches its sample count first, it ends as a pass. The high limit tops out near 104 kPa, so sustained boost would be counted out of band, but the check sets no code. This table is the high limit (kPa) by engine speed and throttle area. Stock 27.7 to 103.7 kPa. Effect: raise = more manifold pressure allowed before a sample counts as out of band (needed for boost) Evidence: ledger:E0709, ledger:E0721, ledger:E0886, ledger:E0890, ledger:E0929</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>7</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="800" />
      <LABEL index="1" value="1600" />
      <LABEL index="2" value="2400" />
      <LABEL index="3" value="3200" />
      <LABEL index="4" value="4000" />
      <LABEL index="5" value="4800" />
      <LABEL index="6" value="5600" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>11</indexcount>
      <units>% throttle area</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="10" />
      <LABEL index="2" value="20" />
      <LABEL index="3" value="30" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="50" />
      <LABEL index="6" value="60" />
      <LABEL index="7" value="70" />
      <LABEL index="8" value="80" />
      <LABEL index="9" value="90" />
      <LABEL index="10" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35F78" mmedelementsizebits="16" mmedrowcount="11" mmedcolcount="7" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>kPa</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>255.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x580" flags="0x30">
    <title>MAP Plausibility - Low Limit (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Inactive on the stock calibration: the check&#x27;s enable is off, so it never runs. MAP plausibility check: every sample in which manifold pressure is above the high limit or below the low limit for the current engine speed and throttle area counts as out of band. When the out-of-band count reaches the fail count, the window ends as a failure; when the window reaches its sample count first, it ends as a pass. The high limit tops out near 104 kPa, so sustained boost would be counted out of band, but the check sets no code. This table is the low limit (kPa) by engine speed and throttle area. Stock 10.3 to 57.2 kPa. Effect: lower = more vacuum allowed before a sample counts as out of band Evidence: ledger:E0709, ledger:E0721, ledger:E0886, ledger:E0890, ledger:E0929</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>7</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="800" />
      <LABEL index="1" value="1600" />
      <LABEL index="2" value="2400" />
      <LABEL index="3" value="3200" />
      <LABEL index="4" value="4000" />
      <LABEL index="5" value="4800" />
      <LABEL index="6" value="5600" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>11</indexcount>
      <units>% throttle area</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="10" />
      <LABEL index="2" value="20" />
      <LABEL index="3" value="30" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="50" />
      <LABEL index="6" value="60" />
      <LABEL index="7" value="70" />
      <LABEL index="8" value="80" />
      <LABEL index="9" value="90" />
      <LABEL index="10" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x36018" mmedelementsizebits="16" mmedrowcount="11" mmedcolcount="7" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>kPa</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>255.996094</max>
      <MATH equation="X/256"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x581" flags="0x30">
    <title>Commanded Mixture Lean Offset vs Temperature A</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Commanded air-fuel mixture is pulled leaner as the engine warms: this curve sets how much richness is subtracted from the commanded mixture at each modelled engine temperature, from a small offset near -40 C (0.10 equivalence ratio) up to a large offset by 216 C (0.90), floored so the mixture is never commanded leaner than a 1:1 equivalence ratio. One of two selectable variants; this is variant A. 1x33 curve, -40 to 216 C in 8-degree steps. Effect: raise = more richness subtracted at that temperature (mixture commanded leaner, down to the 1:1 floor) Evidence: ledger:E0711</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-32" />
      <LABEL index="2" value="-24" />
      <LABEL index="3" value="-16" />
      <LABEL index="4" value="-8" />
      <LABEL index="5" value="0" />
      <LABEL index="6" value="8" />
      <LABEL index="7" value="16" />
      <LABEL index="8" value="24" />
      <LABEL index="9" value="32" />
      <LABEL index="10" value="40" />
      <LABEL index="11" value="48" />
      <LABEL index="12" value="56" />
      <LABEL index="13" value="64" />
      <LABEL index="14" value="72" />
      <LABEL index="15" value="80" />
      <LABEL index="16" value="88" />
      <LABEL index="17" value="96" />
      <LABEL index="18" value="104" />
      <LABEL index="19" value="112" />
      <LABEL index="20" value="120" />
      <LABEL index="21" value="128" />
      <LABEL index="22" value="136" />
      <LABEL index="23" value="144" />
      <LABEL index="24" value="152" />
      <LABEL index="25" value="160" />
      <LABEL index="26" value="168" />
      <LABEL index="27" value="176" />
      <LABEL index="28" value="184" />
      <LABEL index="29" value="192" />
      <LABEL index="30" value="200" />
      <LABEL index="31" value="208" />
      <LABEL index="32" value="216" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x26934" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>EQ ratio offset</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x582" flags="0x30">
    <title>Commanded Mixture Lean Offset vs Temperature B</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Commanded air-fuel mixture is pulled leaner as the engine warms: this curve sets how much richness is subtracted from the commanded mixture at each modelled engine temperature, from a small offset near -40 C (0.10 equivalence ratio) up to a large offset by 216 C (0.90), floored so the mixture is never commanded leaner than a 1:1 equivalence ratio. One of two selectable variants; this is variant B (identical stock data to variant A). 1x33 curve, -40 to 216 C in 8-degree steps. Effect: raise = more richness subtracted at that temperature (mixture commanded leaner, down to the 1:1 floor) Evidence: ledger:E0711</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-32" />
      <LABEL index="2" value="-24" />
      <LABEL index="3" value="-16" />
      <LABEL index="4" value="-8" />
      <LABEL index="5" value="0" />
      <LABEL index="6" value="8" />
      <LABEL index="7" value="16" />
      <LABEL index="8" value="24" />
      <LABEL index="9" value="32" />
      <LABEL index="10" value="40" />
      <LABEL index="11" value="48" />
      <LABEL index="12" value="56" />
      <LABEL index="13" value="64" />
      <LABEL index="14" value="72" />
      <LABEL index="15" value="80" />
      <LABEL index="16" value="88" />
      <LABEL index="17" value="96" />
      <LABEL index="18" value="104" />
      <LABEL index="19" value="112" />
      <LABEL index="20" value="120" />
      <LABEL index="21" value="128" />
      <LABEL index="22" value="136" />
      <LABEL index="23" value="144" />
      <LABEL index="24" value="152" />
      <LABEL index="25" value="160" />
      <LABEL index="26" value="168" />
      <LABEL index="27" value="176" />
      <LABEL index="28" value="184" />
      <LABEL index="29" value="192" />
      <LABEL index="30" value="200" />
      <LABEL index="31" value="208" />
      <LABEL index="32" value="216" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2697C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>EQ ratio offset</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x583" flags="0x0">
    <title>Spark Ceiling - Absolute Maximum Advance</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper limit on commanded spark advance at all times. The hot high-load ceiling table replaces it with a lower value while that mode is active. Stock 60 deg. Effect: lower = caps spark advance everywhere Evidence: ledger:E0719</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2F8A6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>deg</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x584" flags="0x0">
    <title>Spark Ceiling - Hot Mode Minimum Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The hot high-load spark ceiling can only arm while coolant is above this temperature. Stock 85 C. Effect: lower = the ceiling arms on a cooler engine Evidence: ledger:E0719</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2FBD2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x585" flags="0x0">
    <title>Spark Ceiling - Hot Mode Hold RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once armed, the hot high-load spark ceiling stays active while rpm stays above this value (with the coolant and load conditions). Stock 3000 rpm. Effect: raise = the ceiling drops out at a higher rpm Evidence: ledger:E0719</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2FBD4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x586" flags="0x0">
    <title>Spark Ceiling - Hot Mode Entry RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The hot high-load spark ceiling starts arming only above this rpm (with the coolant and load conditions). Stock 3200 rpm. Effect: raise = the ceiling arms only at higher rpm Evidence: ledger:E0719</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2FBD6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x587" flags="0x0">
    <title>Spark Ceiling - Hot Mode Arm Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long the hot, high-rpm, high-load condition must last before the lower spark ceiling takes over; it releases after the same time counts back down. Stock 18.0 s. Effect: raise = the ceiling engages later in a long pull Evidence: ledger:E0719</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2FAF0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x588" flags="0x0">
    <title>Spark Ceiling - Alternate Cap Minimum Coolant (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant above which an alternate fixed spark cap applies when its enable (a separate calibration flag, 0 on the stock H3) and a run flag are set. Inactive on the stock H3. Stock 20 C. Effect: no effect on the stock H3 Evidence: ledger:E0719</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2FBCE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x589" flags="0x0">
    <title>Spark Ceiling - Alternate Fixed Cap (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Alternate fixed spark cap used when its enable (0 on the stock H3) and a run flag are set and coolant is above the alternate minimum. Inactive on the stock H3. Stock 50 deg. Effect: no effect on the stock H3 Evidence: ledger:E0719</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2FBD0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>deg</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x58A" flags="0x0">
    <title>Spark Reference - Shortfall Confirm Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long delivered spark must stay below the Spark Reference for Cam Target Reduction table before the cam target reduction starts stepping down (it stops as soon as spark is back at or above the reference). Stock 0.5 s. Effect: raise = spark must fall short for longer before the cam target is reduced Evidence: ledger:E0720, ledger:E0733, ledger:E0875, ledger:E0932</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2FAF2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x58B" flags="0x0">
    <title>Cam Phaser Learned Gain Slot - RPM Split</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The cam phaser controller keeps 12 learned gain multipliers and picks one by the direction of the cam error, engine speed above or below the speed split, and coolant cold, middle or hot. Above this engine speed the upper-speed slots are used. Stock 1700 rpm. Effect: moves the engine speed where the controller switches slots Evidence: ledger:E0737, ledger:E0837, ledger:E0842</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22816" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x58C" flags="0x0">
    <title>Cam Phaser Learned Gain Slot - Hot Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The cam phaser controller keeps 12 learned gain multipliers and picks one by the direction of the cam error, engine speed above or below the speed split, and coolant cold, middle or hot. Above this coolant temperature the hot slots are used. Stock 96.5 C. Effect: moves where the hot slots take over Evidence: ledger:E0737, ledger:E0837, ledger:E0842</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22818" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x58D" flags="0x0">
    <title>Cam Phaser Learned Gain Slot - Cold Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The cam phaser controller keeps 12 learned gain multipliers and picks one by the direction of the cam error, engine speed above or below the speed split, and coolant cold, middle or hot. Below this coolant temperature the cold slots are used. Stock 83 C. Effect: moves where the cold slots take over Evidence: ledger:E0737, ledger:E0837, ledger:E0842</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2281A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x58E" flags="0x0">
    <title>Cam Phaser Stuck Response - Stage 1 Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phaser stuck response: when the cam is commanded to at least 4 degrees but has not moved past 1.5 degrees (or on a second internal trigger), the PCM pulses the phaser solenoid: stage 1 duty for the stage 1 time, then stage 2 duty for the stage 2 time, repeated up to the pulse repeat count. This is how long each pulse holds the stage 1 duty. Stock 0.0625 s. Effect: raise = longer stage 1 pulse Evidence: ledger:E0737, ledger:E0837</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x228E6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x58F" flags="0x0">
    <title>Cam Phaser Stuck Response - Stage 1 Duty</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phaser stuck response: when the cam is commanded to at least 4 degrees but has not moved past 1.5 degrees (or on a second internal trigger), the PCM pulses the phaser solenoid: stage 1 duty for the stage 1 time, then stage 2 duty for the stage 2 time, repeated up to the pulse repeat count. This is the solenoid duty during stage 1 (100 % is full on). Stock 100 %. Effect: lower = gentler stage 1 pulse Evidence: ledger:E0737, ledger:E0837</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x228E8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x590" flags="0x0">
    <title>Cam Phaser Stuck Response - Stage 2 Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phaser stuck response: when the cam is commanded to at least 4 degrees but has not moved past 1.5 degrees (or on a second internal trigger), the PCM pulses the phaser solenoid: stage 1 duty for the stage 1 time, then stage 2 duty for the stage 2 time, repeated up to the pulse repeat count. This is how long each pulse holds the stage 2 duty. Stock 0.0625 s. Effect: raise = longer stage 2 pulse Evidence: ledger:E0737, ledger:E0837</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x228EA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x591" flags="0x0">
    <title>Cam Phaser Stuck Response - Stage 2 Duty</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phaser stuck response: when the cam is commanded to at least 4 degrees but has not moved past 1.5 degrees (or on a second internal trigger), the PCM pulses the phaser solenoid: stage 1 duty for the stage 1 time, then stage 2 duty for the stage 2 time, repeated up to the pulse repeat count. This is the solenoid duty during stage 2. Stock 0 % (off). Effect: raise = stage 2 no longer releases the solenoid fully Evidence: ledger:E0737, ledger:E0837</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x228EC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x592" flags="0x0">
    <title>Cam Phasing Enable - Coolant On Above</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phasing is allowed only while all of its enable conditions hold. The coolant condition turns on above this temperature. Stock -10 C. Effect: raise = cam phasing waits for a warmer engine Evidence: ledger:E0738</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2295C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x593" flags="0x0">
    <title>Cam Phasing Enable - Coolant Off Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phasing is allowed only while all of its enable conditions hold. The coolant condition turns off again below this temperature. Stock -13 C. Effect: raise = cam phasing drops out sooner as the engine cools Evidence: ledger:E0738</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2295E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x594" flags="0x0">
    <title>Cam Phasing Enable - Throttle Thresholds RPM Split</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phasing is allowed only while all of its enable conditions hold. Below this engine speed the low-rpm throttle thresholds apply, at or above it the high-rpm pair. Stock 950 rpm. Effect: moves where the high-rpm throttle thresholds take over Evidence: ledger:E0738</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22960" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x595" flags="0x0">
    <title>Cam Phasing Enable - Throttle Off Below (low rpm)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phasing is allowed only while all of its enable conditions hold. Below the split rpm the throttle condition turns off when throttle falls below this. Stock 0.20 %. Effect: raise = cam phasing drops out at a more open throttle at low rpm Evidence: ledger:E0738</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22962" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x596" flags="0x0">
    <title>Cam Phasing Enable - Throttle On Above (low rpm)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phasing is allowed only while all of its enable conditions hold. Below the split rpm the throttle condition turns on when throttle rises above this. Stock 0.80 %. Effect: raise = cam phasing needs more throttle at low rpm Evidence: ledger:E0738</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22964" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x597" flags="0x0">
    <title>Cam Phasing Enable - Throttle Off Below (high rpm)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phasing is allowed only while all of its enable conditions hold. At or above the split rpm the throttle condition turns off when throttle falls below this. Stock 0 %, so it never turns off there. Effect: raise = cam phasing can drop out on a closed throttle above the split rpm Evidence: ledger:E0738</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22966" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x598" flags="0x0">
    <title>Cam Phasing Enable - Throttle On Above (high rpm)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phasing is allowed only while all of its enable conditions hold. At or above the split rpm the throttle condition turns on when throttle rises above this. Stock 0.80 %. Effect: raise = cam phasing needs more throttle above the split rpm Evidence: ledger:E0738</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22968" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x599" flags="0x0">
    <title>Cam Phasing Enable - Vehicle Speed On At</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phasing is allowed only while all of its enable conditions hold. The vehicle speed condition turns on at or above this speed. Stock 1.0 km/h. Effect: raise = cam phasing waits for a higher road speed Evidence: ledger:E0738</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x229B2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x59A" flags="0x0">
    <title>Cam Phasing Enable - Vehicle Speed Off Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phasing is allowed only while all of its enable conditions hold. The vehicle speed condition turns off below this speed. Stock 0.5 km/h. Effect: raise = cam phasing drops out at a higher road speed Evidence: ledger:E0738</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x229B4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x59B" flags="0x0">
    <title>Cam Phasing Enable - MAP Threshold Pair Baro Split</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phasing is allowed only while all of its enable conditions hold. At or above this barometric pressure the sea-level pair of MAP on / off thresholds is used (pair B), below it the altitude pair (pair A). Stock 90 kPa. Effect: moves the altitude at which the altitude MAP thresholds take over Evidence: ledger:E0738</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x229B6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x59C" flags="0x0">
    <title>EVAP Purge - Fallback Duty</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Commanded EVAP purge used when neither purge control feature is active. Stock 0 %, so purge is off in that case. Effect: raise = purge runs in the fallback case Evidence: ledger:E0739</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x249FA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.781250</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/326.4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x59D" flags="0x0">
    <title>EVAP Purge - Ramp Deadband</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Commanded EVAP purge only moves toward its target once the gap is at least this; smaller gaps leave it where it is. Stock 2.0 %. Effect: raise = purge ignores larger target changes Evidence: ledger:E0739</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x249FC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.781250</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/326.4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x59E" flags="0x0">
    <title>EVAP Purge - Ramp Tables Speed Split</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. At or above this vehicle speed the highway pair of purge ramp tables is used, below it the low-speed pair. Stock 50 km/h. Effect: moves where the highway purge ramp rates take over Evidence: ledger:E0739</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x249FE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x59F" flags="0x30">
    <title>Shift to Park/Neutral Idle Kick, Extended Term Hold Time vs Trans Temp (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long the extra part of the idle-air bump added right after a shift into Park or Neutral keeps running, at this transmission fluid temperature. Used only while vehicle speed is below a calibrated split speed; at or above it a second, all-zero table applies and the extra term ends at once. The split speed is 0 on the H3, so this table is never used on this truck (inactive). Stock is a flat 5.0 seconds at every temperature. Effect: raise = extra kick term stays active longer at that fluid temperature Evidence: ledger:E0293, ledger:E0742</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC trans fluid</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A114" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5A0" flags="0x30">
    <title>Shift into Gear Idle Kick, Extended Term Hold Time vs Trans Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long the extra part of the idle-air bump added right after a shift into gear keeps running, before it is checked for shutoff, at this transmission fluid temperature. Stock runs from 3.0 seconds cold down to 0.3 seconds warm. Effect: raise = extra kick term stays active longer at that fluid temperature Evidence: ledger:E0293, ledger:E0742</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC trans fluid</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A138" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5A1" flags="0x30">
    <title>Idle Airflow Shift into P/N Kick Factor, Extended Term, vs Trans Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Scales the extra, short-lived part of the shift-into-Park/Neutral idle-air kick, on top of the main kick amount, versus transmission fluid temperature. Stock 1.0 at every temperature. Effect: raise = bigger extra kick term at that fluid temperature Evidence: ledger:E0293, ledger:E0742</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC trans fluid</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A060" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>15.999756</max>
      <MATH equation="X/4096"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5A2" flags="0x30">
    <title>Idle Airflow Shift into Gear Kick Factor, Extended Term, vs Trans Temp</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Scales the extra, short-lived part of the shift-into-gear idle-air kick, on top of the main kick amount, versus transmission fluid temperature. Stock 1.0 at every temperature. Effect: raise = bigger extra kick term at that fluid temperature Evidence: ledger:E0293, ledger:E0742</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC trans fluid</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A0A8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>15.999756</max>
      <MATH equation="X/4096"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x5A3" flags="0x0">
    <title>Spark Mode Ramp - Decel Fuel Cut End to Idle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark reference ramp: when the spark mode changes (cranking, idle, first idle after start, decel fuel cut, off idle), the spark reference blends from the old mode&#x27;s spark to the new one over this many update cycles (0 = jump at once). This value is the ramp from decel fuel cut back to idle (fuel cut ending, first-idle flag set, idle speed control on). Stock 35. Effect: raise = slower spark change on this transition Evidence: ledger:E0747, ledger:E0894</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2EB24" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>update cycles</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5A4" flags="0x0">
    <title>Spark Mode Ramp - First Idle to Idle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark reference ramp: when the spark mode changes (cranking, idle, first idle after start, decel fuel cut, off idle), the spark reference blends from the old mode&#x27;s spark to the new one over this many update cycles (0 = jump at once). This value is the ramp from first idle after start to idle once closed-throttle idle speed control takes over. Stock 25. Effect: raise = slower spark change on this transition Evidence: ledger:E0747, ledger:E0894</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2EB2A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>update cycles</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5A5" flags="0x0">
    <title>Spark Mode Ramp - First Idle to Off Idle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark reference ramp: when the spark mode changes (cranking, idle, first idle after start, decel fuel cut, off idle), the spark reference blends from the old mode&#x27;s spark to the new one over this many update cycles (0 = jump at once). This value is the ramp from first idle after start to off idle (throttle rpm controller engaged, or the first-idle flag cleared). Stock 25. Effect: raise = slower spark change on this transition Evidence: ledger:E0747, ledger:E0894</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2EB44" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>update cycles</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5A6" flags="0x0">
    <title>Spark Mode Ramp - Off Idle to Idle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark reference ramp: when the spark mode changes (cranking, idle, first idle after start, decel fuel cut, off idle), the spark reference blends from the old mode&#x27;s spark to the new one over this many update cycles (0 = jump at once). This value is the ramp from off idle to idle once closed-throttle idle speed control takes over. Stock 5. Effect: raise = slower spark change on this transition Evidence: ledger:E0747, ledger:E0894</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2EB46" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>update cycles</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5A7" flags="0x0">
    <title>Spark Mode Ramp - Idle to First Idle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark reference ramp: when the spark mode changes (cranking, idle, first idle after start, decel fuel cut, off idle), the spark reference blends from the old mode&#x27;s spark to the new one over this many update cycles (0 = jump at once). This value is the ramp from idle into first idle after start (first-idle flag set, throttle rpm controller off, idle gate set). Stock 75. Effect: raise = slower spark change on this transition Evidence: ledger:E0747, ledger:E0894</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2EB78" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>update cycles</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5A8" flags="0x0">
    <title>Spark Mode Ramp - Off Idle to First Idle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark reference ramp: when the spark mode changes (cranking, idle, first idle after start, decel fuel cut, off idle), the spark reference blends from the old mode&#x27;s spark to the new one over this many update cycles (0 = jump at once). This value is the ramp from off idle to first idle after start (first-idle flag set). Stock 50. Effect: raise = slower spark change on this transition Evidence: ledger:E0747, ledger:E0894</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2EB7A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>update cycles</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5A9" flags="0x0">
    <title>Spark Mode Ramp - Decel Fuel Cut End to First Idle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark reference ramp: when the spark mode changes (cranking, idle, first idle after start, decel fuel cut, off idle), the spark reference blends from the old mode&#x27;s spark to the new one over this many update cycles (0 = jump at once). This value is the ramp from decel fuel cut to first idle after start (fuel cut ending, first-idle flag set, idle speed control off). Stock 35. Effect: raise = slower spark change on this transition Evidence: ledger:E0747, ledger:E0894</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2EB7C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>update cycles</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x5AA" flags="0x30">
    <title>Spark Mode Ramp - Cranking to Idle vs Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark reference ramp: when the spark mode changes (cranking, idle, first idle after start, decel fuel cut, off idle), the spark reference blends from the old mode&#x27;s spark to the new one over this many update cycles (0 = jump at once). This curve is the ramp from cranking to idle once the engine is running, by coolant temperature. Stock 25 cycles when cold, 5 cycles from 40 C. Effect: raise = slower spark change after the engine starts Evidence: ledger:E0747, ledger:E0894</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>10</indexcount>
      <units>degC (ECT)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2EB10" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="10" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>update cycles</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5AB" flags="0x30">
    <title>Spark Mode Ramp - Idle to Off Idle vs Throttle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark reference ramp: when the spark mode changes (cranking, idle, first idle after start, decel fuel cut, off idle), the spark reference blends from the old mode&#x27;s spark to the new one over this many update cycles (0 = jump at once). This curve is the ramp from idle to off idle, by throttle when the change happens. Stock 9 cycles up to 30 %, falling to 0 from 80 %. Effect: raise = slower spark change on this transition Evidence: ledger:E0747, ledger:E0894, ledger:E0895</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>11</indexcount>
      <units>% throttle</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="10" />
      <LABEL index="2" value="20" />
      <LABEL index="3" value="30" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="50" />
      <LABEL index="6" value="60" />
      <LABEL index="7" value="70" />
      <LABEL index="8" value="80" />
      <LABEL index="9" value="90" />
      <LABEL index="10" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2EB2E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="11" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>update cycles</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5AC" flags="0x30">
    <title>Spark Mode Ramp - Decel Fuel Cut End to Off Idle vs Throttle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark reference ramp: when the spark mode changes (cranking, idle, first idle after start, decel fuel cut, off idle), the spark reference blends from the old mode&#x27;s spark to the new one over this many update cycles (0 = jump at once). This curve is the ramp from decel fuel cut back to off idle, by throttle. Stock 37 cycles at closed throttle falling to 9 from 70 %. Effect: raise = slower spark change on this transition Evidence: ledger:E0747, ledger:E0894, ledger:E0895</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>11</indexcount>
      <units>% throttle</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="10" />
      <LABEL index="2" value="20" />
      <LABEL index="3" value="30" />
      <LABEL index="4" value="40" />
      <LABEL index="5" value="50" />
      <LABEL index="6" value="60" />
      <LABEL index="7" value="70" />
      <LABEL index="8" value="80" />
      <LABEL index="9" value="90" />
      <LABEL index="10" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2EB4A" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="11" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>update cycles</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5AD" flags="0x30">
    <title>Spark Mode Ramp - Into Decel Fuel Cut vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Spark reference ramp: when the spark mode changes (cranking, idle, first idle after start, decel fuel cut, off idle), the spark reference blends from the old mode&#x27;s spark to the new one over this many update cycles (0 = jump at once). This curve is the ramp into decel fuel cut (from off idle or first idle), by engine speed. Stock 64 cycles at every speed. Effect: raise = slower spark change on this transition Evidence: ledger:E0747, ledger:E0894, ledger:E0895</description>
    <CATEGORYMEM index="0" category="2" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="256" />
      <LABEL index="2" value="512" />
      <LABEL index="3" value="768" />
      <LABEL index="4" value="1024" />
      <LABEL index="5" value="1280" />
      <LABEL index="6" value="1536" />
      <LABEL index="7" value="1792" />
      <LABEL index="8" value="2048" />
      <LABEL index="9" value="2304" />
      <LABEL index="10" value="2560" />
      <LABEL index="11" value="2816" />
      <LABEL index="12" value="3072" />
      <LABEL index="13" value="3328" />
      <LABEL index="14" value="3584" />
      <LABEL index="15" value="3840" />
      <LABEL index="16" value="4096" />
      <LABEL index="17" value="4352" />
      <LABEL index="18" value="4608" />
      <LABEL index="19" value="4864" />
      <LABEL index="20" value="5120" />
      <LABEL index="21" value="5376" />
      <LABEL index="22" value="5632" />
      <LABEL index="23" value="5888" />
      <LABEL index="24" value="6144" />
      <LABEL index="25" value="6400" />
      <LABEL index="26" value="6656" />
      <LABEL index="27" value="6912" />
      <LABEL index="28" value="7168" />
      <LABEL index="29" value="7424" />
      <LABEL index="30" value="7680" />
      <LABEL index="31" value="7936" />
      <LABEL index="32" value="8192" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2EB84" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>update cycles</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x5AE" flags="0x0">
    <title>Shift into Park/Neutral Idle Kick, Reset Debounce Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. On a fresh shift into Park or Neutral, this is the minimum time the shift-into-gear kick timer must already have been counting before the Park/Neutral kick&#x27;s own hold timer is reset. Stock 0.03 seconds. Effect: raise = a fresh Park/Neutral shift is less likely to reset the hold timer Evidence: ledger:E0750</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29FE4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5AF" flags="0x0">
    <title>Shift into Gear Idle Kick, Reset Debounce Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. On a fresh shift into gear, this is the minimum time the Park/Neutral kick timer must already have been counting before the shift-into-gear kick&#x27;s own hold timer is reset. Stock 0.03 seconds. Effect: raise = a fresh gear shift is less likely to reset the hold timer Evidence: ledger:E0750</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29FF0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5B0" flags="0x0">
    <title>Shift into Park/Neutral Idle Kick, Extended Term Re-Arm Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long the Park/Neutral idle-kick hold timer must run before the extended part of the kick is allowed to switch back on. Stock 0.05 seconds. Effect: raise = the extended kick term takes longer to re-arm Evidence: ledger:E0750</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29FEA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5B1" flags="0x0">
    <title>Shift into Gear Idle Kick, Settle Timer Maximum Duration</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Longest time the shift-into-gear idle-kick settle timer is allowed to keep running before it stops and clears its own internal flags. Stock 1.0 seconds. Effect: raise = the settle timer is allowed to run longer before it is forced to stop Evidence: ledger:E0750</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29FEC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5B2" flags="0x0">
    <title>Idle Airflow Adaptive Follower, Arm Throttle Floor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Throttle position, at or below which the idle-air adaptive follower system is allowed to arm. Stock 0.0 percent. Effect: raise = the follower can arm at a higher throttle position Evidence: ledger:E0750</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x2A346" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% throttle</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5B3" flags="0x0">
    <title>Idle Airflow Adaptive Follower, Disarm Throttle Offset</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Added to the arm throttle floor to set the throttle position above which an already-armed idle-air adaptive follower is disarmed and reset. Stock 0.0 percent. Effect: raise = the follower stays armed at a higher throttle position Evidence: ledger:E0750</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x2A348" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% throttle</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5B4" flags="0x0">
    <title>Idle Airflow Adaptive Follower, Throttle Tracking Slew Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Maximum amount, in throttle percent, that the follower&#x27;s internal throttle-tracking figure is allowed to change on each pass. Stock 0.0 percent, which on this vehicle means that tracked figure never changes once initialized. Effect: raise = the tracked figure can change faster from one pass to the next Evidence: ledger:E0750</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x2A340" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>% throttle</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x5B5" flags="0x30">
    <title>Idle Airflow Adaptive Follower, Throttle Bucket Points</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Throttle-position break points used to sort the current throttle position into a bucket for the adaptive follower&#x27;s throttle correction. Cells are throttle percent values, not an output curve. Effect: n/a (breakpoint definition, not an output curve) Evidence: ledger:E0750</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A414" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% throttle</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>200.003052</max>
      <MATH equation="X/327.67"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5B6" flags="0x30">
    <title>Idle Airflow Adaptive Follower, Barometric Pressure Factor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Scales the idle-air adaptive follower&#x27;s airflow build-up by barometric pressure. Stock 1.0 at every pressure point on this bin. Effect: raise = bigger follower airflow contribution at that pressure Evidence: ledger:E0750</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>kPa (baro)</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2A394" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>15.999756</max>
      <MATH equation="X/4096"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x5B7" flags="0x0">
    <title>Shift into Gear Idle Kick, Extended Term Speed Gate</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The extended part of the shift-into-gear idle-air bump can only be re-armed when vehicle speed at the moment of the shift was at or below this value. Stock 5 km/h. Effect: raise = allows the extended term at higher speeds Evidence: ledger:E0750, ledger:E0898</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29FE2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5B8" flags="0x0">
    <title>Shift to Park/Neutral Idle Kick, Extended Term Speed Gate</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The extended part of the shift-to-Park/Neutral idle-air bump can only be re-armed when vehicle speed at the moment of the shift was at or below this value. Stock 15 km/h. Effect: raise = allows the extended term at higher speeds Evidence: ledger:E0750, ledger:E0898</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x29FE0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x5B9" flags="0x30">
    <title>COT enrichment arm load threshold vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once engine speed is above roughly 3200 rpm, this sets the engine load (in cylinder airmass) that must be exceeded, together with coolant hotter than 85 C sustained for 15 seconds, before the coolant over-temperature (COT) enrichment is allowed to switch on. Stock is a flat 0.670 grams per cylinder at every speed point from 1600 to 8000 rpm. Protection enrichment - DO NOT TUNE. Effect: protection enrichment Evidence: ledger:E0752</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x267AC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g/cyl (airmass)</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8.191875</max>
      <MATH equation="X/8000"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5BA" flags="0x30">
    <title>COT enrichment hold load threshold vs RPM</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once the coolant over-temperature (COT) enrichment has already switched on, this is the (slightly lower) engine load ceiling, above roughly 3000 rpm, that keeps it switched on; once load or coolant temperature drop back under this curve and the 85 C threshold, a countdown begins and the protection mode switches back off. Stock is a flat 0.650 grams per cylinder at every speed point from 1600 to 8000 rpm. Protection enrichment - DO NOT TUNE. Effect: protection enrichment Evidence: ledger:E0752</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x26798" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>g/cyl (airmass)</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8.191875</max>
      <MATH equation="X/8000"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5BB" flags="0x30">
    <title>Commanded Mixture Lean Offset vs Temperature C (Inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Same commanded-mixture lean-offset mechanism as the other selectable variants of this table (a temperature-indexed amount subtracted from the commanded air-fuel mixture, floored so the mixture is never commanded leaner than a 1:1 equivalence ratio): this is variant C, selected instead of the others under a different vehicle condition. Its own calibration is entirely zero at every modelled-temperature point on this vehicle, so selecting it never actually changes the commanded mixture (inactive). 1x33 curve, -40 to 216 C in 8-degree steps. Effect: raise = more richness subtracted at that temperature (currently zero everywhere) Evidence: ledger:E0752</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-32" />
      <LABEL index="2" value="-24" />
      <LABEL index="3" value="-16" />
      <LABEL index="4" value="-8" />
      <LABEL index="5" value="0" />
      <LABEL index="6" value="8" />
      <LABEL index="7" value="16" />
      <LABEL index="8" value="24" />
      <LABEL index="9" value="32" />
      <LABEL index="10" value="40" />
      <LABEL index="11" value="48" />
      <LABEL index="12" value="56" />
      <LABEL index="13" value="64" />
      <LABEL index="14" value="72" />
      <LABEL index="15" value="80" />
      <LABEL index="16" value="88" />
      <LABEL index="17" value="96" />
      <LABEL index="18" value="104" />
      <LABEL index="19" value="112" />
      <LABEL index="20" value="120" />
      <LABEL index="21" value="128" />
      <LABEL index="22" value="136" />
      <LABEL index="23" value="144" />
      <LABEL index="24" value="152" />
      <LABEL index="25" value="160" />
      <LABEL index="26" value="168" />
      <LABEL index="27" value="176" />
      <LABEL index="28" value="184" />
      <LABEL index="29" value="192" />
      <LABEL index="30" value="200" />
      <LABEL index="31" value="208" />
      <LABEL index="32" value="216" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x268A4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>EQ ratio offset</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5BC" flags="0x30">
    <title>Commanded Mixture Lean Offset vs Temperature D (Inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Same commanded-mixture lean-offset mechanism as the other selectable variants of this table (a temperature-indexed amount subtracted from the commanded air-fuel mixture, floored so the mixture is never commanded leaner than a 1:1 equivalence ratio): this is variant D, selected instead of the others under a different vehicle condition. Its own calibration is entirely zero at every modelled-temperature point on this vehicle, so selecting it never actually changes the commanded mixture (inactive). 1x33 curve, -40 to 216 C in 8-degree steps. Effect: raise = more richness subtracted at that temperature (currently zero everywhere) Evidence: ledger:E0752</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>degC</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-32" />
      <LABEL index="2" value="-24" />
      <LABEL index="3" value="-16" />
      <LABEL index="4" value="-8" />
      <LABEL index="5" value="0" />
      <LABEL index="6" value="8" />
      <LABEL index="7" value="16" />
      <LABEL index="8" value="24" />
      <LABEL index="9" value="32" />
      <LABEL index="10" value="40" />
      <LABEL index="11" value="48" />
      <LABEL index="12" value="56" />
      <LABEL index="13" value="64" />
      <LABEL index="14" value="72" />
      <LABEL index="15" value="80" />
      <LABEL index="16" value="88" />
      <LABEL index="17" value="96" />
      <LABEL index="18" value="104" />
      <LABEL index="19" value="112" />
      <LABEL index="20" value="120" />
      <LABEL index="21" value="128" />
      <LABEL index="22" value="136" />
      <LABEL index="23" value="144" />
      <LABEL index="24" value="152" />
      <LABEL index="25" value="160" />
      <LABEL index="26" value="168" />
      <LABEL index="27" value="176" />
      <LABEL index="28" value="184" />
      <LABEL index="29" value="192" />
      <LABEL index="30" value="200" />
      <LABEL index="31" value="208" />
      <LABEL index="32" value="216" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x268EC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>EQ ratio offset</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5BD" flags="0x30">
    <title>Open Loop Commanded Mixture Coolant Temperature Multiplier</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplies the open loop commanded fuel mixture by this factor, by modelled coolant temperature, while the computer runs one of its open loop mixture correction modes (the operating condition that selects this mode is still unidentified). A value of 1.0 makes no change; above 1.0 richens the open loop mixture at that temperature, below 1.0 leans it. Stock is 1.0 at every temperature, so it has no effect on the stock truck in any mode. Effect: raise = richer open loop mixture at this coolant temperature while this correction mode is active, lower = leaner. Stock is 1.0 (no effect) across the whole range. Evidence: ledger:E0752, ledger:E0790</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>degC (modelled temperature)</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x26AF4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>multiplier (1.0 = no change)</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5BE" flags="0x30">
    <title>Open Loop Commanded Mixture Barometric Pressure Multiplier</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplies the open loop commanded fuel mixture by this factor, by barometric pressure, while the computer runs one of its open loop mixture correction modes (the operating condition that selects this mode is still unidentified). A value of 1.0 makes no change. Values above 1.0 richen the open loop mixture at that pressure; values below 1.0 lean it out. Stock calibration holds this at 1.0 across the entire pressure range, so it currently has no effect on the truck. Effect: raise = richer open loop mixture at this barometric pressure while this correction mode is active, lower = leaner. Stock is 1.0 (no effect) across the whole range. Evidence: ledger:E0752, ledger:E0790</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>kPa (baro)</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x26A74" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>multiplier (1.0 = no change)</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5BF" flags="0x30">
    <title>Open Loop Commanded Mixture System Voltage Multiplier</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplies the open loop commanded fuel mixture by this factor, by system voltage, while the computer runs one of its open loop mixture correction modes (the operating condition that selects this mode is still unidentified). A value of 1.0 makes no change. Values above 1.0 richen the open loop mixture at that voltage; values below 1.0 lean it out. Stock calibration holds this at 1.0 across the entire voltage range, so it currently has no effect on the truck. Effect: raise = richer open loop mixture at this system voltage while this correction mode is active, lower = leaner. Stock is 1.0 (no effect) across the whole range. Evidence: ledger:E0752, ledger:E0790</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>V (system)</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x26AAC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>multiplier (1.0 = no change)</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5C0" flags="0x30">
    <title>O2 Heater Turn-On Delay vs Startup Coolant - Upstream Sensor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long after engine start the upstream O2 sensor heater stays off (apart from a brief measuring pulse each second), by coolant temperature at start-up. The delay protects a cold sensor from water in the exhaust. Stock 148 s at -16 C and below, 36 s at 8 C, 1 s from 20 C. Effect: lower = the heater comes on sooner after a cold start Evidence: ledger:E1019, ledger:E1020</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (startup coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2C01C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5C1" flags="0x30">
    <title>O2 Heater Turn-On Delay vs Startup Coolant - Downstream Sensor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How long after engine start the downstream O2 sensor heater stays off (apart from a brief measuring pulse each second), by coolant temperature at start-up. The delay protects a cold sensor from water in the exhaust. Stock 208 s at -16 C and below, 45 s at 8 C, 15 s up to 44 C, 1 s from 56 C. Effect: lower = the heater comes on sooner after a cold start Evidence: ledger:E1019, ledger:E1020</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (startup coolant)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-40" />
      <LABEL index="1" value="-28" />
      <LABEL index="2" value="-16" />
      <LABEL index="3" value="-4" />
      <LABEL index="4" value="8" />
      <LABEL index="5" value="20" />
      <LABEL index="6" value="32" />
      <LABEL index="7" value="44" />
      <LABEL index="8" value="56" />
      <LABEL index="9" value="68" />
      <LABEL index="10" value="80" />
      <LABEL index="11" value="92" />
      <LABEL index="12" value="104" />
      <LABEL index="13" value="116" />
      <LABEL index="14" value="128" />
      <LABEL index="15" value="140" />
      <LABEL index="16" value="152" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2C040" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x5C2" flags="0x0">
    <title>O2 Heater - Measuring Pulse Read Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor heater: once a second each heater is driven fully on for a short measuring pulse; this is how long the pulse has run before heater current and voltage are read. Stock 0.0375 s. Effect: raise = the reading is taken later in the pulse Evidence: ledger:E1062</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2C334" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x5C3" flags="0x30">
    <title>O2 Heater - Temperature per Ohm vs Learned Offset, Upstream</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor heater, upstream sensor: how many degrees the heater temperature estimate rises per ohm of heater resistance above nominal, chosen by the resistance offset stored by the cold-start learn. Stock 125 degC per ohm at an offset of -1.2 ohm and below rising to 184 at +0.9 ohm and above. Change only for a different sensor. Effect: raise = the heater temperature estimate rises faster with resistance Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>ohm (learned offset)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-3" />
      <LABEL index="1" value="-2.85" />
      <LABEL index="2" value="-2.7" />
      <LABEL index="3" value="-2.55" />
      <LABEL index="4" value="-2.4" />
      <LABEL index="5" value="-2.25" />
      <LABEL index="6" value="-2.1" />
      <LABEL index="7" value="-1.95" />
      <LABEL index="8" value="-1.8" />
      <LABEL index="9" value="-1.65" />
      <LABEL index="10" value="-1.5" />
      <LABEL index="11" value="-1.35" />
      <LABEL index="12" value="-1.2" />
      <LABEL index="13" value="-1.05" />
      <LABEL index="14" value="-0.9" />
      <LABEL index="15" value="-0.75" />
      <LABEL index="16" value="-0.6" />
      <LABEL index="17" value="-0.45" />
      <LABEL index="18" value="-0.3" />
      <LABEL index="19" value="-0.15" />
      <LABEL index="20" value="0" />
      <LABEL index="21" value="0.15" />
      <LABEL index="22" value="0.3" />
      <LABEL index="23" value="0.45" />
      <LABEL index="24" value="0.6" />
      <LABEL index="25" value="0.75" />
      <LABEL index="26" value="0.9" />
      <LABEL index="27" value="1.05" />
      <LABEL index="28" value="1.2" />
      <LABEL index="29" value="1.35" />
      <LABEL index="30" value="1.5" />
      <LABEL index="31" value="1.65" />
      <LABEL index="32" value="1.8" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2C184" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC per ohm</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5C4" flags="0x30">
    <title>O2 Heater - Temperature per Ohm vs Learned Offset, Downstream</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor heater, downstream sensor: how many degrees the heater temperature estimate rises per ohm of heater resistance above nominal, chosen by the resistance offset stored by the cold-start learn. Stock 101 degC per ohm at an offset of -1.2 ohm and below rising to 145 at +0.6 ohm and above. Change only for a different sensor. Effect: raise = the heater temperature estimate rises faster with resistance Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>ohm (learned offset)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="-3" />
      <LABEL index="1" value="-2.85" />
      <LABEL index="2" value="-2.7" />
      <LABEL index="3" value="-2.55" />
      <LABEL index="4" value="-2.4" />
      <LABEL index="5" value="-2.25" />
      <LABEL index="6" value="-2.1" />
      <LABEL index="7" value="-1.95" />
      <LABEL index="8" value="-1.8" />
      <LABEL index="9" value="-1.65" />
      <LABEL index="10" value="-1.5" />
      <LABEL index="11" value="-1.35" />
      <LABEL index="12" value="-1.2" />
      <LABEL index="13" value="-1.05" />
      <LABEL index="14" value="-0.9" />
      <LABEL index="15" value="-0.75" />
      <LABEL index="16" value="-0.6" />
      <LABEL index="17" value="-0.45" />
      <LABEL index="18" value="-0.3" />
      <LABEL index="19" value="-0.15" />
      <LABEL index="20" value="0" />
      <LABEL index="21" value="0.15" />
      <LABEL index="22" value="0.3" />
      <LABEL index="23" value="0.45" />
      <LABEL index="24" value="0.6" />
      <LABEL index="25" value="0.75" />
      <LABEL index="26" value="0.9" />
      <LABEL index="27" value="1.05" />
      <LABEL index="28" value="1.2" />
      <LABEL index="29" value="1.35" />
      <LABEL index="30" value="1.5" />
      <LABEL index="31" value="1.65" />
      <LABEL index="32" value="1.8" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2C1C8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>degC per ohm</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5C5" flags="0x30">
    <title>O2 Heater - Upstream Duty vs Heater Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor heater: upstream heater duty by estimated heater temperature (the lower of this and the voltage limit is used). Stock 98 % up to 700 degC, 80 % at 750, 30 % at 800, off from 850 degC. Effect: raise = more heater power at that heater temperature Evidence: ledger:E1062</description>
    <CATEGORYMEM index="0" category="11" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (heater temperature)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="200" />
      <LABEL index="1" value="250" />
      <LABEL index="2" value="300" />
      <LABEL index="3" value="350" />
      <LABEL index="4" value="400" />
      <LABEL index="5" value="450" />
      <LABEL index="6" value="500" />
      <LABEL index="7" value="550" />
      <LABEL index="8" value="600" />
      <LABEL index="9" value="650" />
      <LABEL index="10" value="700" />
      <LABEL index="11" value="750" />
      <LABEL index="12" value="800" />
      <LABEL index="13" value="850" />
      <LABEL index="14" value="900" />
      <LABEL index="15" value="950" />
      <LABEL index="16" value="1000" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2C11C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>199.996948</max>
      <MATH equation="X/327.68"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5C6" flags="0x30">
    <title>O2 Heater - Upstream Duty Limit vs System Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor heater: highest upstream heater duty by system voltage. Stock 98 % up to 13 V falling to 60.5 % at 18 V. Effect: raise = more heater power allowed at that system voltage Evidence: ledger:E1062</description>
    <CATEGORYMEM index="0" category="11" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>V (system)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="8" />
      <LABEL index="1" value="9.25" />
      <LABEL index="2" value="10.5" />
      <LABEL index="3" value="11.75" />
      <LABEL index="4" value="13" />
      <LABEL index="5" value="14.25" />
      <LABEL index="6" value="15.5" />
      <LABEL index="7" value="16.75" />
      <LABEL index="8" value="18" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2C140" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>%</units>
      <decimalpl>1</decimalpl>
      <min>0.000000</min>
      <max>199.996948</max>
      <MATH equation="X/327.68"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x5C7" flags="0x0">
    <title>O2 Heater - Over-Temperature Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor heater: estimated heater temperature above which the downstream heater is switched off and the over-temperature flag is set for either sensor. Stock 825 degC. Effect: raise = the heater is allowed to run hotter Evidence: ledger:E1062</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2C0F2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5C8" flags="0x0">
    <title>O2 Heater - Downstream Switch-On Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor heater: estimated heater temperature below which the downstream heater is switched back on (at 98 % duty). Stock 800 degC. Effect: raise = the downstream heater is held at a higher temperature Evidence: ledger:E1062</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2C0F4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5C9" flags="0x0">
    <title>Idle Airflow Correction Term - Input Filter (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Inactive on the stock calibration: this belongs to an idle airflow correction term whose output curve is all zero, so the term adds nothing. The term is added to the idle airflow sum at road speed with the throttle closed, outside decel fuel cut, once the idle airflow error has settled. This value is the filter speed of the term&#x27;s input, per update. Stock 0.05. Effect: no effect on the stock calibration Evidence: ledger:E0754, ledger:E0897</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28D72" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>gain</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5CA" flags="0x0">
    <title>Idle Airflow Correction Term - Settled Error Threshold (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Inactive on the stock calibration: this belongs to an idle airflow correction term whose output curve is all zero, so the term adds nothing. The term is added to the idle airflow sum at road speed with the throttle closed, outside decel fuel cut, once the idle airflow error has settled. This value is the idle airflow error below which the term is allowed. Stock 1.0 g/s. Effect: no effect on the stock calibration Evidence: ledger:E0754, ledger:E0897</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28D70" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>63.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5CB" flags="0x0">
    <title>Idle Airflow Correction Term - Minimum Speed (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Inactive on the stock calibration: this belongs to an idle airflow correction term whose output curve is all zero, so the term adds nothing. The term is added to the idle airflow sum at road speed with the throttle closed, outside decel fuel cut, once the idle airflow error has settled. This value is the minimum vehicle speed for the term. Stock 18 km/h. Effect: no effect on the stock calibration Evidence: ledger:E0754, ledger:E0897</description>
    <CATEGORYMEM index="0" category="6" />
    <EMBEDDEDDATA mmedaddress="0x28D78" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x5CC" flags="0x30">
    <title>Idle Closed Loop, Alternate Mode MAP Target Coolant Factor (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant-temperature scaling factor for the target used by an alternate idle closed-loop calculation mode. That alternate mode is never selected on this vehicle, so this factor has no effect here (inactive). Stock 1.20 at the coldest point on this bin, tapering to 1.00 by normal operating temperature. Effect: n/a (alternate mode not selected on this vehicle) Evidence: ledger:E0754</description>
    <CATEGORYMEM index="0" category="6" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>degC (ECT)</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x28FE8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>factor</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>15.999756</max>
      <MATH equation="X/4096"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5CD" flags="0x30">
    <title>Injector Short Pulse Width Correction</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When the commanded injector pulse width for a cylinder is below about 3.0 ms, this curve adds a correction onto it before it reaches the injector driver, compensating for injector nonlinearity at very short pulse widths. Above 3.0 ms the pulse width passes through unchanged. While the engine is running, the corrected result is never allowed below about 0.66 ms. Indexed by the uncorrected pulse width itself, 0 to 4.0 ms. Stock adds up to +0.17 ms at the shortest pulse widths, tapering to +0.016 ms by 4.0 ms. Effect: raise = more pulse width added back in at short injector pulse widths Evidence: ledger:E0755, ledger:E0936</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>ms (pulse width)</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <LABEL index="17" value="17" />
      <LABEL index="18" value="18" />
      <LABEL index="19" value="19" />
      <LABEL index="20" value="20" />
      <LABEL index="21" value="21" />
      <LABEL index="22" value="22" />
      <LABEL index="23" value="23" />
      <LABEL index="24" value="24" />
      <LABEL index="25" value="25" />
      <LABEL index="26" value="26" />
      <LABEL index="27" value="27" />
      <LABEL index="28" value="28" />
      <LABEL index="29" value="29" />
      <LABEL index="30" value="30" />
      <LABEL index="31" value="31" />
      <LABEL index="32" value="32" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x25ABC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>ms (pulse width)</units>
      <decimalpl>2</decimalpl>
      <min>-256.000000</min>
      <max>255.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x5CE" flags="0x0">
    <title>Injector Short Pulse Width Correction Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Below this commanded pulse width, the short-pulse-width correction curve is applied; at or above it the commanded pulse width passes through unchanged. Stock 3.0 ms. Effect: raise = correction applies over a wider range of pulse widths Evidence: ledger:E0755</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x25AB2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ms (pulse width)</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5CF" flags="0x0">
    <title>Injector Short Pulse Width Correction Floor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. While the engine is running, the corrected pulse width from the short-pulse-width correction is never allowed to fall below this value. Stock 0.656 ms. Effect: raise = corrected short pulse widths are floored higher Evidence: ledger:E0755</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x25AB6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ms (pulse width)</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5D0" flags="0x0">
    <title>Injector Short Pulse Width Correction Ceiling Guard</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. An overflow guard on the corrected pulse width: values above this are clamped down to it. Stock 464.0 ms, far above any real commanded pulse width, so this guard is not reached in normal operation. Effect: raise = the (practically unreachable) overflow guard moves higher Evidence: ledger:E0755</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x25AB4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ms (pulse width)</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x5D1" flags="0x30">
    <title>Transient Fuel Evaporation RPM Gain</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A Q15 multiplicative gain (32768 raw = 1.0, no correction), indexed by engine speed, on the evaporation fraction of the port-wall wetting (wall-film / puddle) fuel model: the fraction of the fuel puddle on the intake port wall that evaporates back into the airstream each update. Feeds directly into the model&#x27;s evaporation-fraction coefficient alongside a MAP x temperature table, through the standard Q15 shift-15 helper. Stock is a uniform 1.0 (no correction) from 0 to 6400 rpm. Effect: raise = more of the fuel puddle evaporates back into the airstream at that engine speed Evidence: ledger:E0755</description>
    <CATEGORYMEM index="0" category="1" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>rpm</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2649E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>raw (Q15, 32768 = 1.0)</units>
      <decimalpl>4</decimalpl>
      <min>0.000000</min>
      <max>1.999969</max>
      <MATH equation="X/32768"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5D2" flags="0x30">
    <title>EVAP Test Tank Vacuum Jump Limit B</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Change in filtered tank vacuum between updates, by fuel level (0 to 100 %), that sets the second tank vacuum jump flag when the main flag is clear. Stock 32 inH2O in every cell, which is never reached. Effect: lower = a smaller tank vacuum jump sets the second flag Evidence: ledger:E0756, ledger:E0899, ledger:E0940, ledger:E0944, ledger:E1054</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% fuel level</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.25" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.75" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31.25" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="56.25" />
      <LABEL index="10" value="62.5" />
      <LABEL index="11" value="68.75" />
      <LABEL index="12" value="75" />
      <LABEL index="13" value="81.25" />
      <LABEL index="14" value="87.5" />
      <LABEL index="15" value="93.75" />
      <LABEL index="16" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x35652" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>inH2O</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5D3" flags="0x30">
    <title>EVAP Test Tank Vacuum Jump Limit A</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Change in filtered tank vacuum between updates, by fuel level (0 to 100 %), that sets the main tank vacuum jump flag, which pauses the leak test integration and restarts its count. Stock 32 inH2O in every cell, which is never reached. Effect: lower = a smaller tank vacuum jump pauses the leak test Evidence: ledger:E0756, ledger:E0899, ledger:E0940, ledger:E0944, ledger:E1054</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>% fuel level</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="6.25" />
      <LABEL index="2" value="12.5" />
      <LABEL index="3" value="18.75" />
      <LABEL index="4" value="25" />
      <LABEL index="5" value="31.25" />
      <LABEL index="6" value="37.5" />
      <LABEL index="7" value="43.75" />
      <LABEL index="8" value="50" />
      <LABEL index="9" value="56.25" />
      <LABEL index="10" value="62.5" />
      <LABEL index="11" value="68.75" />
      <LABEL index="12" value="75" />
      <LABEL index="13" value="81.25" />
      <LABEL index="14" value="87.5" />
      <LABEL index="15" value="93.75" />
      <LABEL index="16" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3562E" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>inH2O</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>63.999023</max>
      <MATH equation="X/1024"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x5D4" flags="0x30">
    <title>Transmission Throttle vs Throttle Area Request</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Converts the throttle-area request above idle (from the pedal, or from cruise control) into the throttle value the transmission&#x27;s shift, TCC and WOT schedules are looked up with. Stock rises steeply at first (3 % request gives 17 %, 25 % gives 49 %) and reaches 100 % at about 97 %. Effect: raise = the transmission schedules see more throttle for the same request Evidence: ledger:E0756, ledger:E0964</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>33</indexcount>
      <units>% throttle area request above idle</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="3.125" />
      <LABEL index="2" value="6.25" />
      <LABEL index="3" value="9.375" />
      <LABEL index="4" value="12.5" />
      <LABEL index="5" value="15.625" />
      <LABEL index="6" value="18.75" />
      <LABEL index="7" value="21.875" />
      <LABEL index="8" value="25" />
      <LABEL index="9" value="28.125" />
      <LABEL index="10" value="31.25" />
      <LABEL index="11" value="34.375" />
      <LABEL index="12" value="37.5" />
      <LABEL index="13" value="40.625" />
      <LABEL index="14" value="43.75" />
      <LABEL index="15" value="46.875" />
      <LABEL index="16" value="50" />
      <LABEL index="17" value="53.125" />
      <LABEL index="18" value="56.25" />
      <LABEL index="19" value="59.375" />
      <LABEL index="20" value="62.5" />
      <LABEL index="21" value="65.625" />
      <LABEL index="22" value="68.75" />
      <LABEL index="23" value="71.875" />
      <LABEL index="24" value="75" />
      <LABEL index="25" value="78.125" />
      <LABEL index="26" value="81.25" />
      <LABEL index="27" value="84.375" />
      <LABEL index="28" value="87.5" />
      <LABEL index="29" value="90.625" />
      <LABEL index="30" value="93.75" />
      <LABEL index="31" value="96.875" />
      <LABEL index="32" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x31422" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="33" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>% (transmission throttle)</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>100.000000</max>
      <MATH equation="X/655.35"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x5D5" flags="0x0">
    <title>A/C Disable - System Voltage Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A/C compressor is cut when system voltage falls below this. Stock 9.5 V. Effect: raise = the compressor is cut at a higher voltage Evidence: ledger:E1007</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x2033E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5D6" flags="0x0">
    <title>A/C Re-Enable - System Voltage Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. After a low voltage cut, the A/C compressor is allowed again once system voltage rises above this. Stock 10.0 V. Effect: raise = the compressor stays cut until voltage recovers further Evidence: ledger:E1007</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x20340" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5D7" flags="0x0">
    <title>A/C Disable - System Voltage High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A/C compressor is cut when system voltage rises above this. Stock 16.0 V. Effect: lower = the compressor is cut at a lower voltage Evidence: ledger:E1007</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x20342" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5D8" flags="0x0">
    <title>A/C Re-Enable - System Voltage High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. After a high voltage cut, the A/C compressor is allowed again once system voltage falls below this. Stock 15.8 V. Effect: lower = the compressor stays cut until voltage drops further Evidence: ledger:E1007</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x20344" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5D9" flags="0x0">
    <title>A/C Disable - Refrigerant Pressure High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A/C compressor is cut when refrigerant pressure rises above this. Stock 3160 kPa (458 psi). Effect: lower = the compressor is cut at a lower pressure Evidence: ledger:E1008</description>
    <CATEGORYMEM index="0" category="5" />
    <EMBEDDEDDATA mmedaddress="0x20354" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>4095.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5DA" flags="0x0">
    <title>EVAP Test - Pull-Down Vacuum Target</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP gross leak test (P0455): tank vacuum the purge controller aims for while it pulls the sealed system down. Stock 9.5 inH2O. Effect: raise = the test pulls the tank to a deeper vacuum Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35028" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5DB" flags="0x0">
    <title>EVAP Test - Pull-Down Purge Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP gross leak test (P0455): least commanded purge during the pull-down. Stock 6 %. Effect: raise = purge never drops as low during the pull-down Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3502A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.781250</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/326.4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5DC" flags="0x0">
    <title>EVAP Test - Pull-Down Over-Vacuum Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP gross leak test (P0455): time above the pull-down vacuum maximum before purge is shut. Stock 0.8 s. Effect: raise = purge is shut later on over-vacuum Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3502C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5DD" flags="0x0">
    <title>EVAP Test - Pull-Down Vacuum Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. EVAP gross leak test (P0455): tank vacuum above which, after the over-vacuum time, purge is shut until vacuum falls back below the target. Stock 12 inH2O. Effect: raise = more vacuum is allowed before purge is shut Evidence: ledger:E1070</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3501C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>inH2O</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5DE" flags="0x0">
    <title>Limp Mode 4th Gear Lockout - Hot Fluid Above</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Transmission fault reaction. When fluid temperature rises above this value, 4th gear is replaced by 3rd whenever a major transmission fault code is stored (output speed sensor, shift solenoid A or B, converter clutch, shift timing solenoid, slipping). While the fluid is cooler (below the Clear value after being hot), the lockout follows only a stored shift solenoid B stuck-on code (P0757). Codes stay stored until cleared with a scan tool or aged out by the PCM. Stock 110 C. Effect: raise = with a stored major fault code, 4th gear stays usable up to a hotter fluid temperature Evidence: ledger:E0758, ledger:E0765, ledger:E0770</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x38B5A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5DF" flags="0x0">
    <title>Limp Mode 4th Gear Lockout - Hot Fluid Clear Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fluid temperature below which the limp-mode 4th gear lockout switches back from the hot-fluid rule (any major transmission fault code) to the cool rule (shift solenoid B stuck-on only). Stock 100 C. Effect: lower = the hot-fluid rule stays in force until the fluid cools further Evidence: ledger:E0758, ledger:E0765, ledger:E0770</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x38B5C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5E0" flags="0x0">
    <title>Limp Mode 3rd Gear Hold - Enable</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Transmission fault reaction. On (stock): with a shift solenoid A code stored (P0752, P0973, P0974) and the truck already in 3rd or 4th above the Minimum Speed, a command for 1st or 2nd is changed to 3rd. Codes stay stored until cleared with a scan tool or aged out by the PCM. Effect: off = no 3rd gear hold with a shift solenoid A fault Evidence: ledger:E0758, ledger:E0765, ledger:E0770</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x38B6E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>flag</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5E1" flags="0x0">
    <title>Limp Mode 3rd Gear Hold - Minimum Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Transmission-side road speed above which the limp-mode 3rd gear hold (shift solenoid A codes) acts. Stock 35 km/h (21.7 mph). Effect: raise = the hold only acts at higher speed, so downshifts into 1st / 2nd are allowed up to it Evidence: ledger:E0758, ledger:E0765, ledger:E0770</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x38B70" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5E2" flags="0x0">
    <title>Limp Mode Forced 4th - Minimum Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Transmission fault reaction. With an output speed sensor high code or a shift solenoid B code stored (P0503, P0756, P0976, P0977), a 3rd gear command becomes 4th at or above this transmission-side road speed. Stock 200 km/h, so it does not act in practice. Effect: lower = with those codes stored, 3rd is forced to 4th from a lower speed Evidence: ledger:E0758, ledger:E0765, ledger:E0770</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x38B5E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5E3" flags="0x0">
    <title>Burst Knock Retard - Startup Decay Factor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. During the first seconds after start (the startup decay window), the burst knock retard is multiplied by this every update. Stock 0.5, so it halves each update. Effect: raise = burst knock retard fades more slowly after start Evidence: ledger:E0759</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A8B6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>factor</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5E4" flags="0x0">
    <title>Burst Knock Retard - Startup Decay Window</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Run time after start during which the burst knock retard is scaled down every update by the startup decay factor. Stock 15 s. Effect: raise = the startup decay lasts longer Evidence: ledger:E0759</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A8B8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5E5" flags="0x0">
    <title>P0136 Test - Fuel Step Attempt Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0136: the test may force rich and lean fuel steps to make the downstream sensor swing. Once the number of step attempts plus aborted steps reaches this, no more steps are forced. Stock 50. Effect: lower = fewer forced fuel steps are allowed Evidence: ledger:E1079</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D64" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>count</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5E6" flags="0x0">
    <title>P0136 Test Enable - RPM Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): the forced fuel steps only start while engine speed is at or above this. Stock 1000 rpm. Effect: raise = a step needs a higher rpm Evidence: ledger:E0760, ledger:E0805, ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D66" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5E7" flags="0x0">
    <title>P0136 Test Enable - RPM Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): the forced fuel steps only start while engine speed is at or below this. Stock 5000 rpm. Effect: lower = no step at high rpm Evidence: ledger:E0760, ledger:E0805, ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D68" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5E8" flags="0x0">
    <title>P0136 Test Enable - Airflow Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): the forced fuel steps only start while mass airflow is at or above this. Stock 10 g/s. Effect: raise = a step needs more airflow Evidence: ledger:E0760, ledger:E0805, ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D6A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s (MAF)</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5E9" flags="0x0">
    <title>P0136 Test Enable - Airflow Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): the forced fuel steps only start while mass airflow is at or below this. Stock 100 g/s. Effect: lower = no step at high airflow Evidence: ledger:E0760, ledger:E0805, ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D6C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s (MAF)</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5EA" flags="0x0">
    <title>P0136 Test Enable - Vehicle Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): the forced fuel steps only start while vehicle speed is at or above this. Stock 30 km/h. Effect: raise = a step needs a higher road speed Evidence: ledger:E0760, ledger:E0805, ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D6E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5EB" flags="0x0">
    <title>P0136 Test Enable - Vehicle Speed Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): the forced fuel steps only start while vehicle speed is at or below this. Stock 130 km/h. Effect: lower = no step at high road speed Evidence: ledger:E0760, ledger:E0805, ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D70" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5EC" flags="0x0">
    <title>P0136 Test Enable - Stable Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): its engine speed, airflow and vehicle speed windows must hold for this long before a forced fuel step starts. Stock 1.0 s. Effect: raise = conditions must hold longer before a fuel step Evidence: ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D72" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5ED" flags="0x0">
    <title>P0136 Test - Lean Step Commanded EQ</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): commanded EQ ratio during the forced lean fuel step. Stock 0.90. Effect: lower = a leaner step Evidence: ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D7E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>EQ</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>31.999512</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/2048"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5EE" flags="0x0">
    <title>P0136 Test - Rich Step Commanded EQ</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Downstream O2 sensor test (P0136): commanded EQ ratio during the forced rich fuel step. Stock 1.10. Effect: raise = a richer step Evidence: ledger:E1003</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36D80" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>EQ</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>31.999512</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/2048"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5EF" flags="0x0">
    <title>O2 Response Test Enable - Airflow Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The O2 sensor response test (P0133 / P1133 / P1134) only samples while mass airflow is at or above this. Stock 15 g/s. Effect: raise = the test needs more airflow to run Evidence: ledger:E0993</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33F30" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5F0" flags="0x0">
    <title>O2 Response Test Enable - Airflow Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The O2 sensor response test (P0133 / P1133 / P1134) only samples while mass airflow is at or below this. Stock 50 g/s. Effect: raise = the test also runs at higher airflow Evidence: ledger:E0993</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33F32" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5F1" flags="0x0">
    <title>O2 Response Test Enable - RPM Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The O2 sensor response test (P0133 / P1133 / P1134) only samples while engine speed is at or above this. Stock 1000 rpm. Effect: raise = the test needs a higher rpm to run Evidence: ledger:E0993</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33F36" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5F2" flags="0x0">
    <title>O2 Response Test Enable - RPM Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The O2 sensor response test (P0133 / P1133 / P1134) only samples while engine speed is at or below this. Stock 3500 rpm. Effect: raise = the test also runs at higher rpm Evidence: ledger:E0993</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33F38" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5F3" flags="0x0">
    <title>O2 Response Test Enable - Throttle Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The O2 sensor response test (P0133 / P1133 / P1134) only samples while throttle position, with the share used for idle air taken out, is at or above this. Stock 5 %. Effect: raise = the test needs more throttle to run Evidence: ledger:E0993</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33F3C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5F4" flags="0x0">
    <title>O2 Response Test Enable - Purge Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The O2 sensor response test (P0133 / P1133 / P1134) only runs while commanded evap purge is at or above this. Stock 0 %, so purge never blocks it. Effect: raise = the test waits for purge to be flowing Evidence: ledger:E0993</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33F3E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.781250</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/326.4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5F5" flags="0x0">
    <title>O2 Sensor Tests Enable - Fuel Level Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The O2 sensor response test and the O2 sensor voltage checks (P0131 / P0132 / P0137 / P0138) only run with fuel level at or above this, unless a fuel level sensor code (P0461 / P0462 / P0463) is active. Stock 10 %. Effect: lower = the tests also run with less fuel in the tank Evidence: ledger:E0993</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33F40" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5F6" flags="0x0">
    <title>O2 Response Test Enable - Coolant Temp Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The O2 sensor response test (P0133 / P1133 / P1134) only runs with coolant temperature above this. Stock 70 C. Effect: lower = the test can run on a cooler engine Evidence: ledger:E0993</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33F44" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5F7" flags="0x0">
    <title>O2 Sensor Tests Enable - System Voltage Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The O2 sensor tests (response test, sensor voltage checks P0131 / P0132 / P0137 / P0138 and the downstream sensor test P0136) only run with system voltage at or below this. Stock 18.0 V. Effect: lower = the tests stop at a lower voltage Evidence: ledger:E0993</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33F46" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5F8" flags="0x0">
    <title>O2 Sensor Tests Enable - System Voltage Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The O2 sensor tests (response test, sensor voltage checks P0131 / P0132 / P0137 / P0138 and the downstream sensor test P0136) only run with system voltage at or above this. Stock 11.0 V. Effect: raise = the tests need a higher voltage to run Evidence: ledger:E0993</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33F48" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5F9" flags="0x0">
    <title>O2 Response Test - Start Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The O2 sensor response test (P0133 / P1133 / P1134) starts sampling once its run conditions have held for this long. Stock 2.0 s. Effect: raise = conditions must hold longer before sampling starts Evidence: ledger:E0993</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33F4A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5FA" flags="0x0">
    <title>O2 Response Test - Sampling Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The O2 sensor response test (P0133 / P1133 / P1134) is judged once it has sampled for this long in total. Stock 120 s. Effect: lower = the test finishes on less data Evidence: ledger:E0993</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33F4C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5FB" flags="0x0">
    <title>O2 Response Test Enable - Engine Run Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The O2 sensor response test (P0133 / P1133 / P1134) only runs after the engine has been running longer than this. Stock 200 s. Effect: lower = the test can start sooner after a start Evidence: ledger:E0993</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33F4E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5FC" flags="0x0">
    <title>O2 Sensor Tests Enable - Voltage Out Of Range Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. System voltage must stay outside the voltage window of the O2 sensor tests for this long before the response test and the sensor voltage checks are stopped. Stock 3 s. Effect: raise = short voltage dips or spikes are ignored for longer Evidence: ledger:E0993</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33F56" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5FD" flags="0x0">
    <title>O2 Lean In Power Enrichment Check - Other Sensor Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor lean in power enrichment check (sets P0131 upstream, P0137 downstream): a sample is only taken while the other O2 sensor reads at least this, which confirms the mixture really is rich. Stock 700 mV. Effect: lower = samples are taken with a weaker rich reading on the other sensor Evidence: ledger:E0994</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3435E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>mV</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5FE" flags="0x0">
    <title>P0140 Early Pass - Active Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor activity check, early pass for the downstream sensor (P0140): the check passes once this many samples have read outside the early pass voltage band. Stock 60. Effect: raise = more active samples are needed for the early pass Evidence: ledger:E0995</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34360" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x5FF" flags="0x0">
    <title>P0140 Early Pass - Voltage Band Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor activity check, early pass for the downstream sensor (P0140): a sample is inactive while the sensor reads above this and below the band high limit. Stock 300 mV. Effect: raise = lower readings count as active Evidence: ledger:E0995</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34362" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>mV</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x600" flags="0x0">
    <title>P0140 Early Pass - Voltage Band High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor activity check, early pass for the downstream sensor (P0140): a sample is inactive while the sensor reads below this and above the band low limit. Stock 600 mV. Effect: lower = higher readings count as active Evidence: ledger:E0995</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34364" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>mV</units>
    <decimalpl>2</decimalpl>
    <min>-2048.000000</min>
    <max>2047.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x601" flags="0x30">
    <title>P0134 / P0140 Check - Inactive Voltage Band Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor activity check (P0134 upstream, P0140 downstream): a sample counts as inactive when the sensor reads above this and below the band high limit. Stock 400 mV upstream, 425 mV downstream. Effect: raise = the inactive band gets narrower Evidence: ledger:E0995</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (upstream)" />
      <LABEL index="1" value="sensor 2 (downstream)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34366" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>-2048.000000</min>
      <max>2047.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x602" flags="0x0">
    <title>O2 Heater Cold Learn - Engine Run Time Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater cold-start resistance learn (after a long soak the PCM measures each heater cold and stores how far its resistance is from nominal): only accepted while engine run time is below this, so it has to happen in the first measuring pulse after start. Stock 1.15 s. Effect: raise = a later first pulse still counts as cold Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2C336" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x603" flags="0x0">
    <title>O2 Heater Cold Learn - Coolant to Intake Air Difference Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater cold-start resistance learn (after a long soak the PCM measures each heater cold and stores how far its resistance is from nominal): only runs (and only stores its result) while coolant and intake air temperature differ by less than this. Stock 140 degC, which never limits. Effect: lower = the learn needs coolant and intake air to agree more closely Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2C338" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x604" flags="0x0">
    <title>O2 Heater - Reference Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 sensor heater: temperature at which the nominal heater resistance applies; the learn compares coolant temperature with it and the heater temperature estimate starts from it. Stock 20 degC. Change only with the nominal resistance. Effect: changes the predicted cold resistance and the heater temperature estimate together Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2C33A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x605" flags="0x0">
    <title>O2 Heater Cold Learn - Coolant Temperature Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater cold-start resistance learn (after a long soak the PCM measures each heater cold and stores how far its resistance is from nominal): only runs with coolant temperature below this. Stock 45 degC. Effect: raise = the learn also runs on a warmer engine Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2C33C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x606" flags="0x0">
    <title>O2 Heater Cold Learn - Coolant Temperature Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater cold-start resistance learn (after a long soak the PCM measures each heater cold and stores how far its resistance is from nominal): only runs with coolant temperature above this. Stock -30 degC. Effect: lower = the learn also runs on a colder engine Evidence: ledger:E1063</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x2C33E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x607" flags="0x0">
    <title>Trans Fluid Temp Substitute - Use Estimate</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When the fluid temperature sensor is faulted, the PCM replaces the fluid temperature with a substitute. On (stock): the substitute is estimated from engine coolant temperature and run time (the items below). Off: the fixed Substitute Value is used instead. Effect: off = a fixed substitute fluid temperature is used during a sensor fault Evidence: ledger:E0761</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DE82" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>flag</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x608" flags="0x0">
    <title>Trans Fluid Temp Substitute - Fixed Value</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Fluid temperature assumed during a fluid temperature sensor fault when the estimate is turned off. Stock 140 C (not used with the stock estimate on). Effect: sets the assumed fluid temperature during a sensor fault (estimate off) Evidence: ledger:E0761</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DE68" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x609" flags="0x0">
    <title>Trans Fluid Temp Substitute - Estimate Model Enable</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Inside the substitute estimate: on (stock) runs the coolant / run-time model; off returns the Model Off Value. Effect: off = the estimate returns one fixed value Evidence: ledger:E0761</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DCC8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>flag</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x60A" flags="0x0">
    <title>Trans Fluid Temp Substitute - Model Off Value</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Substitute fluid temperature returned when the estimate model is turned off. Stock 138 C (not used stock). Effect: sets the substitute with the model off Evidence: ledger:E0761</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DE6A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x60B" flags="0x0">
    <title>Trans Fluid Temp Substitute - Hot Engine Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. During a fluid temperature sensor fault, once engine coolant is at or above this the substitute is the Hot Engine Value. Stock 110 C. Effect: raise = the hot substitute starts at a higher coolant temperature Evidence: ledger:E0761</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DE76" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x60C" flags="0x0">
    <title>Trans Fluid Temp Substitute - Hot Engine Value</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Substitute fluid temperature used while coolant is at or above the Hot Engine Threshold. Stock 140 C. Effect: sets the fluid temperature assumed with a hot engine during a sensor fault Evidence: ledger:E0761</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DE6E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x60D" flags="0x0">
    <title>Trans Fluid Temp Substitute - Very Cold Engine Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. After the first seconds of run time, coolant below this uses the Very Cold Engine Value; between this and the Hot Engine Threshold the substitute equals coolant temperature. Stock -30 C. Effect: raise = the very-cold substitute is used up to a higher coolant temperature Evidence: ledger:E0761</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DE72" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x60E" flags="0x0">
    <title>Trans Fluid Temp Substitute - Very Cold Engine Value</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Substitute fluid temperature used when coolant is below the Very Cold Engine Threshold. Stock 95 C. Effect: sets the fluid temperature assumed with a very cold engine during a sensor fault Evidence: ledger:E0761</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DE74" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x60F" flags="0x0">
    <title>Trans Fluid Temp Substitute - Early Run Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. During a fluid temperature sensor fault, for this long after the engine starts the substitute fluid temperature is the intake air temperature (with the stock Use Intake Temperature switch on); after it, the coolant-based estimate takes over. Stock 10.0 s. Effect: raise = the intake air temperature is used as the substitute for longer after start Evidence: ledger:E0298, ledger:E0761, ledger:E0791, ledger:E0818</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DE80" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x610" flags="0x0">
    <title>Trans Fluid Temp Substitute - Use Intake Temperature at Start</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. On (stock): during a fluid temperature sensor fault in the first seconds after start (Early Run Time), the substitute fluid temperature is the intake air temperature. Off: the fixed Early Run Value is used instead. Effect: off = a fixed early-run substitute (stock 90 C) instead of intake air temperature Evidence: ledger:E0298, ledger:E0761, ledger:E0791, ledger:E0818</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DE84" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>flag</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x611" flags="0x0">
    <title>Trans High Pedal Flag - Set Above, 4-Lo</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Set point while the transfer case is in 4-Lo. Stock 56.25 %. When pedal demand rises above the set point the transmission switches to the wide-open-throttle member of its current shift and converter clutch schedule pair and turns on its full-throttle shift rules; it switches back once demand falls below the clear point. Pedal demand here is the driver&#x27;s throttle-area request. Effect: raise = in 4-Lo, full-throttle shifting starts at a higher pedal demand Evidence: ledger:E0761, ledger:E0784, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DC96" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x612" flags="0x0">
    <title>Trans High Pedal Flag - Clear Below, 4-Lo</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Clear point while the transfer case is in 4-Lo. Stock 50.0 %. Keep it below the set point. When pedal demand rises above the set point the transmission switches to the wide-open-throttle member of its current shift and converter clutch schedule pair and turns on its full-throttle shift rules; it switches back once demand falls below the clear point. Pedal demand here is the driver&#x27;s throttle-area request. Effect: raise = in 4-Lo, full-throttle shifting ends at a higher pedal demand Evidence: ledger:E0761, ledger:E0784, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DC94" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x613" flags="0x0">
    <title>Trans High Pedal Flag - Set Above, Cruise</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Set point while cruise control is engaged (hot transmission mode uses the default pair instead). Stock 99.0 %. When pedal demand rises above the set point the transmission switches to the wide-open-throttle member of its current shift and converter clutch schedule pair and turns on its full-throttle shift rules; it switches back once demand falls below the clear point. Pedal demand here is the driver&#x27;s throttle-area request. Effect: raise = with cruise engaged, full-throttle shifting starts at a higher pedal demand Evidence: ledger:E0761, ledger:E0784, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DC9A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x614" flags="0x0">
    <title>Trans High Pedal Flag - Clear Below, Cruise</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Clear point while cruise control is engaged (hot transmission mode uses the default pair instead). Stock 97.5 %. Keep it below the set point. When pedal demand rises above the set point the transmission switches to the wide-open-throttle member of its current shift and converter clutch schedule pair and turns on its full-throttle shift rules; it switches back once demand falls below the clear point. Pedal demand here is the driver&#x27;s throttle-area request. Effect: raise = with cruise engaged, full-throttle shifting ends at a higher pedal demand Evidence: ledger:E0761, ledger:E0784, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DC98" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x615" flags="0x0">
    <title>Trans High Pedal Flag - Set Above, Default</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Set point in normal driving and in hot transmission mode. Stock 96.88 %. When pedal demand rises above the set point the transmission switches to the wide-open-throttle member of its current shift and converter clutch schedule pair and turns on its full-throttle shift rules; it switches back once demand falls below the clear point. Pedal demand here is the driver&#x27;s throttle-area request. Effect: raise = full-throttle shifting starts at a higher pedal demand Evidence: ledger:E0761, ledger:E0784, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DC92" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x616" flags="0x0">
    <title>Trans High Pedal Flag - Clear Below, Default</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Clear point in normal driving and in hot transmission mode. Stock 93.75 %. Keep it below the set point. When pedal demand rises above the set point the transmission switches to the wide-open-throttle member of its current shift and converter clutch schedule pair and turns on its full-throttle shift rules; it switches back once demand falls below the clear point. Pedal demand here is the driver&#x27;s throttle-area request. Effect: raise = full-throttle shifting ends at a higher pedal demand Evidence: ledger:E0761, ledger:E0784, ledger:E0838</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DC90" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x617" flags="0x0">
    <title>Transfer Case High Range Ratio</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Multiplies the output speed sensor reading to get transmission output speed while the transfer case is in high range. The sensor sits after the transfer case, so this is the high-range ratio (1.00 on the stock transfer case). Stock 1.00. Change it only for a transfer case whose high range is not 1:1, together with Transfer Case Low Range Ratio. Effect: raise = transmission output speed, and so shift and converter lockup speeds, read higher in high range Evidence: ledger:E0761, ledger:E0808, ledger:E0810</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DECC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>:1</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x618" flags="0x0">
    <title>Transmission Output Speed Filter Gain</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. How quickly the filtered transmission output speed follows each new reading, as the fraction of the change taken per update. The filtered speed is what the gear ratio checks, converter clutch logic, torque converter model and several speed diagnostics use, and what the scan tool shows as output speed. Stock 0.10 (10 percent per update). Effect: raise = the filtered output speed reacts faster but is noisier; lower = smoother but lags more Evidence: ledger:E0761, ledger:E0808, ledger:E0810</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DED8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>gain</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x619" flags="0x0">
    <title>Transmission Output Speed, Ratio Correction Enable</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. On (stock): the output speed sensor reading is corrected by the transfer case ratio (high or low range) to give true transmission output speed. Off, with the two flags below also off, the raw sensor reading is used uncorrected, so shift and lockup speeds would be wrong in 4-Lo. Do not change on a stock driveline. Effect: off = no transfer case ratio correction of output speed Evidence: ledger:E0761, ledger:E0808, ledger:E0810</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DED4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>flag</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x61A" flags="0x0">
    <title>Transmission Output Speed, Axle Ratio Multiply</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When on, transmission output speed is also multiplied by Final Drive Ratio - Transmission Speed, for a speed sensor placed after the axle. Off on the H3 (the sensor reads the transfer case output). Do not turn on for this truck. Effect: on = output speed would read about 4.56 times too high on the stock driveline Evidence: ledger:E0761, ledger:E0808, ledger:E0810</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DED6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>flag</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x61B" flags="0x0">
    <title>Transmission Output Speed, Raw Sensor Bypass</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. When on, transmission output speed skips all ratio correction and uses the raw sensor reading. Off (stock). Turning it on removes the 4-Lo correction, so shifts and lockup would happen at the wrong speeds in 4-Lo. Effect: on = raw sensor reading used, no transfer case correction Evidence: ledger:E0761, ledger:E0808, ledger:E0810</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DED0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>flag</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x61C" flags="0x0">
    <title>Output Speed Fault, Substitute Hold Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. During a transmission output speed sensor fault, how long after each gear change the calculated substitute output speed stays forced in before the PCM&#x27;s normal fault handling takes back over. Stock 2.0 seconds. Effect: raise = the substitute output speed value is held longer after each shift before the PCM reverts to its normal fault handling logic Evidence: ledger:E0761, ledger:E0806</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DEC0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x61D" flags="0x0">
    <title>TCC Tip-In Release - Hold Time, Applied, Above 255 km/h (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Used only above 255 km/h. Stock 0.5 s. TCC tip-in release: when the throttle request rises faster than the rate threshold (change per update), the PCM releases the converter clutch and holds it released for the hold time. Inactive on stock: the live thresholds are a 100 % step per update, which cannot be exceeded. Effect: no effect on stock (inactive) Evidence: ledger:E0762, ledger:E0807, ledger:E0857</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D084" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x61E" flags="0x0">
    <title>TCC Tip-In Release - Hold Time, Clutch Applied (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Used while the clutch is applied, at road speed. Stock 0.5 s. TCC tip-in release: when the throttle request rises faster than the rate threshold (change per update), the PCM releases the converter clutch and holds it released for the hold time. Inactive on stock: the live thresholds are a 100 % step per update, which cannot be exceeded. Effect: no effect on stock (inactive) Evidence: ledger:E0762, ledger:E0807, ledger:E0857</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D086" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x61F" flags="0x0">
    <title>TCC Tip-In Release - Rate Threshold, Applied, Modes 0-1 (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Used only in shift modes 0 and 1, which stock never selects. Stock 0 % per update. TCC tip-in release: when the throttle request rises faster than the rate threshold (change per update), the PCM releases the converter clutch and holds it released for the hold time. Inactive on stock: the live thresholds are a 100 % step per update, which cannot be exceeded. Effect: no effect on stock (inactive) Evidence: ledger:E0762, ledger:E0807, ledger:E0857</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D0A0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>639.990234</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/102.4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x620" flags="0x0">
    <title>TCC Tip-In Release - Rate Threshold, Applied, Modes 0-1, Above 255 km/h (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Never used on stock. Stock 0 % per update. TCC tip-in release: when the throttle request rises faster than the rate threshold (change per update), the PCM releases the converter clutch and holds it released for the hold time. Inactive on stock: the live thresholds are a 100 % step per update, which cannot be exceeded. Effect: no effect on stock (inactive) Evidence: ledger:E0762, ledger:E0857</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D09C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>639.990234</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/102.4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x621" flags="0x0">
    <title>TCC Tip-In Release - Rate Threshold, Clutch Applied (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Used while the clutch is applied, at road speed. Stock 100 % per update. TCC tip-in release: when the throttle request rises faster than the rate threshold (change per update), the PCM releases the converter clutch and holds it released for the hold time. Inactive on stock: the live thresholds are a 100 % step per update, which cannot be exceeded. Effect: no effect on stock (inactive) Evidence: ledger:E0762, ledger:E0857</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D09E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>639.990234</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/102.4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x622" flags="0x0">
    <title>TCC Tip-In Release - Rate Threshold, Applied, Above 255 km/h (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Used only above 255 km/h, never on the road. Stock 100 % per update. TCC tip-in release: when the throttle request rises faster than the rate threshold (change per update), the PCM releases the converter clutch and holds it released for the hold time. Inactive on stock: the live thresholds are a 100 % step per update, which cannot be exceeded. Effect: no effect on stock (inactive) Evidence: ledger:E0762, ledger:E0857</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D09A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>639.990234</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/102.4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x623" flags="0x0">
    <title>TCC Tip-In Release - Hold Time, Not Applied, Above 255 km/h (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Used only above 255 km/h. Stock 0.5 s. TCC tip-in release: when the throttle request rises faster than the rate threshold (change per update), the PCM releases the converter clutch and holds it released for the hold time. Inactive on stock: the live thresholds are a 100 % step per update, which cannot be exceeded. Effect: no effect on stock (inactive) Evidence: ledger:E0762, ledger:E0807, ledger:E0857</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D08A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x624" flags="0x0">
    <title>TCC Tip-In Release - Hold Time, Clutch Not Applied (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Used while the clutch is not applied, at road speed. Stock 0.5 s. TCC tip-in release: when the throttle request rises faster than the rate threshold (change per update), the PCM releases the converter clutch and holds it released for the hold time. Inactive on stock: the live thresholds are a 100 % step per update, which cannot be exceeded. Effect: no effect on stock (inactive) Evidence: ledger:E0762, ledger:E0807, ledger:E0857</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D088" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x625" flags="0x0">
    <title>TCC Tip-In Release - Rate Threshold, Not Applied, Modes 0-1 (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Used only in shift modes 0 and 1, which stock never selects. Stock 0 % per update. TCC tip-in release: when the throttle request rises faster than the rate threshold (change per update), the PCM releases the converter clutch and holds it released for the hold time. Inactive on stock: the live thresholds are a 100 % step per update, which cannot be exceeded. Effect: no effect on stock (inactive) Evidence: ledger:E0762, ledger:E0807, ledger:E0857</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D0A8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>639.990234</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/102.4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x626" flags="0x0">
    <title>TCC Tip-In Release - Rate Threshold, Not Applied, Modes 0-1, Above 255 km/h (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Never used on stock. Stock 0 % per update. TCC tip-in release: when the throttle request rises faster than the rate threshold (change per update), the PCM releases the converter clutch and holds it released for the hold time. Inactive on stock: the live thresholds are a 100 % step per update, which cannot be exceeded. Effect: no effect on stock (inactive) Evidence: ledger:E0762, ledger:E0857</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D0A4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>639.990234</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/102.4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x627" flags="0x0">
    <title>TCC Tip-In Release - Rate Threshold, Clutch Not Applied (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Used while the clutch is not applied, at road speed. Stock 100 % per update. TCC tip-in release: when the throttle request rises faster than the rate threshold (change per update), the PCM releases the converter clutch and holds it released for the hold time. Inactive on stock: the live thresholds are a 100 % step per update, which cannot be exceeded. Effect: no effect on stock (inactive) Evidence: ledger:E0762, ledger:E0857</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D0A6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>639.990234</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/102.4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x628" flags="0x0">
    <title>TCC Tip-In Release - Rate Threshold, Not Applied, Above 255 km/h (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Used only above 255 km/h, never on the road. Stock 100 % per update. TCC tip-in release: when the throttle request rises faster than the rate threshold (change per update), the PCM releases the converter clutch and holds it released for the hold time. Inactive on stock: the live thresholds are a 100 % step per update, which cannot be exceeded. Effect: no effect on stock (inactive) Evidence: ledger:E0762, ledger:E0857</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D0A2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>639.990234</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/102.4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x629" flags="0x0">
    <title>TCC Slip On Target - Entry Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 0.006 s. How long slip must stay within the entry margin before the PCM moves to on target. With the converter clutch applied the PCM runs one of two phases: on target (slip held close to the slip target) and above target (slip higher than the target, being pulled back in). Effect: raise = slip must settle longer before on target Evidence: ledger:E0762, ledger:E0807, ledger:E0855</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3CDD6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x62A" flags="0x0">
    <title>TCC Slip On Target - Entry Margin</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 50 rpm. The PCM moves to on target once slip stays within this margin of the target, above the speed or torque threshold. With the converter clutch applied the PCM runs one of two phases: on target (slip held close to the slip target) and above target (slip higher than the target, being pulled back in). Effect: raise = the clutch counts as on target with more slip Evidence: ledger:E0762, ledger:E0807, ledger:E0855</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3CDDA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x62B" flags="0x0">
    <title>TCC Slip On Target - Entry Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 28 km/h (transmission-side speed). Entering on target needs speed above this or torque above the entry torque. The PCM moves to on target once slip stays within this margin of the target, above the speed or torque threshold. With the converter clutch applied the PCM runs one of two phases: on target (slip held close to the slip target) and above target (slip higher than the target, being pulled back in). Effect: raise = on target needs a higher speed (or the torque path) Evidence: ledger:E0762, ledger:E0807, ledger:E0855</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3CDDE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x62C" flags="0x0">
    <title>TCC Slip On Target - Entry Torque</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 305 Nm. Entering on target needs torque above this or speed above the entry speed. The PCM moves to on target once slip stays within this margin of the target, above the speed or torque threshold. With the converter clutch applied the PCM runs one of two phases: on target (slip held close to the slip target) and above target (slip higher than the target, being pulled back in). Effect: raise = on target needs more torque (or the speed path) Evidence: ledger:E0762, ledger:E0807, ledger:E0855</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3CDE0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x62D" flags="0x0">
    <title>TCC Slip On Target - Low Speed Exit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 23.5 km/h (transmission-side speed). The PCM also drops back to above target below both the low speed and low torque thresholds. With the converter clutch applied the PCM runs one of two phases: on target (slip held close to the slip target) and above target (slip higher than the target, being pulled back in). Effect: raise = on target ends at a higher speed Evidence: ledger:E0762, ledger:E0823, ledger:E0855</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D068" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x62E" flags="0x0">
    <title>TCC Slip On Target - Low Torque Exit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 300 Nm. The PCM also drops back to above target below both the low speed and low torque thresholds. With the converter clutch applied the PCM runs one of two phases: on target (slip held close to the slip target) and above target (slip higher than the target, being pulled back in). Effect: raise = on target ends at a higher torque Evidence: ledger:E0762, ledger:E0823, ledger:E0855</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D066" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x62F" flags="0x30">
    <title>Trans Fault Reaction - Enable While Failing, by Code</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. One value per fault-code slot (each column is labelled with the trouble code of its slot): non-zero lets that code drive its transmission fault reactions while the fault is failing now; the reaction ends when the test passes again. Stock: on for P0218, P0711, P0719 and P0724. Effect: DO NOT EDIT unless you know which fault reaction you are changing Evidence: ledger:E0765, ledger:E0770, ledger:E1084</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>115</indexcount>
      <units>fault code slot</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="P0121" />
      <LABEL index="1" value="P0122" />
      <LABEL index="2" value="P0123" />
      <LABEL index="3" value="P0218" />
      <LABEL index="4" value="unused" />
      <LABEL index="5" value="unused" />
      <LABEL index="6" value="P0502" />
      <LABEL index="7" value="P0503" />
      <LABEL index="8" value="P0562" />
      <LABEL index="9" value="P0572" />
      <LABEL index="10" value="P0573" />
      <LABEL index="11" value="P0563" />
      <LABEL index="12" value="P0601" />
      <LABEL index="13" value="P0602" />
      <LABEL index="14" value="P0603" />
      <LABEL index="15" value="P0604" />
      <LABEL index="16" value="unused" />
      <LABEL index="17" value="P0703" />
      <LABEL index="18" value="P0705" />
      <LABEL index="19" value="P0711" />
      <LABEL index="20" value="P0712" />
      <LABEL index="21" value="P0713" />
      <LABEL index="22" value="P0716" />
      <LABEL index="23" value="P0717" />
      <LABEL index="24" value="P0719" />
      <LABEL index="25" value="P0722" />
      <LABEL index="26" value="P0723" />
      <LABEL index="27" value="P0724" />
      <LABEL index="28" value="unused" />
      <LABEL index="29" value="P0731" />
      <LABEL index="30" value="P0732" />
      <LABEL index="31" value="P0733" />
      <LABEL index="32" value="P0734" />
      <LABEL index="33" value="P0735" />
      <LABEL index="34" value="P0741" />
      <LABEL index="35" value="P0742" />
      <LABEL index="36" value="P0748" />
      <LABEL index="37" value="P0751" />
      <LABEL index="38" value="P0752" />
      <LABEL index="39" value="P0756" />
      <LABEL index="40" value="P0757" />
      <LABEL index="41" value="P0761" />
      <LABEL index="42" value="P0762" />
      <LABEL index="43" value="unused" />
      <LABEL index="44" value="unused" />
      <LABEL index="45" value="unused" />
      <LABEL index="46" value="P0120" />
      <LABEL index="47" value="unused" />
      <LABEL index="48" value="unused" />
      <LABEL index="49" value="P0220" />
      <LABEL index="50" value="P2135" />
      <LABEL index="51" value="P2138" />
      <LABEL index="52" value="P2120" />
      <LABEL index="53" value="P2125" />
      <LABEL index="54" value="P2176" />
      <LABEL index="55" value="P0068" />
      <LABEL index="56" value="P2101" />
      <LABEL index="57" value="P1516" />
      <LABEL index="58" value="P2119" />
      <LABEL index="59" value="P1574" />
      <LABEL index="60" value="P1575" />
      <LABEL index="61" value="P062F" />
      <LABEL index="62" value="P060D" />
      <LABEL index="63" value="P060E" />
      <LABEL index="64" value="P1682" />
      <LABEL index="65" value="P1750" />
      <LABEL index="66" value="unused" />
      <LABEL index="67" value="P2544" />
      <LABEL index="68" value="unused" />
      <LABEL index="69" value="unused" />
      <LABEL index="70" value="unused" />
      <LABEL index="71" value="unused" />
      <LABEL index="72" value="P278A" />
      <LABEL index="73" value="P1810" />
      <LABEL index="74" value="P1811" />
      <LABEL index="75" value="P1814" />
      <LABEL index="76" value="P1815" />
      <LABEL index="77" value="P1816" />
      <LABEL index="78" value="P1817" />
      <LABEL index="79" value="P1818" />
      <LABEL index="80" value="P1819" />
      <LABEL index="81" value="P1820" />
      <LABEL index="82" value="P1822" />
      <LABEL index="83" value="P1823" />
      <LABEL index="84" value="P1825" />
      <LABEL index="85" value="P1826" />
      <LABEL index="86" value="unused" />
      <LABEL index="87" value="unused" />
      <LABEL index="88" value="unused" />
      <LABEL index="89" value="unused" />
      <LABEL index="90" value="P0973" />
      <LABEL index="91" value="P0974" />
      <LABEL index="92" value="P0976" />
      <LABEL index="93" value="P0977" />
      <LABEL index="94" value="P0787" />
      <LABEL index="95" value="P0788" />
      <LABEL index="96" value="P2769" />
      <LABEL index="97" value="P2770" />
      <LABEL index="98" value="P0979" />
      <LABEL index="99" value="P0980" />
      <LABEL index="100" value="P2764" />
      <LABEL index="101" value="P2763" />
      <LABEL index="102" value="P0897" />
      <LABEL index="103" value="P0894" />
      <LABEL index="104" value="P2771" />
      <LABEL index="105" value="unused" />
      <LABEL index="106" value="unused" />
      <LABEL index="107" value="P1887" />
      <LABEL index="108" value="unused" />
      <LABEL index="109" value="unused" />
      <LABEL index="110" value="unused" />
      <LABEL index="111" value="unused" />
      <LABEL index="112" value="unused" />
      <LABEL index="113" value="unused" />
      <LABEL index="114" value="unused" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3FCEC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="115" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>flag</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x630" flags="0x30">
    <title>Trans Fault Reaction - Enable Until Codes Cleared, by Code</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. One value per fault-code slot (each column is labelled with the trouble code of its slot): non-zero lets that code drive its transmission fault reactions from the moment it has failed until the codes are cleared with a scan tool or age out, so the reaction stays on after the fault stops. Stock: on for 31 codes. A slot with both this and the failing-now enable at zero has no reaction. Effect: DO NOT EDIT unless you know which fault reaction you are changing Evidence: ledger:E0765, ledger:E0770, ledger:E1084</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>115</indexcount>
      <units>fault code slot</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="P0121" />
      <LABEL index="1" value="P0122" />
      <LABEL index="2" value="P0123" />
      <LABEL index="3" value="P0218" />
      <LABEL index="4" value="unused" />
      <LABEL index="5" value="unused" />
      <LABEL index="6" value="P0502" />
      <LABEL index="7" value="P0503" />
      <LABEL index="8" value="P0562" />
      <LABEL index="9" value="P0572" />
      <LABEL index="10" value="P0573" />
      <LABEL index="11" value="P0563" />
      <LABEL index="12" value="P0601" />
      <LABEL index="13" value="P0602" />
      <LABEL index="14" value="P0603" />
      <LABEL index="15" value="P0604" />
      <LABEL index="16" value="unused" />
      <LABEL index="17" value="P0703" />
      <LABEL index="18" value="P0705" />
      <LABEL index="19" value="P0711" />
      <LABEL index="20" value="P0712" />
      <LABEL index="21" value="P0713" />
      <LABEL index="22" value="P0716" />
      <LABEL index="23" value="P0717" />
      <LABEL index="24" value="P0719" />
      <LABEL index="25" value="P0722" />
      <LABEL index="26" value="P0723" />
      <LABEL index="27" value="P0724" />
      <LABEL index="28" value="unused" />
      <LABEL index="29" value="P0731" />
      <LABEL index="30" value="P0732" />
      <LABEL index="31" value="P0733" />
      <LABEL index="32" value="P0734" />
      <LABEL index="33" value="P0735" />
      <LABEL index="34" value="P0741" />
      <LABEL index="35" value="P0742" />
      <LABEL index="36" value="P0748" />
      <LABEL index="37" value="P0751" />
      <LABEL index="38" value="P0752" />
      <LABEL index="39" value="P0756" />
      <LABEL index="40" value="P0757" />
      <LABEL index="41" value="P0761" />
      <LABEL index="42" value="P0762" />
      <LABEL index="43" value="unused" />
      <LABEL index="44" value="unused" />
      <LABEL index="45" value="unused" />
      <LABEL index="46" value="P0120" />
      <LABEL index="47" value="unused" />
      <LABEL index="48" value="unused" />
      <LABEL index="49" value="P0220" />
      <LABEL index="50" value="P2135" />
      <LABEL index="51" value="P2138" />
      <LABEL index="52" value="P2120" />
      <LABEL index="53" value="P2125" />
      <LABEL index="54" value="P2176" />
      <LABEL index="55" value="P0068" />
      <LABEL index="56" value="P2101" />
      <LABEL index="57" value="P1516" />
      <LABEL index="58" value="P2119" />
      <LABEL index="59" value="P1574" />
      <LABEL index="60" value="P1575" />
      <LABEL index="61" value="P062F" />
      <LABEL index="62" value="P060D" />
      <LABEL index="63" value="P060E" />
      <LABEL index="64" value="P1682" />
      <LABEL index="65" value="P1750" />
      <LABEL index="66" value="unused" />
      <LABEL index="67" value="P2544" />
      <LABEL index="68" value="unused" />
      <LABEL index="69" value="unused" />
      <LABEL index="70" value="unused" />
      <LABEL index="71" value="unused" />
      <LABEL index="72" value="P278A" />
      <LABEL index="73" value="P1810" />
      <LABEL index="74" value="P1811" />
      <LABEL index="75" value="P1814" />
      <LABEL index="76" value="P1815" />
      <LABEL index="77" value="P1816" />
      <LABEL index="78" value="P1817" />
      <LABEL index="79" value="P1818" />
      <LABEL index="80" value="P1819" />
      <LABEL index="81" value="P1820" />
      <LABEL index="82" value="P1822" />
      <LABEL index="83" value="P1823" />
      <LABEL index="84" value="P1825" />
      <LABEL index="85" value="P1826" />
      <LABEL index="86" value="unused" />
      <LABEL index="87" value="unused" />
      <LABEL index="88" value="unused" />
      <LABEL index="89" value="unused" />
      <LABEL index="90" value="P0973" />
      <LABEL index="91" value="P0974" />
      <LABEL index="92" value="P0976" />
      <LABEL index="93" value="P0977" />
      <LABEL index="94" value="P0787" />
      <LABEL index="95" value="P0788" />
      <LABEL index="96" value="P2769" />
      <LABEL index="97" value="P2770" />
      <LABEL index="98" value="P0979" />
      <LABEL index="99" value="P0980" />
      <LABEL index="100" value="P2764" />
      <LABEL index="101" value="P2763" />
      <LABEL index="102" value="P0897" />
      <LABEL index="103" value="P0894" />
      <LABEL index="104" value="P2771" />
      <LABEL index="105" value="unused" />
      <LABEL index="106" value="unused" />
      <LABEL index="107" value="P1887" />
      <LABEL index="108" value="unused" />
      <LABEL index="109" value="unused" />
      <LABEL index="110" value="unused" />
      <LABEL index="111" value="unused" />
      <LABEL index="112" value="unused" />
      <LABEL index="113" value="unused" />
      <LABEL index="114" value="unused" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3FDD4" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="115" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>flag</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>65535.000000</max>
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x631" flags="0x0">
    <title>Shift Sol A Performance (P0751), 1st Gear - Throttle Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest driver throttle-area request at which the shift solenoid A performance test (P0751) watches the transmission in 1st gear. Stock 25 %. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at a larger throttle request Evidence: ledger:E0766, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F65C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x632" flags="0x0">
    <title>Shift Sol A Performance (P0751), 1st Gear - Torque Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest engine torque at which the shift solenoid A performance test (P0751) watches the transmission in 1st gear. Stock 550 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: lower = the test stops running at a lower engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F63E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x633" flags="0x0">
    <title>Shift Sol A Performance (P0751), 1st Gear - Torque Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest engine torque at which the shift solenoid A performance test (P0751) watches the transmission in 1st gear. Stock 55 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at higher engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F620" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x634" flags="0x0">
    <title>Shift Sol A Performance (P0751), 1st Gear - Settle Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time since the last shift that must pass before the shift solenoid A performance test (P0751) watches the transmission in 1st gear. Stock 2 s. The other conditions of the same check (throttle, torque and a converter speed ratio minimum) must hold as well. Effect: raise = the ratio check in 1st gear waits longer after a shift before it can run Evidence: ledger:E0766, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F606" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x635" flags="0x0">
    <title>Shift Sol A Performance (P0751), 1st Gear - Converter Ratio Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest converter speed ratio at which the shift solenoid A performance test (P0751) watches the transmission in 1st gear. Stock 0.62. The converter speed ratio here is the PCM&#x27;s own torque converter model estimate (turbine speed over engine speed, from engine speed and torque): 1.00 = coupled, low values = high slip. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test waits until the converter is closer to coupled Evidence: ledger:E0766, ledger:E0841, ledger:E0851</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F5EE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x636" flags="0x0">
    <title>Shift Sol A Performance (P0751), 4th Gear - Settle Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time since the last shift that must pass before the shift solenoid A performance test (P0751) watches the transmission in 4th gear. Stock 2.5 s. The other conditions of the same check (throttle, torque and a converter speed ratio minimum) must hold as well. Effect: raise = the ratio check in 3rd/4th gear waits longer after a shift before it can run Evidence: ledger:E0766, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F608" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x637" flags="0x0">
    <title>Shift Sol A Performance (P0751), 4th Gear - Throttle Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest driver throttle-area request at which the shift solenoid A performance test (P0751) watches the transmission in 4th gear. Stock 25 %. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at a larger throttle request Evidence: ledger:E0766, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F65E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x638" flags="0x0">
    <title>Shift Sol A Performance (P0751), 4th Gear - Torque Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest engine torque at which the shift solenoid A performance test (P0751) watches the transmission in 4th gear. Stock 550 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: lower = the test stops running at a lower engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F640" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x639" flags="0x0">
    <title>Shift Sol A Performance (P0751), 4th Gear - Torque Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest engine torque at which the shift solenoid A performance test (P0751) watches the transmission in 4th gear. Stock 55 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at higher engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F622" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x63A" flags="0x0">
    <title>Shift Sol A Performance (P0751), 4th Gear - Converter Ratio Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest converter speed ratio at which the shift solenoid A performance test (P0751) watches the transmission in 4th gear. Stock 0.85. The converter speed ratio here is the PCM&#x27;s own torque converter model estimate (turbine speed over engine speed, from engine speed and torque): 1.00 = coupled, low values = high slip. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test waits until the converter is closer to coupled Evidence: ledger:E0766, ledger:E0841, ledger:E0851</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F5F0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x63B" flags="0x0">
    <title>Shift Sol A Stuck On (P0752), 2nd Gear - Throttle Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest driver throttle-area request at which the shift solenoid A stuck-on test (P0752) watches the transmission in 2nd gear. Stock 25 %. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at a larger throttle request Evidence: ledger:E0766, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F660" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x63C" flags="0x0">
    <title>Shift Sol A Stuck On (P0752), 2nd Gear - Torque Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest engine torque at which the shift solenoid A stuck-on test (P0752) watches the transmission in 2nd gear. Stock 550 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: lower = the test stops running at a lower engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F642" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x63D" flags="0x0">
    <title>Shift Sol A Stuck On (P0752), 2nd Gear - Torque Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest engine torque at which the shift solenoid A stuck-on test (P0752) watches the transmission in 2nd gear. Stock 40 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at higher engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F624" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x63E" flags="0x0">
    <title>Shift Sol A Stuck On (P0752), 2nd Gear - Settle Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time since the last shift that must pass before the shift solenoid A stuck-on test (P0752) watches the transmission in 2nd gear. Stock 1.5 s. The other conditions of the same check (throttle, torque and a converter speed ratio minimum) must hold as well. Effect: raise = the ratio check in 2nd gear waits longer after a shift before it can run Evidence: ledger:E0766, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F60A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x63F" flags="0x0">
    <title>Shift Sol A Stuck On (P0752), 2nd Gear - Converter Ratio Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest converter speed ratio at which the shift solenoid A stuck-on test (P0752) watches the transmission in 2nd gear. Stock 0.62. The converter speed ratio here is the PCM&#x27;s own torque converter model estimate (turbine speed over engine speed, from engine speed and torque): 1.00 = coupled, low values = high slip. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test waits until the converter is closer to coupled Evidence: ledger:E0766, ledger:E0841, ledger:E0851</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F5F2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x640" flags="0x0">
    <title>Shift Sol A Stuck On (P0752), 3rd Gear - Throttle Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest driver throttle-area request at which the shift solenoid A stuck-on test (P0752) watches the transmission in 3rd gear. Stock 25 %. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at a larger throttle request Evidence: ledger:E0766, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F662" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x641" flags="0x0">
    <title>Shift Sol A Stuck On (P0752), 3rd Gear - Torque Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest engine torque at which the shift solenoid A stuck-on test (P0752) watches the transmission in 3rd gear. Stock 550 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: lower = the test stops running at a lower engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F644" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x642" flags="0x0">
    <title>Shift Sol A Stuck On (P0752), 3rd Gear - Torque Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest engine torque at which the shift solenoid A stuck-on test (P0752) watches the transmission in 3rd gear. Stock 65 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at higher engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F626" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x643" flags="0x0">
    <title>Shift Sol A Stuck On (P0752), 3rd Gear - Settle Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time since the last shift that must pass before the shift solenoid A stuck-on test (P0752) watches the transmission in 3rd gear. Stock 3 s. The other conditions of the same check (throttle, torque and a converter speed ratio minimum) must hold as well. Effect: raise = the ratio check in 3rd gear waits longer after a shift before it can run Evidence: ledger:E0766, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F60C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x644" flags="0x0">
    <title>Shift Sol A Stuck On (P0752), 3rd Gear - Converter Ratio Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest converter speed ratio at which the shift solenoid A stuck-on test (P0752) watches the transmission in 3rd gear. Stock 0.58. The converter speed ratio here is the PCM&#x27;s own torque converter model estimate (turbine speed over engine speed, from engine speed and torque): 1.00 = coupled, low values = high slip. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test waits until the converter is closer to coupled Evidence: ledger:E0766, ledger:E0841, ledger:E0851</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F5F4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x645" flags="0x0">
    <title>Shift Sol B Performance (P0756), 2nd Gear - Throttle Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest driver throttle-area request at which the shift solenoid B performance test (P0756) watches the transmission in 2nd gear. Stock 25 %. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at a larger throttle request Evidence: ledger:E0766, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F666" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x646" flags="0x0">
    <title>Shift Sol B Performance (P0756), 2nd Gear - Torque Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest engine torque at which the shift solenoid B performance test (P0756) watches the transmission in 2nd gear. Stock 550 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: lower = the test stops running at a lower engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F648" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x647" flags="0x0">
    <title>Shift Sol B Performance (P0756), 2nd Gear - Torque Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest engine torque at which the shift solenoid B performance test (P0756) watches the transmission in 2nd gear. Stock 65 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at higher engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F62A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x648" flags="0x0">
    <title>Shift Sol B Performance (P0756), 2nd Gear - Settle Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time since the last shift that must pass before the shift solenoid B performance test (P0756) watches the transmission in 2nd gear. Stock 1 s. The other conditions of the same check (throttle, torque and a converter speed ratio minimum) must hold as well. Effect: raise = the ratio check in 2nd gear waits longer after a shift before it can run Evidence: ledger:E0766, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F610" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x649" flags="0x0">
    <title>Shift Sol B Performance (P0756), 2nd Gear - Converter Ratio Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest converter speed ratio at which the shift solenoid B performance test (P0756) watches the transmission in 2nd gear. Stock 0.5. The converter speed ratio here is the PCM&#x27;s own torque converter model estimate (turbine speed over engine speed, from engine speed and torque): 1.00 = coupled, low values = high slip. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test waits until the converter is closer to coupled Evidence: ledger:E0766, ledger:E0841, ledger:E0851</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F5F8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x64A" flags="0x0">
    <title>Shift Sol B Stuck On (P0757), 3rd Gear - Throttle Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest driver throttle-area request at which the shift solenoid B stuck-on test (P0757) watches the transmission in 3rd gear. Stock 25 %. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at a larger throttle request Evidence: ledger:E0766, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F668" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x64B" flags="0x0">
    <title>Shift Sol B Stuck On (P0757), 3rd Gear - Torque Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest engine torque at which the shift solenoid B stuck-on test (P0757) watches the transmission in 3rd gear. Stock 550 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: lower = the test stops running at a lower engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F64A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x64C" flags="0x0">
    <title>Shift Sol B Stuck On (P0757), 3rd Gear - Torque Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest engine torque at which the shift solenoid B stuck-on test (P0757) watches the transmission in 3rd gear. Stock 45 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at higher engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F62C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x64D" flags="0x0">
    <title>Shift Sol B Stuck On (P0757), 3rd Gear - Settle Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time since the last shift that must pass before the shift solenoid B stuck-on test (P0757) watches the transmission in 3rd gear. Stock 2.5 s. The other conditions of the same check (throttle, torque and a converter speed ratio minimum) must hold as well. Effect: raise = the ratio check in 3rd gear waits longer after a shift before it can run Evidence: ledger:E0766, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F612" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x64E" flags="0x0">
    <title>Shift Sol B Stuck On (P0757), 3rd Gear - Converter Ratio Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest converter speed ratio at which the shift solenoid B stuck-on test (P0757) watches the transmission in 3rd gear. Stock 0.82. The converter speed ratio here is the PCM&#x27;s own torque converter model estimate (turbine speed over engine speed, from engine speed and torque): 1.00 = coupled, low values = high slip. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test waits until the converter is closer to coupled Evidence: ledger:E0766, ledger:E0841, ledger:E0851</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F5FA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x64F" flags="0x0">
    <title>Shift Sol B Stuck On (P0757), 4th Gear - Throttle Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest driver throttle-area request at which the shift solenoid B stuck-on test (P0757) watches the transmission in 4th gear. Stock 25 %. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at a larger throttle request Evidence: ledger:E0766, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F66A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x650" flags="0x0">
    <title>Shift Sol B Stuck On (P0757), 4th Gear - Torque Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest engine torque at which the shift solenoid B stuck-on test (P0757) watches the transmission in 4th gear. Stock 550 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: lower = the test stops running at a lower engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F64C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x651" flags="0x0">
    <title>Shift Sol B Stuck On (P0757), 4th Gear - Torque Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest engine torque at which the shift solenoid B stuck-on test (P0757) watches the transmission in 4th gear. Stock 0 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at higher engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F62E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x652" flags="0x0">
    <title>Shift Sol B Stuck On (P0757), 4th Gear - Settle Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time since the last shift that must pass before the shift solenoid B stuck-on test (P0757) watches the transmission in 4th gear. Stock 1 s. The other conditions of the same check (throttle, torque and a converter speed ratio minimum) must hold as well. Effect: raise = the ratio check in 3rd/4th gear waits longer after a shift before it can run Evidence: ledger:E0766, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F614" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x653" flags="0x0">
    <title>Shift Sol B Stuck On (P0757), 4th Gear - Converter Ratio Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest converter speed ratio at which the shift solenoid B stuck-on test (P0757) watches the transmission in 4th gear. Stock 0.5. The converter speed ratio here is the PCM&#x27;s own torque converter model estimate (turbine speed over engine speed, from engine speed and torque): 1.00 = coupled, low values = high slip. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test waits until the converter is closer to coupled Evidence: ledger:E0766, ledger:E0841, ledger:E0851</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F5FC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x654" flags="0x0">
    <title>Shift Sol Tests, 1st Gear Decision - Throttle Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest driver throttle-area request at which the shift solenoid A performance test (P0751) and shift solenoid B performance test (P0756) can reach a pass or fail decision in 1st gear. Stock 25 %. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at a larger throttle request Evidence: ledger:E0766, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F670" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x655" flags="0x0">
    <title>Shift Sol Tests, 1st Gear Decision - Torque Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest engine torque at which the shift solenoid A performance test (P0751) and shift solenoid B performance test (P0756) can reach a pass or fail decision in 1st gear. Stock 550 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: lower = the test stops running at a lower engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F652" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x656" flags="0x0">
    <title>Shift Sol Tests, 1st Gear Decision - Torque Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest engine torque at which the shift solenoid A performance test (P0751) and shift solenoid B performance test (P0756) can reach a pass or fail decision in 1st gear. Stock 47 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at higher engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F634" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x657" flags="0x0">
    <title>Shift Sol Tests, 1st Gear Decision - Converter Ratio Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest converter speed ratio at which the shift solenoid A performance test (P0751) and shift solenoid B performance test (P0756) can reach a pass or fail decision in 1st gear. Stock 0.5. The converter speed ratio here is the PCM&#x27;s own torque converter model estimate (turbine speed over engine speed, from engine speed and torque): 1.00 = coupled, low values = high slip. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test waits until the converter is closer to coupled Evidence: ledger:E0766, ledger:E0841, ledger:E0851</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F5FE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x658" flags="0x0">
    <title>Shift Sol Tests, 2nd Gear Decision - Throttle Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest driver throttle-area request at which the shift solenoid A stuck-on test (P0752) and shift solenoid B performance test (P0756) can reach a pass or fail decision in 2nd gear. Stock 25 %. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at a larger throttle request Evidence: ledger:E0766, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F672" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x659" flags="0x0">
    <title>Shift Sol Tests, 2nd Gear Decision - Torque Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest engine torque at which the shift solenoid A stuck-on test (P0752) and shift solenoid B performance test (P0756) can reach a pass or fail decision in 2nd gear. Stock 550 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: lower = the test stops running at a lower engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F654" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x65A" flags="0x0">
    <title>Shift Sol Tests, 2nd Gear Decision - Torque Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest engine torque at which the shift solenoid A stuck-on test (P0752) and shift solenoid B performance test (P0756) can reach a pass or fail decision in 2nd gear. Stock 47 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at higher engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F636" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x65B" flags="0x0">
    <title>Shift Sol Tests, 2nd Gear Decision - Converter Ratio Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest converter speed ratio at which the shift solenoid A stuck-on test (P0752) and shift solenoid B performance test (P0756) can reach a pass or fail decision in 2nd gear. Stock 0.5. The converter speed ratio here is the PCM&#x27;s own torque converter model estimate (turbine speed over engine speed, from engine speed and torque): 1.00 = coupled, low values = high slip. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test waits until the converter is closer to coupled Evidence: ledger:E0766, ledger:E0841, ledger:E0851</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F600" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x65C" flags="0x0">
    <title>Shift Sol Tests, 3rd Gear Decision - Throttle Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest driver throttle-area request at which the shift solenoid A stuck-on test (P0752) and shift solenoid B stuck-on test (P0757) can reach a pass or fail decision in 3rd gear. Stock 25 %. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at a larger throttle request Evidence: ledger:E0766, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F674" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x65D" flags="0x0">
    <title>Shift Sol Tests, 3rd Gear Decision - Torque Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest engine torque at which the shift solenoid A stuck-on test (P0752) and shift solenoid B stuck-on test (P0757) can reach a pass or fail decision in 3rd gear. Stock 550 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: lower = the test stops running at a lower engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F656" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x65E" flags="0x0">
    <title>Shift Sol Tests, 3rd Gear Decision - Torque Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest engine torque at which the shift solenoid A stuck-on test (P0752) and shift solenoid B stuck-on test (P0757) can reach a pass or fail decision in 3rd gear. Stock 47 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at higher engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F638" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x65F" flags="0x0">
    <title>Shift Sol Tests, 3rd Gear Decision - Converter Ratio Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest converter speed ratio at which the shift solenoid A stuck-on test (P0752) and shift solenoid B stuck-on test (P0757) can reach a pass or fail decision in 3rd gear. Stock 0.5. The converter speed ratio here is the PCM&#x27;s own torque converter model estimate (turbine speed over engine speed, from engine speed and torque): 1.00 = coupled, low values = high slip. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test waits until the converter is closer to coupled Evidence: ledger:E0766, ledger:E0841, ledger:E0851</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F602" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x660" flags="0x0">
    <title>Shift Sol Tests, 4th Gear Decision - Throttle Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest driver throttle-area request at which the shift solenoid A performance test (P0751) and shift solenoid B stuck-on test (P0757) can reach a pass or fail decision in 4th gear. Stock 25 %. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at a larger throttle request Evidence: ledger:E0766, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F676" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x661" flags="0x0">
    <title>Shift Sol Tests, 4th Gear Decision - Torque Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest engine torque at which the shift solenoid A performance test (P0751) and shift solenoid B stuck-on test (P0757) can reach a pass or fail decision in 4th gear. Stock 550 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: lower = the test stops running at a lower engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F658" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x662" flags="0x0">
    <title>Shift Sol Tests, 4th Gear Decision - Torque Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest engine torque at which the shift solenoid A performance test (P0751) and shift solenoid B stuck-on test (P0757) can reach a pass or fail decision in 4th gear. Stock 47 Nm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at higher engine torque Evidence: ledger:E0766, ledger:E0806, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F63A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x663" flags="0x0">
    <title>Shift Sol Tests, 4th Gear Decision - Converter Ratio Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest converter speed ratio at which the shift solenoid A performance test (P0751) and shift solenoid B stuck-on test (P0757) can reach a pass or fail decision in 4th gear. Stock 0.5. The converter speed ratio here is the PCM&#x27;s own torque converter model estimate (turbine speed over engine speed, from engine speed and torque): 1.00 = coupled, low values = high slip. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test waits until the converter is closer to coupled Evidence: ledger:E0766, ledger:E0807, ledger:E0841, ledger:E0851</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F604" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x664" flags="0x0">
    <title>P1818 Test - Run Condition, Speed Ratio Minimum (Reverse)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P1818 test (neutral safety switch short to ground) only runs while the transmission input-to-output speed ratio is at or above this: the reverse gear window (reverse ratio 2.29). Stock 2.23. Effect: raise = the test needs a higher ratio to run Evidence: ledger:E0340, ledger:E0767, ledger:E0813, ledger:E0910</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F916" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x665" flags="0x0">
    <title>P1818 Test - Run Condition, Speed Ratio Maximum (Reverse)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P1818 test (neutral safety switch short to ground) only runs while the transmission input-to-output speed ratio is at or below this: the reverse gear window (reverse ratio 2.29). Stock 2.36. Effect: lower = the test needs a lower ratio to run Evidence: ledger:E0340, ledger:E0767, ledger:E0813, ledger:E0910</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F914" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x666" flags="0x0">
    <title>Neutral Switch Tests - 1st Gear Ratio Window Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The neutral safety switch tests (P1817 open circuit, P1818 short to ground) count the transmission as in 1st gear while the transmission input-to-output speed ratio is inside this window. Stock 3.00 (1st gear ratio 3.059). Effect: widens or narrows what counts as 1st gear for the switch tests Evidence: ledger:E0767, ledger:E0813, ledger:E0910</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F91A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x667" flags="0x0">
    <title>Neutral Switch Tests - 1st Gear Ratio Window High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The neutral safety switch tests (P1817 open circuit, P1818 short to ground) count the transmission as in 1st gear while the transmission input-to-output speed ratio is inside this window. Stock 3.10 (1st gear ratio 3.059). Effect: widens or narrows what counts as 1st gear for the switch tests Evidence: ledger:E0767, ledger:E0813, ledger:E0910</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F918" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x668" flags="0x0">
    <title>Neutral Switch Tests - 2nd Gear Ratio Window Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The neutral safety switch tests (P1817 open circuit, P1818 short to ground) count the transmission as in 2nd gear while the transmission input-to-output speed ratio is inside this window. Stock 1.58 (2nd gear ratio 1.625). Effect: widens or narrows what counts as 2nd gear for the switch tests Evidence: ledger:E0767, ledger:E0813, ledger:E0910</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F91E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x669" flags="0x0">
    <title>Neutral Switch Tests - 2nd Gear Ratio Window High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The neutral safety switch tests (P1817 open circuit, P1818 short to ground) count the transmission as in 2nd gear while the transmission input-to-output speed ratio is inside this window. Stock 1.68 (2nd gear ratio 1.625). Effect: widens or narrows what counts as 2nd gear for the switch tests Evidence: ledger:E0767, ledger:E0813, ledger:E0910</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F91C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x66A" flags="0x0">
    <title>Neutral Switch Tests - 3rd Gear Ratio Window Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The neutral safety switch tests (P1817 open circuit, P1818 short to ground) count the transmission as in 3rd gear while the transmission input-to-output speed ratio is inside this window. Stock 0.90 (3rd gear ratio 1.000). Effect: widens or narrows what counts as 3rd gear for the switch tests Evidence: ledger:E0767, ledger:E0813, ledger:E0910</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F922" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x66B" flags="0x0">
    <title>Neutral Switch Tests - 3rd Gear Ratio Window High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The neutral safety switch tests (P1817 open circuit, P1818 short to ground) count the transmission as in 3rd gear while the transmission input-to-output speed ratio is inside this window. Stock 1.10 (3rd gear ratio 1.000). Effect: widens or narrows what counts as 3rd gear for the switch tests Evidence: ledger:E0767, ledger:E0813, ledger:E0910</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F920" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x66C" flags="0x0">
    <title>Neutral Switch Tests - 4th Gear Ratio Window Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The neutral safety switch tests (P1817 open circuit, P1818 short to ground) count the transmission as in 4th gear while the transmission input-to-output speed ratio is inside this window. Stock 0.60 (4th gear ratio 0.696). Effect: widens or narrows what counts as 4th gear for the switch tests Evidence: ledger:E0767, ledger:E0813, ledger:E0910</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F926" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x66D" flags="0x0">
    <title>Neutral Switch Tests - 4th Gear Ratio Window High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The neutral safety switch tests (P1817 open circuit, P1818 short to ground) count the transmission as in 4th gear while the transmission input-to-output speed ratio is inside this window. Stock 0.79 (4th gear ratio 0.696). Effect: widens or narrows what counts as 4th gear for the switch tests Evidence: ledger:E0767, ledger:E0813, ledger:E0910</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F924" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x66E" flags="0x0">
    <title>Fourth Gear Diagnostic, Torque Arm Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Minimum engine torque required for this fourth-gear transmission diagnostic monitor to arm. Stock 65.0 Nm. Effect: raise = the monitor needs more engine torque before it will arm Evidence: ledger:E0767, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F940" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x66F" flags="0x0">
    <title>Fourth Gear Diagnostic, Torque High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper bound of the engine torque window required for this fourth-gear transmission diagnostic monitor to arm. Stock 550 Nm. Effect: lower = the diagnostic stops at a lower engine torque Evidence: ledger:E0767, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F942" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x670" flags="0x0">
    <title>Fourth Gear Diagnostic, Throttle Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the transmission throttle window required for this fourth-gear transmission diagnostic monitor to arm. Stock 10 %. Effect: raise = the diagnostic needs a higher transmission throttle Evidence: ledger:E0767, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F93E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x671" flags="0x0">
    <title>TCC Diagnostic State A, Throttle Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the transmission throttle window required for this torque converter clutch diagnostic state to continue. Stock 15 %. Effect: raise = the diagnostic needs a higher transmission throttle Evidence: ledger:E0777, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F71C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x672" flags="0x0">
    <title>TCC Diagnostic State A, Throttle High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper bound of the transmission throttle window required for this torque converter clutch diagnostic state to continue. Stock 90 %. Effect: lower = the diagnostic stops at a lower transmission throttle Evidence: ledger:E0777, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F71A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x673" flags="0x0">
    <title>TCC Diagnostic State A, Fluid Temp Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the transmission fluid temperature window required for this torque converter clutch diagnostic state to continue. Stock 20 C. Effect: raise = the diagnostic needs a higher transmission fluid temperature Evidence: ledger:E0777, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F738" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x674" flags="0x0">
    <title>TCC Diagnostic State A, Fluid Temp High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper bound of the transmission fluid temperature window required for this torque converter clutch diagnostic state to continue. Stock 130 C. Effect: lower = the diagnostic stops at a lower transmission fluid temperature Evidence: ledger:E0777, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F736" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x675" flags="0x0">
    <title>TCC Diagnostic State A, Torque Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the engine torque window required for this torque converter clutch diagnostic state to continue. Stock 70.0 Nm. Effect: raise = the diagnostic requires more engine torque before it continues Evidence: ledger:E0777, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F6FE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x676" flags="0x0">
    <title>TCC Diagnostic State A, Output Speed Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the transmission output speed window required for this torque converter clutch diagnostic state to continue. Stock 25 km/h. Effect: raise = the diagnostic needs a higher transmission output speed Evidence: ledger:E0777, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F73C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x677" flags="0x0">
    <title>TCC Diagnostic State A, Output Speed High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper bound of the transmission output speed window required for this torque converter clutch diagnostic state to continue. Stock 140 km/h. Effect: lower = the diagnostic stops at a lower transmission output speed Evidence: ledger:E0777, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F73A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x678" flags="0x0">
    <title>TCC Diagnostic State A, RPM High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper bound of the engine speed window required for this torque converter clutch diagnostic state to continue. Stock 4500 rpm. Effect: lower = the diagnostic stops at a lower engine speed Evidence: ledger:E0777, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F710" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x679" flags="0x0">
    <title>P0742 Test - Run Condition, Speed Ratio Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0742 test (torque converter clutch stuck on) only runs while the transmission input-to-output speed ratio is at or above this. Stock 0.65 (3rd gear is 1.000, 4th is 0.696). Effect: raise = the test needs a higher ratio to run Evidence: ledger:E0777, ledger:E0910, ledger:E0916</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F730" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x67A" flags="0x0">
    <title>P0742 Test - Run Condition, Speed Ratio Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0742 test (torque converter clutch stuck on) only runs while the transmission input-to-output speed ratio is at or below this. Stock 1.35 (3rd gear is 1.000, 4th is 0.696). Effect: lower = the test needs a lower ratio to run Evidence: ledger:E0777, ledger:E0910, ledger:E0916</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F72E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x67B" flags="0x0">
    <title>P0742 Fail - TCC Slip Window High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. High end of the P0742 fail slip window: while the P0742 test runs, TCC slip from the window low bound up to this (inclusive) counts toward a fail. Stock 135 rpm. Effect: raise = more slip range counts toward a P0742 fail Evidence: ledger:E0777, ledger:E0912</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F708" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>-4096.000000</min>
    <max>4095.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x67C" flags="0x0">
    <title>P0742 Pass - TCC Slip Window Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Low end of the P0742 pass slip window: while the P0742 test runs, TCC slip from the window low bound up to the high bound (inclusive) counts toward a pass. Stock 100 rpm. Effect: widens or narrows the slip that counts toward a P0742 pass Evidence: ledger:E0777, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F706" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>-4096.000000</min>
    <max>4095.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x67D" flags="0x0">
    <title>P0742 Pass - TCC Slip Window High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. High end of the P0742 pass slip window: while the P0742 test runs, TCC slip from the window low bound up to the high bound (inclusive) counts toward a pass. Stock 1500 rpm. Effect: widens or narrows the slip that counts toward a P0742 pass Evidence: ledger:E0777, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F704" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>-4096.000000</min>
    <max>4095.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x67E" flags="0x0">
    <title>TCC Diagnostic State B, Throttle Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the transmission throttle window required for this torque converter clutch diagnostic state to continue. Stock 20 %. Effect: raise = the diagnostic needs a higher transmission throttle Evidence: ledger:E0777, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F718" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x67F" flags="0x0">
    <title>TCC Diagnostic State B, Throttle High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper bound of the transmission throttle window required for this torque converter clutch diagnostic state to continue. Stock 100 %. Effect: lower = the diagnostic stops at a lower transmission throttle Evidence: ledger:E0777, ledger:E0973</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F716" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x680" flags="0x0">
    <title>TCC Diagnostic State B, Fluid Temp Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the transmission fluid temperature window required for this torque converter clutch diagnostic state to continue. Stock 20 C. Effect: raise = the diagnostic needs a higher transmission fluid temperature Evidence: ledger:E0777, ledger:E0973</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F734" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x681" flags="0x0">
    <title>TCC Diagnostic State B, Fluid Temp High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper bound of the transmission fluid temperature window required for this torque converter clutch diagnostic state to continue. Stock 150 C. Effect: lower = the diagnostic stops at a lower transmission fluid temperature Evidence: ledger:E0777, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F732" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x682" flags="0x0">
    <title>TCC Diagnostic State B, Torque Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the engine torque window required for this torque converter clutch diagnostic state to continue. Stock 55.0 Nm. Effect: raise = the diagnostic requires more engine torque before it continues Evidence: ledger:E0777, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F702" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x683" flags="0x0">
    <title>TCC Diagnostic State B, Torque High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper bound of the engine torque window required for this torque converter clutch diagnostic state to continue. Stock 525 Nm. Effect: lower = the diagnostic stops at a lower engine torque Evidence: ledger:E0777, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F700" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x684" flags="0x0">
    <title>P0741 Test - Arm Ratio Window 1 Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0741 test (torque converter clutch stuck off) is armed only while the transmission input-to-output speed ratio is inside one of four windows. Window 1, stock 1.57 to 1.68, covers 2nd gear (ratio 1.625). Effect: widens or narrows the gear range where the P0741 test can arm Evidence: ledger:E0777, ledger:E0910, ledger:E0916</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F720" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x685" flags="0x0">
    <title>P0741 Test - Arm Ratio Window 1 High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0741 test (torque converter clutch stuck off) is armed only while the transmission input-to-output speed ratio is inside one of four windows. Window 1, stock 1.57 to 1.68, covers 2nd gear (ratio 1.625). Effect: widens or narrows the gear range where the P0741 test can arm Evidence: ledger:E0777, ledger:E0910, ledger:E0916</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F71E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x686" flags="0x0">
    <title>P0741 Test - Arm Ratio Window 2 Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0741 test (torque converter clutch stuck off) is armed only while the transmission input-to-output speed ratio is inside one of four windows. Window 2, stock 0.90 to 1.10, covers 3rd gear (ratio 1.000). Effect: widens or narrows the gear range where the P0741 test can arm Evidence: ledger:E0777, ledger:E0910, ledger:E0916</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F724" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x687" flags="0x0">
    <title>P0741 Test - Arm Ratio Window 2 High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0741 test (torque converter clutch stuck off) is armed only while the transmission input-to-output speed ratio is inside one of four windows. Window 2, stock 0.90 to 1.10, covers 3rd gear (ratio 1.000). Effect: widens or narrows the gear range where the P0741 test can arm Evidence: ledger:E0777, ledger:E0910, ledger:E0916</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F722" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x688" flags="0x0">
    <title>P0741 Test - Arm Ratio Window 3 Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0741 test (torque converter clutch stuck off) is armed only while the transmission input-to-output speed ratio is inside one of four windows. Window 3, stock 0.90 to 1.09, covers 3rd gear (ratio 1.000). Effect: widens or narrows the gear range where the P0741 test can arm Evidence: ledger:E0777, ledger:E0910, ledger:E0916</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F728" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x689" flags="0x0">
    <title>P0741 Test - Arm Ratio Window 3 High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0741 test (torque converter clutch stuck off) is armed only while the transmission input-to-output speed ratio is inside one of four windows. Window 3, stock 0.90 to 1.09, covers 3rd gear (ratio 1.000). Effect: widens or narrows the gear range where the P0741 test can arm Evidence: ledger:E0777, ledger:E0910, ledger:E0916</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F726" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x68A" flags="0x0">
    <title>TCC Apply Diagnostic, Torque Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the engine torque window required for the torque converter clutch apply diagnostic to continue. Stock -2.0 Nm. Effect: raise = the diagnostic requires more engine torque before it continues Evidence: ledger:E0777, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F6D8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x68B" flags="0x30">
    <title>4-Lo Full-Throttle Shift - Upshift Speed by Gear</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Transmission-side speed at which the transmission shifts up out of each gear (1st, 2nd, 3rd; the 4th-gear value is never used). Stock 20 / 70 / 170 km/h, about 5 / 17 / 42 km/h of road speed. The upshift also needs engine speed at the Upshift Minimum Engine Speed. Used in 4-Lo while pedal demand is above the 4-Lo high pedal set point (stock 56 %); in that state this rule decides the gear ahead of the 4-Lo shift schedule, and the range selector still caps the highest gear. In 4-Lo the transmission&#x27;s speed reading is 4.03 times road speed (it is worked out from transmission output speed with the high-range ratio), so a value of 40 km/h here acts at about 10 km/h on the road. Effect: raise a gear&#x27;s value = that upshift waits for a higher speed Evidence: ledger:E0778, ledger:E0812, ledger:E0847</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>4</indexcount>
      <units>gear</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1" />
      <LABEL index="1" value="2" />
      <LABEL index="2" value="3" />
      <LABEL index="3" value="4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38FDE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="4" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>km/h</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>511.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x68C" flags="0x30">
    <title>4-Lo Full-Throttle Shift - Downshift Speed by Target Gear</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Transmission-side speed below which the transmission shifts down into each gear (1st, 2nd, 3rd). Stock 17.5 / 65 / 160 km/h, about 4 / 16 / 40 km/h of road speed. Used in 4-Lo while pedal demand is above the 4-Lo high pedal set point (stock 56 %); in that state this rule decides the gear ahead of the 4-Lo shift schedule, and the range selector still caps the highest gear. In 4-Lo the transmission&#x27;s speed reading is 4.03 times road speed (it is worked out from transmission output speed with the high-range ratio), so a value of 40 km/h here acts at about 10 km/h on the road. Effect: raise a gear&#x27;s value = the downshift into that gear happens at a higher speed Evidence: ledger:E0778, ledger:E0812, ledger:E0847</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>gear</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1" />
      <LABEL index="1" value="2" />
      <LABEL index="2" value="3" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38FE6" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>km/h</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>511.992188</max>
      <MATH equation="X/128"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x68D" flags="0x30">
    <title>4-Lo Full-Throttle Shift - Upshift Minimum Engine Speed by Gear</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine speed that must also be reached before the transmission shifts up out of each gear. Stock 4000 / 5800 / 5800 rpm out of 1st / 2nd / 3rd; the 4th-gear value (8192 rpm) is never used. Used in 4-Lo while pedal demand is above the 4-Lo high pedal set point (stock 56 %); in that state this rule decides the gear ahead of the 4-Lo shift schedule, and the range selector still caps the highest gear. Effect: raise a gear&#x27;s value = that upshift waits for higher engine speed Evidence: ledger:E0778, ledger:E0812, ledger:E0847</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>4</indexcount>
      <units>gear</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1" />
      <LABEL index="1" value="2" />
      <LABEL index="2" value="3" />
      <LABEL index="3" value="4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38FEC" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="4" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>rpm</units>
      <decimalpl>0</decimalpl>
      <min>0.000000</min>
      <max>8191.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x68E" flags="0x30">
    <title>3rd Gear Range Shift Speed Correction - Upshift, Normal</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Speed added to the scheduled upshift speed, by throttle, while the shifter is in the range limited to 3rd gear and the PCM is in its normal shift mode. A negative value lowers the shift speed. Stock: the 3-4 row adds 20 to 73 mph, on top of a 3rd-max schedule that already never upshifts to 4th; the other rows are 0. Effect: raise = that upshift happens at a higher road speed in the 3rd-gear range Evidence: ledger:E0778, ledger:E1027</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2 upshift" />
      <LABEL index="1" value="2-3 upshift" />
      <LABEL index="2" value="3-4 upshift" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x385C0" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>-159.071025</min>
      <max>159.066171</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x68F" flags="0x30">
    <title>3rd Gear Range Shift Speed Correction - Upshift, 4-Lo</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Speed added to the scheduled upshift speed, by throttle, while the shifter is in the range limited to 3rd gear and the PCM is in its 4-Lo shift mode. A negative value lowers the shift speed. Stock all 0. Effect: raise = that upshift happens at a higher road speed in the 3rd-gear range Evidence: ledger:E0778, ledger:E1027</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2 upshift" />
      <LABEL index="1" value="2-3 upshift" />
      <LABEL index="2" value="3-4 upshift" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38630" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>-159.071025</min>
      <max>159.066171</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x690" flags="0x30">
    <title>3rd Gear Range Shift Speed Correction - Upshift, Cruise</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Speed added to the scheduled upshift speed, by throttle, while the shifter is in the range limited to 3rd gear and the PCM is in its cruise shift mode. A negative value lowers the shift speed. Stock all 0. Effect: raise = that upshift happens at a higher road speed in the 3rd-gear range Evidence: ledger:E0778, ledger:E1027</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="1-2 upshift" />
      <LABEL index="1" value="2-3 upshift" />
      <LABEL index="2" value="3-4 upshift" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x386A0" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>-159.071025</min>
      <max>159.066171</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x691" flags="0x30">
    <title>3rd Gear Range Shift Speed Correction - Downshift, Normal</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Speed added to the scheduled downshift speed, by throttle, while the shifter is in the range limited to 3rd gear and the PCM is in its normal shift mode. A negative value lowers the shift speed. Stock all 0. Effect: raise = that downshift happens at a higher road speed in the 3rd-gear range Evidence: ledger:E0778, ledger:E1027</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2-1 downshift" />
      <LABEL index="1" value="3-2 downshift" />
      <LABEL index="2" value="4-3 downshift" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38710" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>-159.071025</min>
      <max>159.066171</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x692" flags="0x30">
    <title>3rd Gear Range Shift Speed Correction - Downshift, Cruise</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Speed added to the scheduled downshift speed, by throttle, while the shifter is in the range limited to 3rd gear and the PCM is in its cruise shift mode. A negative value lowers the shift speed. Stock all 0. Effect: raise = that downshift happens at a higher road speed in the 3rd-gear range Evidence: ledger:E0778, ledger:E1027</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2-1 downshift" />
      <LABEL index="1" value="3-2 downshift" />
      <LABEL index="2" value="4-3 downshift" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38780" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>-159.071025</min>
      <max>159.066171</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x693" flags="0x30">
    <title>3rd Gear Range Shift Speed Correction - Downshift, 4-Lo</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Packed table: the MARKER column is a structure byte (0x11 row marker), not data - never edit it. Speed added to the scheduled downshift speed, by throttle, while the shifter is in the range limited to 3rd gear and the PCM is in its 4-Lo shift mode. A negative value lowers the shift speed. Stock all 0. Effect: raise = that downshift happens at a higher road speed in the 3rd-gear range Evidence: ledger:E0778, ledger:E1027</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>18</indexcount>
      <units>MARKER + data (header bytes: DO NOT EDIT)</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="MARKER" />
      <LABEL index="1" value="0" />
      <LABEL index="2" value="6" />
      <LABEL index="3" value="12" />
      <LABEL index="4" value="19" />
      <LABEL index="5" value="25" />
      <LABEL index="6" value="31" />
      <LABEL index="7" value="38" />
      <LABEL index="8" value="44" />
      <LABEL index="9" value="50" />
      <LABEL index="10" value="56" />
      <LABEL index="11" value="62" />
      <LABEL index="12" value="69" />
      <LABEL index="13" value="75" />
      <LABEL index="14" value="81" />
      <LABEL index="15" value="88" />
      <LABEL index="16" value="94" />
      <LABEL index="17" value="100" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>3</indexcount>
      <units>shift</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="2-1 downshift" />
      <LABEL index="1" value="3-2 downshift" />
      <LABEL index="2" value="4-3 downshift" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x387F0" mmedelementsizebits="16" mmedrowcount="3" mmedcolcount="18" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>mph</units>
      <decimalpl>3</decimalpl>
      <min>-159.071025</min>
      <max>159.066171</max>
      <MATH equation="X/205.996032"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x694" flags="0x0">
    <title>Turbine Speed Diagnostic, Arm Torque Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the engine torque window required, together with driver throttle and transmission output speed, for this turbine speed diagnostic to arm. Stock 0.0 Nm. Effect: raise = the diagnostic needs more engine torque, along with the other conditions, before it arms Evidence: ledger:E0783, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F872" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x695" flags="0x0">
    <title>Turbine Speed Diagnostic, Rate Check Torque Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the engine torque window checked a second time, gating this turbine speed diagnostic&#x27;s fail-sample logic. Stock 0.0 Nm. Effect: raise = the diagnostic&#x27;s fail-sample check needs more engine torque before it runs Evidence: ledger:E0783, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F888" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x696" flags="0x0">
    <title>Trans Slip (P0894) Stages - Throttle Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 10 %. P0894 (transmission component slipping) stages: after the first count, three stages run in turn, each needing converter slip inside its own window for its own time with the throttle request inside the stage throttle window; when stage 3 completes the PCM reports P0894. Effect: raise = the stages need a larger throttle request Evidence: ledger:E0786, ledger:E0849</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F786" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x697" flags="0x0">
    <title>Trans Slip (P0894) Stages - Throttle Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 100 %. P0894 (transmission component slipping) stages: after the first count, three stages run in turn, each needing converter slip inside its own window for its own time with the throttle request inside the stage throttle window; when stage 3 completes the PCM reports P0894. Effect: lower = the stages stop at a smaller throttle request Evidence: ledger:E0786, ledger:E0849</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F784" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x698" flags="0x0">
    <title>Trans Slip (P0894) Stage 1 - Slip Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 120 rpm. P0894 (transmission component slipping) stages: after the first count, three stages run in turn, each needing converter slip inside its own window for its own time with the throttle request inside the stage throttle window; when stage 3 completes the PCM reports P0894. Effect: raise = stage 1 needs larger slip Evidence: ledger:E0786, ledger:E0849</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F772" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x699" flags="0x0">
    <title>Trans Slip (P0894) Stage 1 - Slip Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 550 rpm. P0894 (transmission component slipping) stages: after the first count, three stages run in turn, each needing converter slip inside its own window for its own time with the throttle request inside the stage throttle window; when stage 3 completes the PCM reports P0894. Effect: lower = large slip no longer advances stage 1 Evidence: ledger:E0786, ledger:E0849</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F76C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x69A" flags="0x0">
    <title>Trans Slip (P0894) Stage 1 - Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 10 s. P0894 (transmission component slipping) stages: after the first count, three stages run in turn, each needing converter slip inside its own window for its own time with the throttle request inside the stage throttle window; when stage 3 completes the PCM reports P0894. Effect: raise = stage 1 takes longer Evidence: ledger:E0786, ledger:E0849</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F79A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x69B" flags="0x0">
    <title>Trans Slip (P0894) Stage 2 - Slip Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 120 rpm. P0894 (transmission component slipping) stages: after the first count, three stages run in turn, each needing converter slip inside its own window for its own time with the throttle request inside the stage throttle window; when stage 3 completes the PCM reports P0894. Effect: raise = stage 2 needs larger slip Evidence: ledger:E0786, ledger:E0849</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F774" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x69C" flags="0x0">
    <title>Trans Slip (P0894) Stage 2 - Slip Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 550 rpm. P0894 (transmission component slipping) stages: after the first count, three stages run in turn, each needing converter slip inside its own window for its own time with the throttle request inside the stage throttle window; when stage 3 completes the PCM reports P0894. Effect: lower = large slip no longer advances stage 2 Evidence: ledger:E0786, ledger:E0849</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F76E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x69D" flags="0x0">
    <title>Trans Slip (P0894) Stage 2 - Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 12.5 s. P0894 (transmission component slipping) stages: after the first count, three stages run in turn, each needing converter slip inside its own window for its own time with the throttle request inside the stage throttle window; when stage 3 completes the PCM reports P0894. Effect: raise = stage 2 takes longer Evidence: ledger:E0786, ledger:E0849</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F79C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x69E" flags="0x0">
    <title>Trans Slip (P0894) Stage 3 - Slip Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 120 rpm. P0894 (transmission component slipping) stages: after the first count, three stages run in turn, each needing converter slip inside its own window for its own time with the throttle request inside the stage throttle window; when stage 3 completes the PCM reports P0894. Effect: raise = stage 3 needs larger slip Evidence: ledger:E0786, ledger:E0849</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F776" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x69F" flags="0x0">
    <title>Trans Slip (P0894) Stage 3 - Slip Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 550 rpm. P0894 (transmission component slipping) stages: after the first count, three stages run in turn, each needing converter slip inside its own window for its own time with the throttle request inside the stage throttle window; when stage 3 completes the PCM reports P0894. Effect: lower = large slip no longer advances stage 3 Evidence: ledger:E0786, ledger:E0849</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F770" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6A0" flags="0x0">
    <title>Trans Slip (P0894) Stage 3 - Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 15 s. P0894 (transmission component slipping) stages: after the first count, three stages run in turn, each needing converter slip inside its own window for its own time with the throttle request inside the stage throttle window; when stage 3 completes the PCM reports P0894. Effect: raise = stage 3 takes longer Evidence: ledger:E0786, ledger:E0849</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F79E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6A1" flags="0x0">
    <title>Trans Slip (P0894) Arm - Fluid Temp Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 20.1 C. The P0894 (transmission component slipping) test only runs while this and its other conditions hold: converter clutch applied, 3rd or 4th gear with a plausible engine to output speed ratio, converter clutch command and pressure held high, no related faults, and fluid temperature, engine torque, vehicle speed and engine speed inside their windows. Effect: raise = the test needs warmer fluid Evidence: ledger:E0786, ledger:E0807, ledger:E0849, ledger:E0853</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F794" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6A2" flags="0x0">
    <title>Trans Slip (P0894) Arm - Fluid Temp Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 130.5 C. The P0894 (transmission component slipping) test only runs while this and its other conditions hold: converter clutch applied, 3rd or 4th gear with a plausible engine to output speed ratio, converter clutch command and pressure held high, no related faults, and fluid temperature, engine torque, vehicle speed and engine speed inside their windows. Effect: lower = the test stops at a lower fluid temperature Evidence: ledger:E0786, ledger:E0849, ledger:E0853</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F792" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6A3" flags="0x0">
    <title>Transmission Slip Monitor A, Torque Arm Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Minimum engine torque required before this transmission slip diagnostic monitor arms. Stock 65.0 Nm. Effect: raise = the monitor needs more engine torque before it will arm Evidence: ledger:E0786, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F766" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6A4" flags="0x0">
    <title>Trans Slip (P0894) Arm - Engine Torque Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 550 Nm. The P0894 (transmission component slipping) test only runs while this and its other conditions hold: converter clutch applied, 3rd or 4th gear with a plausible engine to output speed ratio, converter clutch command and pressure held high, no related faults, and fluid temperature, engine torque, vehicle speed and engine speed inside their windows. Effect: lower = the test stops at lower engine torque Evidence: ledger:E0786, ledger:E0849, ledger:E0853</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F764" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6A5" flags="0x0">
    <title>Trans Slip (P0894) Arm - Speed Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 55 km/h (transmission-side speed). The P0894 (transmission component slipping) test only runs while this and its other conditions hold: converter clutch applied, 3rd or 4th gear with a plausible engine to output speed ratio, converter clutch command and pressure held high, no related faults, and fluid temperature, engine torque, vehicle speed and engine speed inside their windows. Effect: raise = the test needs a higher speed Evidence: ledger:E0786, ledger:E0807, ledger:E0849, ledger:E0853</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F798" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6A6" flags="0x0">
    <title>Trans Slip (P0894) Arm - Speed Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 140 km/h (transmission-side speed). The P0894 (transmission component slipping) test only runs while this and its other conditions hold: converter clutch applied, 3rd or 4th gear with a plausible engine to output speed ratio, converter clutch command and pressure held high, no related faults, and fluid temperature, engine torque, vehicle speed and engine speed inside their windows. Effect: lower = the test stops at a lower speed Evidence: ledger:E0786, ledger:E0849, ledger:E0853</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F796" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6A7" flags="0x0">
    <title>Trans Slip (P0894) Arm - Engine Speed Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 1000 rpm. The P0894 (transmission component slipping) test only runs while this and its other conditions hold: converter clutch applied, 3rd or 4th gear with a plausible engine to output speed ratio, converter clutch command and pressure held high, no related faults, and fluid temperature, engine torque, vehicle speed and engine speed inside their windows. Effect: raise = the test needs a higher engine speed Evidence: ledger:E0786, ledger:E0807, ledger:E0849, ledger:E0853</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F77E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6A8" flags="0x0">
    <title>Trans Slip (P0894) Arm - Engine Speed Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 4500 rpm. The P0894 (transmission component slipping) test only runs while this and its other conditions hold: converter clutch applied, 3rd or 4th gear with a plausible engine to output speed ratio, converter clutch command and pressure held high, no related faults, and fluid temperature, engine torque, vehicle speed and engine speed inside their windows. Effect: lower = the test stops at a lower engine speed Evidence: ledger:E0786, ledger:E0849, ledger:E0853</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F77C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6A9" flags="0x0">
    <title>P0711 Cold Start Check - Drive Timer Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The check&#x27;s drive timer only counts while trans-side speed is at or above this. Stock 20 km/h. P0711 cold start check: when the transmission fluid temperature read -38 to 21 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 cold start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F82A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6AA" flags="0x0">
    <title>P0711 Cold Start Check - Drive Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Drive time, counted at or above the speed minimum, the check needs before it can run. Stock 700 s. P0711 cold start check: when the transmission fluid temperature read -38 to 21 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 cold start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F836" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6AB" flags="0x0">
    <title>P0711 Cold Start Check - Slip Timer TCC Slip Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The check&#x27;s slip timer only counts while TCC slip is at or above this. Stock 50 rpm. P0711 cold start check: when the transmission fluid temperature read -38 to 21 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 cold start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F82E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>-4096.000000</min>
    <max>4095.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6AC" flags="0x0">
    <title>P0711 Cold Start Check - Slip Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time with TCC slip at or above the slip minimum the check needs before it can run. Stock 500 s. P0711 cold start check: when the transmission fluid temperature read -38 to 21 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 cold start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F832" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6AD" flags="0x0">
    <title>P0711 Cold Start Check - Start Temperature Window Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest transmission fluid temperature at engine start for which the check runs. Stock -38 C. P0711 cold start check: when the transmission fluid temperature read -38 to 21 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 cold start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F818" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6AE" flags="0x0">
    <title>P0711 Cold Start Check - Start Temperature Window High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest transmission fluid temperature at engine start for which the check runs. Stock 21 C. P0711 cold start check: when the transmission fluid temperature read -38 to 21 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 cold start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F816" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6AF" flags="0x0">
    <title>P0711 Cold Start Check - Coolant Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The check only runs with coolant at or above this. Stock 70 C. P0711 cold start check: when the transmission fluid temperature read -38 to 21 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 cold start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F814" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6B0" flags="0x0">
    <title>P0711 Cold Start Check - Coolant Rise Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The coolant must have risen at least this much since engine start. Stock 50 C. P0711 cold start check: when the transmission fluid temperature read -38 to 21 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 cold start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F812" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6B1" flags="0x0">
    <title>P0711 Cold Start Check - Stuck Reading Tolerance</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0711 counts toward a fail while the transmission fluid reading is still within this of its start value. Stock 2 C. P0711 cold start check: when the transmission fluid temperature read -38 to 21 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 cold start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F81A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6B2" flags="0x0">
    <title>P0711 Cold Start Check - Fail Confirm Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0711 sets once the stuck reading has lasted this long. Stock 80 s. P0711 cold start check: when the transmission fluid temperature read -38 to 21 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 cold start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F834" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6B3" flags="0x0">
    <title>P0711 Hot Start Check - Drive Timer Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The check&#x27;s drive timer only counts while trans-side speed is at or above this. Stock 20 km/h. P0711 hot start check: when the transmission fluid temperature read 131 to 149 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 hot start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F82C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6B4" flags="0x0">
    <title>P0711 Hot Start Check - Drive Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Drive time, counted at or above the speed minimum, the check needs before it can run. Stock 700 s. P0711 hot start check: when the transmission fluid temperature read 131 to 149 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 hot start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F83C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6B5" flags="0x0">
    <title>P0711 Hot Start Check - Slip Timer TCC Slip Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The check&#x27;s slip timer only counts while TCC slip is at or above this. Stock 50 rpm. P0711 hot start check: when the transmission fluid temperature read 131 to 149 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 hot start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F830" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>-4096.000000</min>
    <max>4095.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6B6" flags="0x0">
    <title>P0711 Hot Start Check - Slip Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time with TCC slip at or above the slip minimum the check needs before it can run. Stock 500 s. P0711 hot start check: when the transmission fluid temperature read 131 to 149 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 hot start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F838" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6B7" flags="0x0">
    <title>P0711 Hot Start Check - Start Temperature Window Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest transmission fluid temperature at engine start for which the check runs. Stock 131 C. P0711 hot start check: when the transmission fluid temperature read 131 to 149 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 hot start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F822" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6B8" flags="0x0">
    <title>P0711 Hot Start Check - Start Temperature Window High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest transmission fluid temperature at engine start for which the check runs. Stock 149 C. P0711 hot start check: when the transmission fluid temperature read 131 to 149 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 hot start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F820" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6B9" flags="0x0">
    <title>P0711 Hot Start Check - Coolant Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The check only runs with coolant at or above this. Stock 70 C. P0711 hot start check: when the transmission fluid temperature read 131 to 149 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 hot start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F81E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6BA" flags="0x0">
    <title>P0711 Hot Start Check - Coolant Rise Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The coolant must have risen at least this much since engine start. Stock 50 C. P0711 hot start check: when the transmission fluid temperature read 131 to 149 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 hot start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F81C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6BB" flags="0x0">
    <title>P0711 Hot Start Check - Stuck Reading Tolerance</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0711 counts toward a fail while the transmission fluid reading is still within this of its start value. Stock 2 C. P0711 hot start check: when the transmission fluid temperature read 131 to 149 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 hot start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F824" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6BC" flags="0x0">
    <title>P0711 Hot Start Check - Fail Confirm Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0711 sets once the stuck reading has lasted this long. Stock 80 s. P0711 hot start check: when the transmission fluid temperature read 131 to 149 C at engine start, it must move by more than the stuck-reading tolerance once the engine has warmed up and the truck has been driven; a reading that stays put is reported as a stuck sensor. Effect: changes when the P0711 hot start check runs or sets Evidence: ledger:E0786, ledger:E0911</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F83A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6BD" flags="0x0">
    <title>P0218 - Sensor Plausible Range Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0218 (transmission fluid over temperature): the fluid temperature sensor reading must be at or above this for the check to run. Stock -39.75 C. Effect: raise = the check is skipped at colder sensor readings Evidence: ledger:E0786, ledger:E0975</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F848" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6BE" flags="0x0">
    <title>P0218 - Sensor Plausible Range High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0218 (transmission fluid over temperature): the fluid temperature sensor reading must be at or below this for the check to run. Stock 149.75 C. Effect: lower = the check is skipped at hotter sensor readings Evidence: ledger:E0786, ledger:E0975</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F84A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6BF" flags="0x0">
    <title>P0218 - Sensor Plausible Time Before Checking</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0218 (transmission fluid over temperature): the check only starts once the fluid temperature sensor has read inside its plausible range for this long. Stock 5 s. Effect: raise = the check starts later Evidence: ledger:E0786, ledger:E0975</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F850" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>12.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6C0" flags="0x0">
    <title>P0218 - Fail Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0218 (transmission fluid over temperature): the check counts toward a fail while transmission fluid temperature is at or above this. Stock 130 C. Effect: raise = P0218 needs hotter fluid to set (can hide an overheating transmission) Evidence: ledger:E0786, ledger:E0975</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F84C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6C1" flags="0x0">
    <title>P0218 - Fail Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0218 (transmission fluid over temperature): P0218 sets once fluid temperature has stayed at or above the fail temperature for this long without dropping to the pass temperature. Stock 600 s (10 minutes). Effect: raise = P0218 takes longer to set (can hide an overheating transmission) Evidence: ledger:E0786, ledger:E0975</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F852" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6C2" flags="0x0">
    <title>P0218 - Pass Temperature</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0218 (transmission fluid over temperature): the check counts toward a pass, and restarts the fail time, while fluid temperature is at or below this. Stock 129.5 C. Effect: lower = the fluid must cool further before the check passes Evidence: ledger:E0786, ledger:E0975</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F84E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6C3" flags="0x0">
    <title>P0218 - Pass Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0218 (transmission fluid over temperature): the check reports a pass once fluid temperature has stayed at or below the pass temperature for this long. Stock 5 s. Effect: raise = the check takes longer to pass Evidence: ledger:E0786, ledger:E0975</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F851" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>12.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6C4" flags="0x0">
    <title>Trans Ratio Monitor A - Forced Reset Speed Ratio (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Below this measured converter speed ratio the gear ratio monitor resets its working state instead of running its checks. Stock 0, so the reset never happens on this calibration. Effect: no effect on stock (inactive) Evidence: ledger:E0788, ledger:E0859</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x399E0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6C5" flags="0x0">
    <title>Ratio Monitor A, Settle Time Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Below this much time since the last gear change, this transmission ratio monitor holds its output flag off. Stock 0.1 seconds. Effect: raise = the monitor waits longer after a shift before it is even eligible to set its flag Evidence: ledger:E0788, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x399E4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6C6" flags="0x0">
    <title>Ratio Monitor A, Settle Time High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once this much time has passed since the last gear change, this transmission ratio monitor sets its output flag on by itself, regardless of the other condition it normally checks. Stock 2.0 seconds. Effect: lower = the monitor forces its flag on sooner after a shift, on time alone Evidence: ledger:E0788, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x399E6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x6C7" flags="0x30">
    <title>Ratio Monitor A, Settle Time High-Load Table</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Per gear, minimum time since the last gear change required before this transmission ratio monitor&#x27;s secondary flag can be set. Stock 1.0 / 1.0 / 1.0 seconds. Effect: raise = the secondary flag requires a longer wait after a shift, for that gear Evidence: ledger:E0725, ledger:E0788, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x399EE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x6C8" flags="0x0">
    <title>Ratio Monitor B, Settle Time Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Below this much time since the last gear change, this transmission ratio monitor holds its output flag off. Stock 0.1 seconds. Effect: raise = the monitor waits longer after a shift before it is even eligible to set its flag Evidence: ledger:E0788, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x399E2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x6C9" flags="0x30">
    <title>Ratio Monitor B, Downshift Settle Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Per downshift target gear, minimum time since the last gear change required before this transmission ratio monitor continues past its window check. Stock 2.0 / 2.0 / 3.0 seconds. Effect: raise = the monitor waits longer after a downshift to that gear before continuing its check Evidence: ledger:E0725, ledger:E0788, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>3</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x399E8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="3" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>3</decimalpl>
      <min>0.000000</min>
      <max>409.593750</max>
      <MATH equation="X/160"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x6CA" flags="0x0">
    <title>Shift Sol B Performance (P0756), 1st Gear - Settle Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Time since the last shift that must pass before the shift solenoid B performance test (P0756) watches the transmission in 1st gear. Stock 2 s. The other conditions of the same check (throttle, torque and a converter speed ratio minimum) must hold as well. Effect: raise = the ratio check in 1st gear waits longer after a shift before it can run Evidence: ledger:E0788, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F60E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6CB" flags="0x0">
    <title>Shift Sol B Performance (P0756), 1st Gear - Torque Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the engine torque window required for the shift solenoid B performance test (P0756) to watch the transmission in 1st gear. Stock 50.0 Nm. Effect: raise = the ratio check in 1st gear needs more engine torque before it runs Evidence: ledger:E0788, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F628" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6CC" flags="0x0">
    <title>Shift Sol B Performance (P0756), 1st Gear - Torque Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper bound of the engine torque window required for the shift solenoid B performance test (P0756) to watch the transmission in 1st gear. Stock 550.0 Nm. Effect: lower = the ratio check in 1st gear stops running at a lower engine torque Evidence: ledger:E0788, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F646" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6CD" flags="0x0">
    <title>Shift Sol B Performance (P0756), 1st Gear - Throttle Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest driver throttle-area request at which the shift solenoid B performance test (P0756) watches the transmission in 1st gear. Stock 25 %. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test runs only at a larger throttle request Evidence: ledger:E0788, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F664" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6CE" flags="0x0">
    <title>Shift Sol B Performance (P0756), 1st Gear - Converter Slip Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest torque converter slip (engine speed minus turbine speed) at which the shift solenoid B performance test (P0756) watches the transmission in 1st gear. Stock -1800 rpm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test needs more converter slip Evidence: ledger:E0788, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F67A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6CF" flags="0x0">
    <title>Shift Sol B Performance (P0756), 1st Gear - Converter Slip Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest torque converter slip (engine speed minus turbine speed) at which the shift solenoid B performance test (P0756) watches the transmission in 1st gear. Stock 2400 rpm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: lower = the test stops at less converter slip Evidence: ledger:E0788, ledger:E0841</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F67C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>1</decimalpl>
    <min>-8192.000000</min>
    <max>8191.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/4"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6D0" flags="0x0">
    <title>Shift Sol B Performance (P0756), 1st Gear - Output Speed Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest transmission output speed at which the shift solenoid B performance test (P0756) watches the transmission in 1st gear. Stock 100 rpm. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test needs a higher output speed Evidence: ledger:E0788, ledger:E0841, ledger:E0851</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F686" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6D1" flags="0x0">
    <title>Shift Sol B Performance (P0756), 1st Gear - Converter Ratio Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lowest converter speed ratio at which the shift solenoid B performance test (P0756) watches the transmission in 1st gear. Stock 0.2. The converter speed ratio here is the PCM&#x27;s own torque converter model estimate (turbine speed over engine speed, from engine speed and torque): 1.00 = coupled, low values = high slip. The other conditions of the same check (throttle, torque, time in gear and a converter speed condition) must hold as well. Effect: raise = the test waits until the converter is closer to coupled Evidence: ledger:E0788, ledger:E0841, ledger:E0851</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F5F6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6D2" flags="0x0">
    <title>Transfer Case Relay C Diagnostic, Torque Window Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the engine torque window required, together with another condition, for this transfer case relay diagnostic to continue. Stock 40.0 Nm. Effect: raise = the diagnostic requires more engine torque before it continues Evidence: ledger:E0789, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F8D0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6D3" flags="0x0">
    <title>Transfer Case Relay C Diagnostic, Torque High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper bound of the engine torque window required for this transfer case relay diagnostic to continue. Stock 200 Nm. Effect: lower = the diagnostic stops at a lower engine torque Evidence: ledger:E0789, ledger:E0972</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F8CE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6D4" flags="0x0">
    <title>Trans Slip (P0894) Count Check - Throttle Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 10 %. P0894 (transmission component slipping) count check: while the converter clutch is applied and the throttle request is inside its window, converter slip that stays inside the count check slip window for the count check time adds one count; at the count check counts the PCM reports P0894. Effect: raise = the count check needs a larger throttle request Evidence: ledger:E0789, ledger:E0849</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F782" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6D5" flags="0x0">
    <title>Trans Slip (P0894) Count Check - Throttle Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 100 %. P0894 (transmission component slipping) count check: while the converter clutch is applied and the throttle request is inside its window, converter slip that stays inside the count check slip window for the count check time adds one count; at the count check counts the PCM reports P0894. Effect: lower = the count check stops at a smaller throttle request Evidence: ledger:E0789, ledger:E0849</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F780" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6D6" flags="0x0">
    <title>Trans Slip (P0894) Count Check - Slip Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 120 rpm. P0894 (transmission component slipping) count check: while the converter clutch is applied and the throttle request is inside its window, converter slip that stays inside the count check slip window for the count check time adds one count; at the count check counts the PCM reports P0894. Effect: raise = only larger slip counts Evidence: ledger:E0789, ledger:E0849</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F76A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6D7" flags="0x0">
    <title>Trans Slip (P0894) Count Check - Slip Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 550 rpm. P0894 (transmission component slipping) count check: while the converter clutch is applied and the throttle request is inside its window, converter slip that stays inside the count check slip window for the count check time adds one count; at the count check counts the PCM reports P0894. Effect: lower = large slip no longer counts Evidence: ledger:E0789, ledger:E0849</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F768" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6D8" flags="0x0">
    <title>Transmission Slip Monitor B, Throttle Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the transmission throttle window required for this transmission slip monitor gate to arm. Stock 10 %. Effect: raise = the diagnostic needs a higher transmission throttle Evidence: ledger:E0789, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F7B2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6D9" flags="0x0">
    <title>Transmission Slip Monitor B, Throttle High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper bound of the transmission throttle window required for this transmission slip monitor gate to arm. Stock 99 %. Effect: lower = the diagnostic stops at a lower transmission throttle Evidence: ledger:E0789, ledger:E0973</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F7B4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6DA" flags="0x0">
    <title>Transmission Slip Monitor B, Fluid Temp Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the transmission fluid temperature window required for this transmission slip monitor gate to arm. Stock 20 C. Effect: raise = the diagnostic needs a higher transmission fluid temperature Evidence: ledger:E0789, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F7B6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6DB" flags="0x0">
    <title>Transmission Slip Monitor B, Fluid Temp High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper bound of the transmission fluid temperature window required for this transmission slip monitor gate to arm. Stock 130 C. Effect: lower = the diagnostic stops at a lower transmission fluid temperature Evidence: ledger:E0789, ledger:E0973</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F7B8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6DC" flags="0x0">
    <title>Transmission Slip Monitor B, Torque Arm Threshold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the engine torque window required for this transmission slip monitor gate to arm. Stock 5.0 Nm. Effect: raise = the monitor needs more engine torque before it will arm Evidence: ledger:E0789, ledger:E0806</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F7BC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6DD" flags="0x0">
    <title>Transmission Slip Monitor B, Torque High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper bound of the engine torque window required for this transmission slip monitor gate to arm. Stock 525 Nm. Effect: lower = the diagnostic stops at a lower engine torque Evidence: ledger:E0789, ledger:E0972</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F7BE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6DE" flags="0x0">
    <title>Knock Tables - RPM Axis Start</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine speed at the first column of the knock detection tables. Stock 0 rpm. Both knock tables that use this axis move with it: the knock detection threshold gains (one per cylinder) and the knock window angle term. Their rows or columns are spread evenly between the start and end values, so changing either end re-spaces every breakpoint; re-check those tables after an edit. Effect: raise = the knock tables start their first column at a higher rpm Evidence: ledger:E0364, ledger:E0831</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x316C6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6DF" flags="0x0">
    <title>Knock Tables - RPM Axis End</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine speed at the last column of the knock detection tables; above it the last column is used. Stock 8000 rpm. Both knock tables that use this axis move with it: the knock detection threshold gains (one per cylinder) and the knock window angle term. Their rows or columns are spread evenly between the start and end values, so changing either end re-spaces every breakpoint; re-check those tables after an edit. Effect: raise = the knock tables cover a higher rpm range Evidence: ledger:E0364, ledger:E0831</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x316C8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6E0" flags="0x0">
    <title>Knock Tables - Cylinder Airmass Axis Start</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cylinder airmass at the first row of the knock detection tables. Stock 0.24 g. Both knock tables that use this axis move with it: the knock detection threshold gains (one per cylinder) and the knock window angle term. Their rows or columns are spread evenly between the start and end values, so changing either end re-spaces every breakpoint; re-check those tables after an edit. Effect: raise = the knock tables start their first row at a higher load Evidence: ledger:E0364, ledger:E0831</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x316EC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/cyl</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>4.095937</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16000"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6E1" flags="0x0">
    <title>Knock Tables - Cylinder Airmass Axis End</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cylinder airmass at the last row of the knock detection tables; above it the last row is used. Stock 0.72 g. This is the one engine load axis on this calibration that can be widened for boost: the spark, torque and fuel tables have fixed load ranges. Both knock tables that use this axis move with it: the knock detection threshold gains (one per cylinder) and the knock window angle term. Their rows or columns are spread evenly between the start and end values, so changing either end re-spaces every breakpoint; re-check those tables after an edit. Effect: raise = the knock tables cover higher cylinder loads (boost) Evidence: ledger:E0364, ledger:E0831</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x316EE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/cyl</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>4.095937</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16000"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6E2" flags="0x0">
    <title>Knock Threshold EQ Factor - EQ Axis Start</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Commanded fuel equivalence ratio at the first point of the knock threshold EQ factor curve. Stock 1.00. The curve&#x27;s points are spread evenly between the start and end values. Effect: raise = the EQ factor curve starts at a richer mixture Evidence: ledger:E0364, ledger:E0831</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x31702" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>EQ</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>63.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6E3" flags="0x0">
    <title>Knock Threshold EQ Factor - EQ Axis End</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Commanded fuel equivalence ratio at the last point of the knock threshold EQ factor curve; richer than this uses the last point. Stock 1.90. The curve&#x27;s points are spread evenly between the start and end values. Effect: raise = the EQ factor curve covers richer mixtures Evidence: ledger:E0364, ledger:E0831</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x31704" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>EQ</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>63.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6E4" flags="0x0">
    <title>Over-Temp Enrichment - Entry Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant over-temperature enrichment (engine protection, keep stock). Coolant at or above which the enrichment may start. Stock 119 C. DO NOT TUNE (E0832). Whether it runs is set by these entry and hold gates. How much it adds comes from the start coolant, gain and cap items. Effect: engine protection; keep stock Evidence: ledger:E0249, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x26772" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6E5" flags="0x0">
    <title>Over-Temp Enrichment - Hold Coolant</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant over-temperature enrichment (engine protection, keep stock). Once active, the enrichment stays on while coolant is at or above this. Stock 115 C. DO NOT TUNE (E0832). Whether it runs is set by these entry and hold gates. How much it adds comes from the start coolant, gain and cap items. Effect: engine protection; keep stock Evidence: ledger:E0249, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x26774" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6E6" flags="0x0">
    <title>Over-Temp Enrichment - Entry Coolant (Status Bit Set)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant over-temperature enrichment (engine protection, keep stock). Entry coolant used instead while bit 0 of the first diagnostic status byte is set. Stock 126 C. DO NOT TUNE (E0832). Whether it runs is set by these entry and hold gates. How much it adds comes from the start coolant, gain and cap items. Effect: engine protection; keep stock Evidence: ledger:E0249, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x26776" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6E7" flags="0x0">
    <title>Over-Temp Enrichment - Hold Coolant (Status Bit Set)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant over-temperature enrichment (engine protection, keep stock). Hold coolant used instead while bit 0 of the first diagnostic status byte is set. Stock 122 C. DO NOT TUNE (E0832). Whether it runs is set by these entry and hold gates. How much it adds comes from the start coolant, gain and cap items. Effect: engine protection; keep stock Evidence: ledger:E0249, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x26778" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6E8" flags="0x0">
    <title>Over-Temp Enrichment - Entry Throttle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant over-temperature enrichment (engine protection, keep stock). Throttle at or above which the enrichment may start. Stock 50 %. DO NOT TUNE (E0832). Whether it runs is set by these entry and hold gates. How much it adds comes from the start coolant, gain and cap items. Effect: engine protection; keep stock Evidence: ledger:E0249, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2677A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6E9" flags="0x0">
    <title>Over-Temp Enrichment - Hold Throttle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant over-temperature enrichment (engine protection, keep stock). Once active, throttle must stay at or above this. Stock 45 %. DO NOT TUNE (E0832). Whether it runs is set by these entry and hold gates. How much it adds comes from the start coolant, gain and cap items. Effect: engine protection; keep stock Evidence: ledger:E0249, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2677C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>200.003052</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.67"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6EA" flags="0x0">
    <title>Over-Temp Enrichment - Entry MAP</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant over-temperature enrichment (engine protection, keep stock). Manifold pressure at or above which the enrichment may start. Stock 55 kPa. DO NOT TUNE (E0832). Whether it runs is set by these entry and hold gates. How much it adds comes from the start coolant, gain and cap items. Effect: engine protection; keep stock Evidence: ledger:E0249, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x2677E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6EB" flags="0x0">
    <title>Over-Temp Enrichment - Hold MAP</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant over-temperature enrichment (engine protection, keep stock). Once active, manifold pressure must stay at or above this. Stock 50 kPa. DO NOT TUNE (E0832). Whether it runs is set by these entry and hold gates. How much it adds comes from the start coolant, gain and cap items. Effect: engine protection; keep stock Evidence: ledger:E0249, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x26780" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6EC" flags="0x0">
    <title>Over-Temp Enrichment - Entry Vehicle Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant over-temperature enrichment (engine protection, keep stock). Vehicle speed at or above which the enrichment may start. Stock 20 km/h. DO NOT TUNE (E0832). Whether it runs is set by these entry and hold gates. How much it adds comes from the start coolant, gain and cap items. Effect: engine protection; keep stock Evidence: ledger:E0249, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x26782" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6ED" flags="0x0">
    <title>Over-Temp Enrichment - Hold Vehicle Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Coolant over-temperature enrichment (engine protection, keep stock). Once active, vehicle speed must stay at or above this. Stock 15 km/h. DO NOT TUNE (E0832). Whether it runs is set by these entry and hold gates. How much it adds comes from the start coolant, gain and cap items. Effect: engine protection; keep stock Evidence: ledger:E0249, ledger:E0832</description>
    <CATEGORYMEM index="0" category="1" />
    <EMBEDDEDDATA mmedaddress="0x26784" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x6EE" flags="0x30">
    <title>Shift Torque Breakpoints (axis, edit with care)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Shift torque points used by the shift pressure, shift pressure multipliers, desired shift time and torque reduction tables. Stock 0 to 640 Nm in 40 Nm steps. Above the last point those tables use their last row, so a higher-torque engine needs this range widened. The tables that use it are spread over these points, so moving them re-spaces those tables; keep the point count and keep the points rising. Effect: moves the torque axis of every table that uses it: edit with care Evidence: ledger:E0706, ledger:E0834</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3E3AE" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>Nm</units>
      <decimalpl>1</decimalpl>
      <min>-8192.000000</min>
      <max>8191.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x6EF" flags="0x30">
    <title>Shift Adapt Torque Breakpoints (axis, edit with care)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Shift torque points that select the shift pressure adapt cells. Stock 0 to 640 Nm in 40 Nm steps. The tables that use it are spread over these points, so moving them re-spaces those tables; keep the point count and keep the points rising. Effect: moves the torque axis of every table that uses it: edit with care Evidence: ledger:E0706, ledger:E0834</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3BAE0" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>Nm</units>
      <decimalpl>1</decimalpl>
      <min>-8192.000000</min>
      <max>8191.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x6F0" flags="0x30">
    <title>Upshift Pressure Temperature Modifier - Torque Breakpoints (axis, edit with care)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Shift torque points (rows) of the upshift pressure temperature modifier tables. Stock 0, 160, 320, 480, 640 Nm. The tables that use it are spread over these points, so moving them re-spaces those tables; keep the point count and keep the points rising. Effect: moves the torque axis of every table that uses it: edit with care Evidence: ledger:E0706, ledger:E0834</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>5</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x39BE8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="5" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>Nm</units>
      <decimalpl>1</decimalpl>
      <min>-8192.000000</min>
      <max>8191.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x6F1" flags="0x30">
    <title>Shift Profile Torque Breakpoints (axis, edit with care)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Shift torque points of the shift profile hold and end time tables. Stock 0 to 320 Nm in 20 Nm steps. The tables that use it are spread over these points, so moving them re-spaces those tables; keep the point count and keep the points rising. Effect: moves the torque axis of every table that uses it: edit with care Evidence: ledger:E0706, ledger:E0834</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3E3D2" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>Nm</units>
      <decimalpl>1</decimalpl>
      <min>-8192.000000</min>
      <max>8191.750000</max>
      <MATH equation="X/4"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x6F2" flags="0x30">
    <title>TCC Slip Target - Engine Torque Breakpoints (axis, edit with care)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine torque points (rows) of the converter clutch slip target tables. Stock 0 to 320 Nm in 40 Nm steps, which is at or below the stock engine&#x27;s peak torque; a higher-torque engine needs this range widened. The tables that use it are spread over these points, so moving them re-spaces those tables; keep the point count and keep the points rising. Effect: moves the torque axis of every table that uses it: edit with care Evidence: ledger:E0373, ledger:E0834</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>9</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3D0E8" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="9" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>Nm</units>
      <decimalpl>0</decimalpl>
      <min>-4096.000000</min>
      <max>4095.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x6F3" flags="0x30">
    <title>2-1 Downshift Pressure - Input Torque Breakpoints (axis, edit with care)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Transmission input torque points (rows) of the 2-1 downshift pressure tables. Stock 0 to 200 Nm in 12.5 Nm steps. The tables that use it are spread over these points, so moving them re-spaces those tables; keep the point count and keep the points rising. Effect: moves the torque axis of every table that uses it: edit with care Evidence: ledger:E0693, ledger:E0834</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>17</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <LABEL index="2" value="2" />
      <LABEL index="3" value="3" />
      <LABEL index="4" value="4" />
      <LABEL index="5" value="5" />
      <LABEL index="6" value="6" />
      <LABEL index="7" value="7" />
      <LABEL index="8" value="8" />
      <LABEL index="9" value="9" />
      <LABEL index="10" value="10" />
      <LABEL index="11" value="11" />
      <LABEL index="12" value="12" />
      <LABEL index="13" value="13" />
      <LABEL index="14" value="14" />
      <LABEL index="15" value="15" />
      <LABEL index="16" value="16" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3740C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="17" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
      <units>Nm</units>
      <decimalpl>0</decimalpl>
      <min>-4096.000000</min>
      <max>4095.875000</max>
      <MATH equation="X/8"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x6F4" flags="0x0">
    <title>Secondary Air - System Enable / Type</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. 0 = secondary air injection disabled (stock H3); non-zero enables the AIR controller (1 selects the single-stage pump logic). Only scan-tool output control can command AIR while it is 0. Secondary air injection is disabled on the stock H3 (E0836). Effect: secondary air injection; keep stock unless the AIR hardware is fitted Evidence: ledger:E0836</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x2C38E" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>code</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6F5" flags="0x0">
    <title>Secondary Air - Channel Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Number of AIR channels the controller runs. Stock 1. Secondary air injection is disabled on the stock H3 (E0836). Effect: secondary air injection; keep stock unless the AIR hardware is fitted Evidence: ledger:E0836</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x2C38F" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>channels</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x6F6" flags="0x30">
    <title>Secondary Air - Channel On Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Per channel: time after the AIR system is enabled before that channel is commanded on. Stock 1.3 s. Secondary air injection is disabled on the stock H3 (E0836). Effect: secondary air injection; keep stock unless the AIR hardware is fitted Evidence: ledger:E0836</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>AIR channel</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2C393" mmedelementsizebits="8" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>12.750000</max>
      <MATH equation="X/20"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x6F7" flags="0x30">
    <title>Secondary Air - Channel Off Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Per channel: time after the AIR system is no longer enabled before that channel is commanded off. Stock 0 s. Secondary air injection is disabled on the stock H3 (E0836). Effect: secondary air injection; keep stock unless the AIR hardware is fitted Evidence: ledger:E0836</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>AIR channel</units>
      <embedinfo type="0" />
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="1" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x2C395" mmedelementsizebits="8" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>s</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>12.750000</max>
      <MATH equation="X/20"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x6F8" flags="0x0">
    <title>Cam Phaser Stuck Response - Pulse Repeats</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phaser stuck response: when the cam is commanded to at least 4 degrees but has not moved past 1.5 degrees (or on a second internal trigger), the PCM pulses the phaser solenoid: stage 1 duty for the stage 1 time, then stage 2 duty for the stage 2 time, repeated up to the pulse repeat count. This is how many pulses one stuck event gets. Stock 12. Effect: raise = more unsticking pulses per event Evidence: ledger:E0837</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x228E3" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>count</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>255.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6F9" flags="0x0">
    <title>Cam Phaser Stuck Response - Minimum Commanded Angle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phaser stuck response (see the stuck response duty and time items): it starts when the cam is commanded to at least the minimum desired angle while the actual angle is at or below the maximum actual angle, and stops pulsing once the actual angle moves past that maximum. This is the minimum commanded angle. Stock 4.0 degrees. Effect: raise = the response needs a larger commanded angle Evidence: ledger:E0837, ledger:E0840</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22942" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>deg</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6FA" flags="0x0">
    <title>Cam Phaser Stuck Response - Maximum Actual Angle</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam phaser stuck response (see the stuck response duty and time items): it starts when the cam is commanded to at least the minimum desired angle while the actual angle is at or below the maximum actual angle, and stops pulsing once the actual angle moves past that maximum. This is the maximum actual angle that still counts as stuck. Stock 1.5 degrees. Effect: raise = the phaser counts as stuck over a wider range Evidence: ledger:E0837, ledger:E0840</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22944" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>deg</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6FB" flags="0x0">
    <title>Tip-In Torque Ramp - Fast Step Slip Trigger</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after a closed-throttle tip-in the torque limit ramps up (default, lash and fast steps). The fast step starts once the limit passes its target, once gearbox slip is large, or once the driveline has shunted forward, swung back and started climbing again. The fast step also starts once gearbox slip exceeds this. Stock 50 rpm. Effect: tip-in torque management Evidence: ledger:E0845, ledger:E0846</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x20F4C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>-4096.000000</min>
    <max>4095.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6FC" flags="0x0">
    <title>Tip-In Torque Ramp - Lash Step Slip Trigger</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only): after a closed-throttle tip-in the torque limit ramps up (default, lash and fast steps). The fast step starts once the limit passes its target, once gearbox slip is large, or once the driveline has shunted forward, swung back and started climbing again. The lash step is used while gearbox slip exceeds this. Stock 10 rpm. Effect: tip-in torque management Evidence: ledger:E0845, ledger:E0846</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x20F46" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>-4096.000000</min>
    <max>4095.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6FD" flags="0x0">
    <title>Tip-In Arming - Slip Threshold B</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Tip-in torque management (H3 only) can only arm while the engine is turning less than a set amount faster than the transmission output implies in the current gear (torque converter plus gearbox slip). Below Threshold A it can arm; from Threshold A up to Threshold B it can arm only while engine torque is below the arm torque; at or above Threshold B it cannot arm. Once armed at closed throttle, opening the throttle starts the tip-in torque ramp. Stock both 250 rpm, so there is no in-between band. This is Threshold B. Effect: raise above Threshold A = opens a band where arming depends on engine torque Evidence: ledger:E0356, ledger:E0845, ledger:E0846, ledger:E0848</description>
    <CATEGORYMEM index="0" category="7" />
    <EMBEDDEDDATA mmedaddress="0x20F48" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>-4096.000000</min>
    <max>4095.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6FE" flags="0x0">
    <title>VE Transient Mode - RPM Band Split</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow source switching: the PCM normally uses the MAF airflow and, during a manifold pressure transient, switches to the VE (speed density) airflow times a learned MAF to VE ratio. It switches over when MAP keeps moving by more than the MAP change threshold per update (two updates in a row), or when MAP moves more than that over two updates while the throttle area moves the same way by more than the area change threshold; it switches back once the MAP change over one, two and three updates is at or below the MAP change threshold. The high band thresholds apply at or above the MAP split or the RPM split. At or above this engine speed the high band thresholds are used. Stock 4000 rpm. Effect: moves where the high band starts Evidence: ledger:E0219, ledger:E0854</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BE6A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x6FF" flags="0x0">
    <title>VE Transient Mode - MAP Change Threshold (Low Band)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow source switching: the PCM normally uses the MAF airflow and, during a manifold pressure transient, switches to the VE (speed density) airflow times a learned MAF to VE ratio. It switches over when MAP keeps moving by more than the MAP change threshold per update (two updates in a row), or when MAP moves more than that over two updates while the throttle area moves the same way by more than the area change threshold; it switches back once the MAP change over one, two and three updates is at or below the MAP change threshold. The high band thresholds apply at or above the MAP split or the RPM split. MAP change per update, low band. Stock 0.20 kPa. Effect: raise = switches to the VE airflow less readily and back to MAF sooner Evidence: ledger:E0219, ledger:E0854</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BE6C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x700" flags="0x0">
    <title>VE Transient Mode - MAP Change Threshold (High Band)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow source switching: the PCM normally uses the MAF airflow and, during a manifold pressure transient, switches to the VE (speed density) airflow times a learned MAF to VE ratio. It switches over when MAP keeps moving by more than the MAP change threshold per update (two updates in a row), or when MAP moves more than that over two updates while the throttle area moves the same way by more than the area change threshold; it switches back once the MAP change over one, two and three updates is at or below the MAP change threshold. The high band thresholds apply at or above the MAP split or the RPM split. MAP change per update, high band. Stock 0.90 kPa. Effect: raise = switches to the VE airflow less readily and back to MAF sooner Evidence: ledger:E0219, ledger:E0854</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BE6E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x701" flags="0x0">
    <title>VE Transient Mode - Throttle Area Change Threshold (Low Band)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow source switching: the PCM normally uses the MAF airflow and, during a manifold pressure transient, switches to the VE (speed density) airflow times a learned MAF to VE ratio. It switches over when MAP keeps moving by more than the MAP change threshold per update (two updates in a row), or when MAP moves more than that over two updates while the throttle area moves the same way by more than the area change threshold; it switches back once the MAP change over one, two and three updates is at or below the MAP change threshold. The high band thresholds apply at or above the MAP split or the RPM split. Throttle area change over two updates, low band. Stock 1.0 % of full area. Effect: raise = throttle moves alone trigger the VE airflow less often Evidence: ledger:E0219, ledger:E0854</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BE70" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>399.993896</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/163.84"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x702" flags="0x0">
    <title>VE Transient Mode - Throttle Area Change Threshold (High Band)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airflow source switching: the PCM normally uses the MAF airflow and, during a manifold pressure transient, switches to the VE (speed density) airflow times a learned MAF to VE ratio. It switches over when MAP keeps moving by more than the MAP change threshold per update (two updates in a row), or when MAP moves more than that over two updates while the throttle area moves the same way by more than the area change threshold; it switches back once the MAP change over one, two and three updates is at or below the MAP change threshold. The high band thresholds apply at or above the MAP split or the RPM split. Throttle area change over two updates, high band. Stock 1.0 % of full area. Effect: raise = throttle moves alone trigger the VE airflow less often Evidence: ledger:E0219, ledger:E0854</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BE72" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>399.993896</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/163.84"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x703" flags="0x0">
    <title>TCC Slip On Target - Exit Margin</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 10 rpm. The PCM drops back to above target when slip stays more than the exit margin above the target for the exit time. With the converter clutch applied the PCM runs one of two phases: on target (slip held close to the slip target) and above target (slip higher than the target, being pulled back in). Effect: raise = more slip is tolerated before leaving on target Evidence: ledger:E0855</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D06C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x704" flags="0x0">
    <title>TCC Slip On Target - Exit Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 1 s. The PCM drops back to above target when slip stays more than the exit margin above the target for the exit time. With the converter clutch applied the PCM runs one of two phases: on target (slip held close to the slip target) and above target (slip higher than the target, being pulled back in). Effect: raise = slip must stay high longer before leaving on target Evidence: ledger:E0855</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D05E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x705" flags="0x0">
    <title>Engine Displacement</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The PCM turns cylinder airmass into engine load by dividing it by the ideal charge of one cylinder (at barometric pressure, and at 105 kPa and -40 C), worked out from this displacement for 5 cylinders. It also sets the cranking airmass (cranking VE x MAP x cylinder volume / charge temperature). Set this to the engine&#x27;s real displacement after a bore or stroke change. Stock 3.5 L. The PCM cannot represent more than about 5.8 L here. Effect: raise = the same airmass reads as a lower engine load Evidence: ledger:E0217, ledger:E0860, ledger:E0861</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2AB7E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>L</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>9.999847</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/6553.6"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x706" flags="0x0">
    <title>Ideal Cylinder Charge Multiplier</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The PCM turns cylinder airmass into engine load by dividing it by the ideal charge of one cylinder (at barometric pressure, and at 105 kPa and -40 C), worked out from this displacement for 5 cylinders. This multiplies the ideal charge worked out from the displacement. Stock 1.0. Effect: raise = the same airmass reads as a lower engine load Evidence: ledger:E0217, ledger:E0860</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2AB80" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>x</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x707" flags="0x0">
    <title>Airmass Predictor MAP Band Hysteresis</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airmass predictor region: the PCM predicts cylinder airmass a little ahead of the MAF reading, with a separate set of predictor coefficients per region. The region is an idle window (low throttle, low engine speed, moderate vacuum) or one of 16 cells from four engine speed bands by four MAP bands. Leave these at stock unless the predictor coefficients are recalibrated with them. MAP hysteresis: the region keeps its MAP band until MAP moves this far past either band edge (every MAP band). Stock 1 kPa. Effect: raise = the predictor region changes MAP band less often Evidence: ledger:E0323, ledger:E0864, ledger:E0891</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BEFA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x708" flags="0x0">
    <title>Airmass Predictor Idle Region - Throttle Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airmass predictor region: the PCM predicts cylinder airmass a little ahead of the MAF reading, with a separate set of predictor coefficients per region. The region is an idle window (low throttle, low engine speed, moderate vacuum) or one of 16 cells from four engine speed bands by four MAP bands. Leave these at stock unless the predictor coefficients are recalibrated with them. The idle region needs throttle below this. Stock 5 %. Effect: moves which predictor coefficient set applies Evidence: ledger:E0323, ledger:E0864</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BEFC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x709" flags="0x0">
    <title>Airmass Predictor Idle Region - Engine Speed Below</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Airmass predictor region: the PCM predicts cylinder airmass a little ahead of the MAF reading, with a separate set of predictor coefficients per region. The region is an idle window (low throttle, low engine speed, moderate vacuum) or one of 16 cells from four engine speed bands by four MAP bands. Leave these at stock unless the predictor coefficients are recalibrated with them. The idle region needs engine speed below this. Stock 1000 rpm. Effect: moves which predictor coefficient set applies Evidence: ledger:E0323, ledger:E0864</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x2BEFE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x70A" flags="0x0">
    <title>Burst Knock Retard Multiplier - Step Down</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Burst knock retard learned multiplier: two learned multipliers (1.0 = full burst retard) scale the burst knock retard. One event raises the active multiplier by the step up, another lowers it by the step down, and it is never allowed below the floor. Stock floor is 1.0, the top of the range, so on the stock calibration the multipliers stay at 1.0 and nothing is learned; lowering the floor lets burst retard learn down. This is the step down. Stock 0.03. Effect: raise = the multiplier falls faster (only below a lowered floor) Evidence: ledger:E0869</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A726" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>x</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x70B" flags="0x0">
    <title>Burst Knock Retard Multiplier - Reset Value</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Burst knock retard learned multiplier: two learned multipliers (1.0 = full burst retard) scale the burst knock retard. One event raises the active multiplier by the step up, another lowers it by the step down, and it is never allowed below the floor. Stock floor is 1.0, the top of the range, so on the stock calibration the multipliers stay at 1.0 and nothing is learned; lowering the floor lets burst retard learn down. Value both multipliers are set to after a fault reset. Stock 1.0. Effect: sets where learning restarts after a reset Evidence: ledger:E0869</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A72C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>x</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x70C" flags="0x0">
    <title>Burst Knock Retard - Hold</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Burst knock retard sequence: a quick rise in cylinder airmass starts a burst of spark retard (sized by the burst retard curves and the learned multiplier). After the delay the retard is applied, held for the hold count, then removed in equal steps over the decay count. Counts are updates of the burst retard routine. This is how long the full retard is held. Stock 5 updates. Effect: raise = full burst retard is held longer Evidence: ledger:E0870</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A70A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>updates</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x70D" flags="0x0">
    <title>Burst Knock Retard - Decay Steps</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Burst knock retard sequence: a quick rise in cylinder airmass starts a burst of spark retard (sized by the burst retard curves and the learned multiplier). After the delay the retard is applied, held for the hold count, then removed in equal steps over the decay count. Counts are updates of the burst retard routine. This is the number of equal steps the retard is removed over. Stock 10 updates. Effect: raise = the burst retard fades out more slowly Evidence: ledger:E0870</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A70C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>updates</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x70E" flags="0x0">
    <title>Knock Learn Rate - Engine Speed Weight</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock learning rate for under-sampled cylinders: when a cylinder has had too few knock-learning samples, its learning rate factor is the weighted average of five curves (manifold pressure, engine speed, sample count, coolant and intake temperature), each a fraction from 0 to 1, weighted by the five weights. This is one of the five weights (relative; only the ratios matter). Stock 0.004. Effect: raise = this curve counts for more in the average Evidence: ledger:E0193, ledger:E0871</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A8AA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>weight</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x70F" flags="0x0">
    <title>Knock Learn Rate - Coolant Weight</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock learning rate for under-sampled cylinders: when a cylinder has had too few knock-learning samples, its learning rate factor is the weighted average of five curves (manifold pressure, engine speed, sample count, coolant and intake temperature), each a fraction from 0 to 1, weighted by the five weights. This is one of the five weights (relative; only the ratios matter). Stock 1.0. Effect: raise = this curve counts for more in the average Evidence: ledger:E0193, ledger:E0871</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A8AC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>weight</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x710" flags="0x0">
    <title>Knock Learn Rate - Intake Temperature Weight</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock learning rate for under-sampled cylinders: when a cylinder has had too few knock-learning samples, its learning rate factor is the weighted average of five curves (manifold pressure, engine speed, sample count, coolant and intake temperature), each a fraction from 0 to 1, weighted by the five weights. This is one of the five weights (relative; only the ratios matter). Stock 0.5. Effect: raise = this curve counts for more in the average Evidence: ledger:E0193, ledger:E0871</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A8AE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>weight</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x711" flags="0x0">
    <title>Knock Learn Rate - Sample Count Weight</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Knock learning rate for under-sampled cylinders: when a cylinder has had too few knock-learning samples, its learning rate factor is the weighted average of five curves (manifold pressure, engine speed, sample count, coolant and intake temperature), each a fraction from 0 to 1, weighted by the five weights. This is one of the five weights (relative; only the ratios matter). Stock 0.125. Effect: raise = this curve counts for more in the average Evidence: ledger:E0193, ledger:E0871</description>
    <CATEGORYMEM index="0" category="2" />
    <EMBEDDEDDATA mmedaddress="0x2A8B0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>weight</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x712" flags="0x0">
    <title>Load-Based Cam Ramp - Minimum Vehicle Speed</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Load-based cam phasing: when the load-based cam target takes over, the commanded cam angle ramps toward it by the ramp step each update while throttle is below the throttle limit and vehicle speed is above the speed limit; otherwise it jumps straight to the target. At or below this speed the cam jumps to the target. Stock 10 km/h. Effect: raise = no ramp at low vehicle speed Evidence: ledger:E0358, ledger:E0874</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22CDE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x713" flags="0x0">
    <title>Load-Based Cam Ramp - Step</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Load-based cam phasing: when the load-based cam target takes over, the commanded cam angle ramps toward it by the ramp step each update while throttle is below the throttle limit and vehicle speed is above the speed limit; otherwise it jumps straight to the target. Cam angle change per update while ramping. Stock 0.047 deg. Effect: raise = the cam moves to the load target faster Evidence: ledger:E0358, ledger:E0874</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22CE0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>deg</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x714" flags="0x0">
    <title>Cam Target Spark-Limit Reduction - Up Period</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam target reduction while spark is limited: the load-based cam target is multiplied by a factor (1.0 = no change). While spark has been held below its reference spark for half a second, the factor drops by the step down every down period, never below the floor; otherwise it climbs back by the step up every up period. Stock floor is 1.0, so on the stock calibration the factor stays at 1.0. Stock 30 s. Effect: lower = the cam target recovers faster Evidence: ledger:E0720, ledger:E0875</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22CAC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x715" flags="0x0">
    <title>Cam Target Spark-Limit Reduction - Step Down</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam target reduction while spark is limited: the load-based cam target is multiplied by a factor (1.0 = no change). While spark has been held below its reference spark for half a second, the factor drops by the step down every down period, never below the floor; otherwise it climbs back by the step up every up period. Stock floor is 1.0, so on the stock calibration the factor stays at 1.0. Stock 0.0015. Effect: raise = larger reduction each down period Evidence: ledger:E0720, ledger:E0875</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22CAE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>x</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x716" flags="0x0">
    <title>Cam Target Spark-Limit Reduction - Step Up</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Cam target reduction while spark is limited: the load-based cam target is multiplied by a factor (1.0 = no change). While spark has been held below its reference spark for half a second, the factor drops by the step down every down period, never below the floor; otherwise it climbs back by the step up every up period. Stock floor is 1.0, so on the stock calibration the factor stays at 1.0. Stock 0.0015. Effect: raise = larger recovery each up period Evidence: ledger:E0720, ledger:E0875</description>
    <CATEGORYMEM index="0" category="4" />
    <EMBEDDEDDATA mmedaddress="0x22CB0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>x</units>
    <decimalpl>4</decimalpl>
    <min>0.000000</min>
    <max>0.999985</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/65536"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x717" flags="0x0">
    <title>Trans Slip (P0894) Pass - Slip Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock -10 rpm. The P0894 (transmission component slipping) test reports a pass once converter slip stays inside the pass window for the pass time, and clears its counts. Effect: lower = a pass is reported with more negative slip Evidence: ledger:E0849, ledger:E0877</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F77A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>-4096.000000</min>
    <max>4095.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x718" flags="0x0">
    <title>Trans Slip (P0894) Pass - Slip Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 50 rpm. The P0894 (transmission component slipping) test reports a pass once converter slip stays inside the pass window for the pass time, and clears its counts. Effect: raise = a pass is reported with more slip Evidence: ledger:E0849, ledger:E0877</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F778" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>-4096.000000</min>
    <max>4095.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x719" flags="0x0">
    <title>Trans Slip (P0894) Pass - Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 5 s. The P0894 (transmission component slipping) test reports a pass once converter slip stays inside the pass window for the pass time, and clears its counts. Effect: raise = slip must stay in the pass window longer Evidence: ledger:E0849, ledger:E0877</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F7A0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x71A" flags="0x0">
    <title>Trans Slip (P0894) Arm - Converter Clutch Command Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 64.999 %. The P0894 (transmission component slipping) test only runs while the converter clutch is applied with its command and pressure held above these minimums, in a gear whose engine to output speed ratio is inside its window, and with its fluid temperature, torque, speed and engine speed windows met. Effect: raise = the test needs a higher clutch command Evidence: ledger:E0849, ledger:E0877</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F788" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>1</decimalpl>
    <min>0.000000</min>
    <max>199.996948</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/327.68"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x71B" flags="0x0">
    <title>Trans Slip (P0894) Arm - Converter Clutch Pressure Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 40 kPa. The P0894 (transmission component slipping) test only runs while the converter clutch is applied with its command and pressure held above these minimums, in a gear whose engine to output speed ratio is inside its window, and with its fluid temperature, torque, speed and engine speed windows met. Effect: raise = the test needs a higher clutch pressure Evidence: ledger:E0849, ledger:E0877</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F7A6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>4095.937500</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/16"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x71C" flags="0x0">
    <title>Trans Slip (P0894) Arm - 4th Gear Speed Ratio Min</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine speed over transmission output speed. Stock 0.475. The P0894 (transmission component slipping) test only runs while the converter clutch is applied with its command and pressure held above these minimums, in a gear whose engine to output speed ratio is inside its window, and with its fluid temperature, torque, speed and engine speed windows met. Effect: raise = the test needs more converter slip in 4th Evidence: ledger:E0849, ledger:E0877</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F78A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x71D" flags="0x0">
    <title>Trans Slip (P0894) Arm - 4th Gear Speed Ratio Max</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine speed over transmission output speed. Stock 0.98. The P0894 (transmission component slipping) test only runs while the converter clutch is applied with its command and pressure held above these minimums, in a gear whose engine to output speed ratio is inside its window, and with its fluid temperature, torque, speed and engine speed windows met. Effect: lower = the test stops at less converter slip in 4th Evidence: ledger:E0849, ledger:E0877</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F78C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x71E" flags="0x0">
    <title>Trans Slip (P0894) Arm - 3rd Gear Speed Ratio Min (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine speed over transmission output speed. Stock 0.475. 3rd gear is 1.00 to 1, so this window (below 1.00) is never met on stock and the test runs only in 4th. The P0894 (transmission component slipping) test only runs while the converter clutch is applied with its command and pressure held above these minimums, in a gear whose engine to output speed ratio is inside its window, and with its fluid temperature, torque, speed and engine speed windows met. Effect: no effect on stock (inactive) Evidence: ledger:E0849, ledger:E0877</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F78E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x71F" flags="0x0">
    <title>Trans Slip (P0894) Arm - 3rd Gear Speed Ratio Max (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine speed over transmission output speed. Stock 0.98. 3rd gear is 1.00 to 1, so this window (below 1.00) is never met on stock and the test runs only in 4th. The P0894 (transmission component slipping) test only runs while the converter clutch is applied with its command and pressure held above these minimums, in a gear whose engine to output speed ratio is inside its window, and with its fluid temperature, torque, speed and engine speed windows met. Effect: no effect on stock (inactive) Evidence: ledger:E0849, ledger:E0877</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F790" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x720" flags="0x30">
    <title>Highest Gear by Range Selector Position</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Highest gear the transmission may command in each range selector position (range code). Stock 2nd, 2nd, 3rd, then 4th: code 0 is manual 1 (its shift schedule holds 1st; this cap is the hard limit), code 1 manual 2, code 2 manual 3, code 3 Drive. Applies in every shift mode stock uses. Effect: lower a code&#x27;s value = that selector position cannot shift above it Evidence: ledger:E0387, ledger:E0396, ledger:E0838, ledger:E0879</description>
    <CATEGORYMEM index="0" category="3" />
    <XDFAXIS id="x">
      <indexcount>8</indexcount>
      <units>range code</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="code 0 (1)" />
      <LABEL index="1" value="code 1 (2)" />
      <LABEL index="2" value="code 2 (3)" />
      <LABEL index="3" value="code 3 (D)" />
      <LABEL index="4" value="code 4" />
      <LABEL index="5" value="code 5" />
      <LABEL index="6" value="code 6" />
      <LABEL index="7" value="code 7" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x38F46" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>gear</units>
      <decimalpl>0</decimalpl>
      <min>1.000000</min>
      <max>65536.000000</max>
      <MATH equation="X+1"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x721" flags="0x0">
    <title>Shift Mode Select - Throttle Hysteresis Condition Enable (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 0: the throttle hysteresis condition of the shift mode select is never refreshed. Effect: no effect on stock (inactive) Evidence: ledger:E0838, ledger:E0879</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3C4C4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>flag</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x722" flags="0x0">
    <title>Coolant Hot Shift Mode - Clear Below (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine coolant temperature below which the coolant-hot shift mode ends. Stock 250 C: the mode is never entered on stock. Effect: no effect on stock (inactive) Evidence: ledger:E0838, ledger:E0879</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DCE6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x723" flags="0x0">
    <title>Coolant Hot Shift Mode - Set Above (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Engine coolant temperature above which the coolant-hot shift mode starts (only with the pedal above the high pedal point). Stock 255 C: never reached. Effect: no effect on stock (inactive) Evidence: ledger:E0838, ledger:E0879</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3DCE8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x724" flags="0x0">
    <title>TCC Slip On Target - Re-Entry Delay</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Stock 2 s. After the converter clutch leaves on target (slip back above target), the PCM keeps it in the above-target phase at least this long before it can return to on target. With the converter clutch applied the PCM runs one of two phases: on target (slip held close to the slip target) and above target (slip higher than the target, being pulled back in). Effect: raise = a longer wait before on-target control resumes Evidence: ledger:E0855, ledger:E0880</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3D060" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFTABLE uniqueid="0x725" flags="0x30">
    <title>O2 Response Test - Reversal Tolerance, Lean to Rich</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A drop larger than this during a lean-to-rich transition discards that transition. Stock 5 mV. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: changes what the O2 response test measures Evidence: ledger:E0281, ledger:E0295, ledger:E0902</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (bank 1)" />
      <LABEL index="1" value="second sensor (not used)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34418" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x726" flags="0x30">
    <title>O2 Response Test - Reversal Tolerance, Rich to Lean</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. A rise larger than this during a rich-to-lean transition discards that transition. Stock 5 mV. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: changes what the O2 response test measures Evidence: ledger:E0281, ledger:E0295, ledger:E0902</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (bank 1)" />
      <LABEL index="1" value="second sensor (not used)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3441C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x727" flags="0x30">
    <title>O2 Response Test - Transition Timing Low Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower end of the transition timing window (transitions are timed between this and the high voltage). Stock 350 mV. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: changes what the O2 response test measures Evidence: ledger:E0281, ledger:E0295, ledger:E0902</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (bank 1)" />
      <LABEL index="1" value="second sensor (not used)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34420" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x728" flags="0x30">
    <title>O2 Response Test - Transition Timing High Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper end of the transition timing window. Stock 650 mV. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: changes what the O2 response test measures Evidence: ledger:E0281, ledger:E0295, ledger:E0902</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (bank 1)" />
      <LABEL index="1" value="second sensor (not used)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34424" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x729" flags="0x30">
    <title>O2 Response Test - Lean Switch Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Falling to this or below counts a lean switch. Stock 500 mV. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: changes what the O2 response test measures Evidence: ledger:E0281, ledger:E0295, ledger:E0902</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (bank 1)" />
      <LABEL index="1" value="second sensor (not used)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x34428" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFTABLE uniqueid="0x72A" flags="0x30">
    <title>O2 Response Test - Rich Switch Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Rising to this or above counts a rich switch. Stock 600 mV. The O2 response test watches the front O2 sensor in steady closed-loop cruise, times each lean-to-rich and rich-to-lean swing between 350 and 650 mV and counts crossings of 600 mV (rising) and 500 mV (falling). Limits are looked up by the average airflow over the test (stock values are the same at every airflow). Effect: changes what the O2 response test measures Evidence: ledger:E0281, ledger:E0295, ledger:E0902</description>
    <CATEGORYMEM index="0" category="8" />
    <XDFAXIS id="x">
      <indexcount>2</indexcount>
      <units>sensor</units>
      <embedinfo type="0" />
      <outputtype>4</outputtype>
      <datatype>0</datatype><unittype>0</unittype><DALINK index="0" />
      <LABEL index="0" value="sensor 1 (bank 1)" />
      <LABEL index="1" value="second sensor (not used)" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="y">
      <indexcount>1</indexcount>
      <units>index</units>
      <embedinfo type="0" />
      <MATH equation="X"><VAR id="X" /></MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0x3442C" mmedelementsizebits="16" mmedrowcount="1" mmedcolcount="2" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
      <units>mV</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>4095.937500</max>
      <MATH equation="X/16"><VAR id="X" /></MATH>
    </XDFAXIS>
  </XDFTABLE>
  <XDFCONSTANT uniqueid="0x72B" flags="0x0">
    <title>P0562 Test - Run Condition, Engine Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0562 test only runs while engine speed is at or above this. Stock 1200 rpm. Effect: raise = the test needs a higher engine speed to run Evidence: ledger:E0906</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x203E8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x72C" flags="0x0">
    <title>P0068 Test - Run Condition, Engine Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0068 test only runs while engine speed is above this. Stock 800 rpm. Effect: raise = the test needs a higher engine speed to run Evidence: ledger:E0906</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x2359C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x72D" flags="0x0">
    <title>P0325 Test - Run Condition, Engine Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0325 test only runs while engine speed is above this. Stock 1800 rpm. Effect: raise = the test needs a higher engine speed to run Evidence: ledger:E0906</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3206E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x72E" flags="0x0">
    <title>P0325 Test - Run Condition, Engine Speed Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0325 test only runs while engine speed is below this. Stock 6400 rpm. Effect: lower = the test needs a lower engine speed to run Evidence: ledger:E0906</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32070" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x72F" flags="0x0">
    <title>P0327 / P0332 Test - Run Condition, Engine Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0327 / P0332 test only runs while engine speed is above this. Stock 1800 rpm. Effect: raise = the test needs a higher engine speed to run Evidence: ledger:E0906</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32072" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x730" flags="0x0">
    <title>P0116 Test - Startup Coolant Pass Limit</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. At or below this startup coolant temperature the P0116 test reports a pass at once and skips its warm-up checks (the startup coolant high limit is still checked first). Above it the warm-up checks run. Stock 15 degC. Effect: raise = more cold starts pass P0116 without the warm-up checks Evidence: ledger:E0906, ledger:E0912</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32E8C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x731" flags="0x0">
    <title>P0522 / P0523 Test - Run Condition, System Voltage Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0522 / P0523 test only runs while system voltage is at or above this. Stock 11 V. Effect: raise = the test needs a higher system voltage to run Evidence: ledger:E0906</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33EBA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x732" flags="0x0">
    <title>P0326 Test - Run Condition, Manifold Pressure Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0326 test only runs while manifold pressure is at or above this. Stock 55 kPa. Effect: raise = the test needs a higher manifold pressure to run Evidence: ledger:E0906</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35EFE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x733" flags="0x0">
    <title>P1380 / P1381 Test - Run Condition, Vehicle Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P1380 / P1381 test only runs while vehicle speed is at or above this. Stock 5 km/h. Effect: raise = the test needs a higher vehicle speed to run Evidence: ledger:E0906</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36146" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x734" flags="0x0">
    <title>P0563 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0563 reports a pass once this count is reached. The count goes up by one each time the test runs. Stock 6. Effect: raise = P0563 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x203E2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x735" flags="0x0">
    <title>P0562 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0562 sets once this count is reached. The count goes up by one each time the test runs with its condition met. Stock 6. Effect: raise = P0562 needs more samples before it sets Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x203EA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x736" flags="0x0">
    <title>P0562 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0562 reports a pass once this count is reached. The count goes up by one each time the test runs. Stock 6. Effect: raise = P0562 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x203EC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x737" flags="0x0">
    <title>P0856 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0856 reports a pass once this count is reached. The count goes up by one each time the test runs. Stock 30. Effect: raise = P0856 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x20406" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x738" flags="0x0">
    <title>P0014 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0014 reports a pass once this count is reached. The count goes up by one each time the test runs. Stock 150. Effect: raise = P0014 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32E82" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x739" flags="0x0">
    <title>P0117 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0117 reports a pass once this count is reached. The count goes up by one each time the test runs with its condition met. Stock 100. Effect: raise = P0117 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32F66" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x73A" flags="0x0">
    <title>P1114 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1114 reports a pass once this count is reached. The count goes up by one each time the test runs with its condition met. Stock 2000. Effect: raise = P1114 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32F68" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x73B" flags="0x0">
    <title>P0118 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0118 reports a pass once this count is reached. The count goes up by one each time the test runs. Stock 100. Effect: raise = P0118 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32F72" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x73C" flags="0x0">
    <title>P1115 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1115 reports a pass once this count is reached. The count goes up by one each time the test runs. Stock 2000. Effect: raise = P1115 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32F74" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x73D" flags="0x0">
    <title>P0011 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0011 reports a pass once this count is reached. The count goes up by one each time the test runs. Stock 150. Effect: raise = P0011 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33496" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x73E" flags="0x0">
    <title>P0442 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0442 reports a pass once this count is reached. The count goes up by one each time the test runs. Stock 6. Effect: raise = P0442 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334AE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x73F" flags="0x0">
    <title>P0451 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0451 reports a pass once this count is reached. The count goes up by one each time the test runs. Stock 6. Effect: raise = P0451 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x334BA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x740" flags="0x0">
    <title>P0453 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0453 reports a pass once this count is reached. The count goes up by one each time the test runs. Stock 100. Effect: raise = P0453 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FB4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x741" flags="0x0">
    <title>P0452 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0452 sets once this count is reached. The count goes up by one each time the test runs with its condition met. Stock 80. Effect: raise = P0452 needs more samples before it sets Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FB6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x742" flags="0x0">
    <title>P0452 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0452 reports a pass once this count is reached. The count goes up by one each time the test runs. Stock 100. Effect: raise = P0452 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FB8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x743" flags="0x0">
    <title>P2027 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P2027 reports a pass once this count is reached. The count goes up by one each time the test runs with its condition met. Stock 100. Effect: raise = P2027 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x356F4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x744" flags="0x0">
    <title>P2026 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P2026 reports a pass once this count is reached. The count goes up by one each time the test runs. Stock 100. Effect: raise = P2026 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x356F8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x745" flags="0x0">
    <title>P0113 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0113 reports a pass once this count is reached. The count goes up by one each time the test runs with its condition met. Stock 100. Effect: raise = P0113 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C88" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x746" flags="0x0">
    <title>P1111 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1111 reports a pass once this count is reached. The count goes up by one each time the test runs with its condition met. Stock 2000. Effect: raise = P1111 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C8A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x747" flags="0x0">
    <title>P0326 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0326 reports a pass once this count is reached. The count goes up by one each time the test runs. Stock 80. Effect: raise = P0326 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35EFA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x748" flags="0x0">
    <title>P1380 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1380 reports a pass once this count is reached. The count goes up by one each time the test runs. Stock 50. Effect: raise = P1380 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3614A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x749" flags="0x0">
    <title>P1381 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1381 reports a pass once this count is reached. The count goes up by one each time the test runs. Stock 50. Effect: raise = P1381 needs more samples before it passes Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36150" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x74A" flags="0x0">
    <title>P2610 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P2610 sets once this count is reached. The count goes up by one each time the test runs. Stock 3. Effect: raise = P2610 needs more samples before it sets Evidence: ledger:E0907</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x36DA2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x74B" flags="0x0">
    <title>P0742 Test - Run Condition, Net Engine Torque Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0742 test (TCC stuck on) only runs while net engine torque is at or below this: above it the PCM clears the P0742 enable. Stock 525 Nm. This value does not gate P0741 or P1887. Effect: lower = the P0742 test needs a lower net engine torque to run Evidence: ledger:E0908, ledger:E0912</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F6FC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>Nm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x74C" flags="0x0">
    <title>P0742 Fail - TCC Slip Window Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Low end of the P0742 fail slip window: while the P0742 test runs, TCC slip from this up to the window high bound (inclusive) counts toward a fail. Stock -1000 rpm. Effect: raise = less slip range counts toward a P0742 fail Evidence: ledger:E0908, ledger:E0912</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F70A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>-4096.000000</min>
    <max>4095.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x74D" flags="0x0">
    <title>P0621 Fail - Time, Engine Running</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0621 (generator lamp control circuit) engine-running check: P0621 sets once the check has run with the engine running and its condition met for this long. Stock 15 s. Effect: raise = the engine-running check takes longer to set P0621 Evidence: ledger:E0909, ledger:E0958</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x202EC" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x74E" flags="0x0">
    <title>P0563 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0563 sets once this count is reached. The count goes up by one each time the test runs with its condition met. Stock 6. Effect: raise = P0563 needs more samples before it sets Evidence: ledger:E0909</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x203E0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x74F" flags="0x0">
    <title>P250A Pass - Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P250A reports a pass once the test has run with its condition met for this long. Stock 30 s. Effect: raise = P250A takes longer to pass Evidence: ledger:E0909, ledger:E0958</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x22D9E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x750" flags="0x0">
    <title>P0068 Fail - Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0068 sets once its fault condition has been present without a break for this long. Stock 0.19 s. Effect: raise = the fault must last longer before P0068 sets Evidence: ledger:E0909, ledger:E1041</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x23586" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x751" flags="0x0">
    <title>P0014 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0014 sets once this count is reached. The count goes up by one each time the test runs with its condition met. Stock 135. Effect: raise = P0014 needs more samples before it sets Evidence: ledger:E0909</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x32E80" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x752" flags="0x0">
    <title>P0520 Fail - Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0520 sets once its fault has been present for this long. Stock 5 s. Effect: raise = the fault must last longer before P0520 sets Evidence: ledger:E0909, ledger:E1041</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x33EB8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x753" flags="0x0">
    <title>P0336 Pass - Window Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0336 (P0386 / P1372 in the other cam modes) reports a pass when a test window of this length ends without the fail count being reached. Stock 25 s. Effect: raise = each test window is longer Evidence: ledger:E0909, ledger:E1041</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34464" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x754" flags="0x0">
    <title>P0453 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0453 sets once this count is reached. The count goes up by one each time the test runs with its condition met. Stock 80. Effect: raise = P0453 needs more samples before it sets Evidence: ledger:E0909</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x34FB2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x755" flags="0x0">
    <title>P0462 Fail - Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0462 (fuel level sensor circuit low) sets once the sender has read below its low threshold for this long without returning to the normal range. Stock 60 s. Effect: raise = P0462 takes longer to set Evidence: ledger:E0909, ledger:E0957</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35BFE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x756" flags="0x0">
    <title>P0112 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0112 reports a pass once this count is reached. The count goes up by one each time the test runs with its condition met. Stock 100. Effect: raise = P0112 needs more samples before it passes Evidence: ledger:E0909</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C80" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x757" flags="0x0">
    <title>P1112 Pass - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1112 reports a pass once this count is reached. The count goes up by one each time the test runs with its condition met. Stock 2000. Effect: raise = P1112 needs more samples before it passes Evidence: ledger:E0909</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C82" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x758" flags="0x0">
    <title>P0326 Fail - Sample Count</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0326 sets once this count is reached. The count goes up by one each time the test runs with its condition met. Stock 40. Effect: raise = P0326 needs more samples before it sets Evidence: ledger:E0909</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35EF8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x759" flags="0x0">
    <title>P0101 / P0106 / P0121 / P1101 Test - Run Condition, Engine Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0101 / P0106 / P0121 / P1101 tests only run while engine speed is at or above this. Stock 400 rpm. Effect: raise = the test needs a higher engine speed to run Evidence: ledger:E0909</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35D14" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x75A" flags="0x0">
    <title>P0135 / P0141 Check - Fail Samples</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. O2 heater check (P0135 upstream, P0141 downstream): the code sets once more than this many samples in a test are outside the allowed range. Stock 45. Effect: raise = more out of range samples are needed to set a heater code Evidence: ledger:E0909, ledger:E0996</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3435C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>samples</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x75B" flags="0x0">
    <title>P0742 Test - Run Condition, Engine Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The P0742 test only runs while engine speed is at or above this. Stock 750 rpm. Effect: raise = the test needs a higher engine speed to run Evidence: ledger:E0909</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F712" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x75C" flags="0x0">
    <title>P0622 Fail - Time, Engine Stopped</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0622 (generator field control circuit) key-on, engine-stopped check: P0622 sets once the check has run with engine speed at 0 and the field signal at or below its limit for this long. Stock 5 s. Effect: raise = the engine-stopped check takes longer to set P0622 Evidence: ledger:E0913, ledger:E0958</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x202E2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x75D" flags="0x0">
    <title>P0622 Fail - Time, Engine Running</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0622 (generator field control circuit) engine-running check: P0622 sets once the check has run with the engine running and the field signal at or above its limit for this long. Stock 30 s. Effect: raise = the engine-running check takes longer to set P0622 Evidence: ledger:E0913, ledger:E0958</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x202E4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x75E" flags="0x0">
    <title>P0705 Fail - Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0705 (transmission range sensor circuit) sets once the transmission range switch inputs have read an invalid combination for this long. Stock 60 s. Effect: raise = P0705 takes longer to set Evidence: ledger:E0960</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F8C8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x75F" flags="0x0">
    <title>P0705 Pass - Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0705 (transmission range sensor circuit) reports a pass once the transmission range switch inputs have read a valid range for this long. Stock 5 s. Effect: raise = P0705 takes longer to report a pass Evidence: ledger:E0960</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F8CA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x760" flags="0x0">
    <title>P1825 Fail - Time (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1825 (internal mode switch invalid range) sets once the transmission range switch inputs have read an invalid combination for this long. This check is switched off in the stock calibration, so the value has no effect. Stock 60 s. Effect: no effect on the stock calibration Evidence: ledger:E0960</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F966" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x761" flags="0x0">
    <title>P1825 Pass - Time (inactive)</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P1825 (internal mode switch invalid range) reports a pass once the transmission range switch inputs have read a valid range for this long. This check is switched off in the stock calibration, so the value has no effect. Stock 5 s. Effect: no effect on the stock calibration Evidence: ledger:E0960</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F968" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>3276.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x762" flags="0x0">
    <title>Fuel Trim Monitor Enable - Coolant Floor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The fuel trim monitor (P0171 system too lean, P0172 system too rich) only runs its checks while coolant temperature is above this. Stock -35 C. Narrowing the window makes the monitor run less often. Effect: raise = the monitor needs a warmer engine to run Evidence: ledger:E0971</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A64" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x763" flags="0x0">
    <title>Fuel Trim Monitor Enable - Coolant Ceiling</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The fuel trim monitor (P0171 system too lean, P0172 system too rich) only runs its checks while coolant temperature is below this. Stock 125 C. Narrowing the window makes the monitor run less often. Effect: lower = the monitor stops at a lower coolant temperature Evidence: ledger:E0971</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A62" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x764" flags="0x0">
    <title>Fuel Trim Monitor Enable - Airflow Floor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The fuel trim monitor (P0171 system too lean, P0172 system too rich) only runs its checks while mass airflow is above this. Stock 1 g/s. Narrowing the window makes the monitor run less often. Effect: raise = the monitor needs more airflow to run Evidence: ledger:E0971</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A28" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x765" flags="0x0">
    <title>Fuel Trim Monitor Enable - Airflow Ceiling</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The fuel trim monitor (P0171 system too lean, P0172 system too rich) only runs its checks while mass airflow is below this. Stock 511 g/s (no limit in practice). Narrowing the window makes the monitor run less often. Effect: lower = the monitor stops at a lower airflow Evidence: ledger:E0971</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A26" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x766" flags="0x0">
    <title>Fuel Trim Monitor Enable - Intake Air Temperature Ceiling</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The fuel trim monitor (P0171 system too lean, P0172 system too rich) only runs its checks while intake air temperature is below this. Stock 145 C (no limit in practice). Narrowing the window makes the monitor run less often. Effect: lower = the monitor stops at a lower intake air temperature Evidence: ledger:E0971</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A74" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x767" flags="0x0">
    <title>Fuel Trim Monitor Enable - Vehicle Speed Ceiling</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The fuel trim monitor (P0171 system too lean, P0172 system too rich) only runs its checks while vehicle speed is below this. Stock 132 km/h. Narrowing the window makes the monitor run less often. Effect: lower = the monitor stops at a lower speed Evidence: ledger:E0971</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A8A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x768" flags="0x0">
    <title>Fuel Trim Monitor Stage Enable - Airflow Floor</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. One of the fuel trim monitor&#x27;s (P0171 system too lean, P0172 system too rich) conditions for running its test stages: mass airflow must be above this. Stock 2 g/s. Narrowing the window makes the monitor run less often. Effect: raise = the monitor&#x27;s stages need more airflow to run Evidence: ledger:E0971</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A2C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x769" flags="0x0">
    <title>Fuel Trim Monitor Stage Enable - Airflow Ceiling</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. One of the fuel trim monitor&#x27;s (P0171 system too lean, P0172 system too rich) conditions for running its test stages: mass airflow must be below this. Stock 511 g/s (no limit in practice). Narrowing the window makes the monitor run less often. Effect: lower = the monitor&#x27;s stages stop at a lower airflow Evidence: ledger:E0971</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35A2A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x76A" flags="0x0">
    <title>Transmission Diagnostics Enable - Engine Speed Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Most transmission diagnostics (fluid temperature sensor, turbine speed, pressure switch, TCC and gear ratio tests) only run once engine speed has stayed at or above this (and at or below the high limit) for the engine run time below. Stock 450 rpm. Effect: raise = transmission diagnostics need a higher engine speed to run Evidence: ledger:E0976</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F98C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x76B" flags="0x0">
    <title>Transmission Diagnostics Enable - Engine Speed High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Most transmission diagnostics (fluid temperature sensor, turbine speed, pressure switch, TCC and gear ratio tests) only run once engine speed has stayed at or below this (and at or above the low limit) for the engine run time below. Stock 6200 rpm. Effect: lower = transmission diagnostics stop at a lower engine speed Evidence: ledger:E0976</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F98E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x76C" flags="0x0">
    <title>Transmission Diagnostics Enable - Engine Run Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Most transmission diagnostics (fluid temperature sensor, turbine speed, pressure switch, TCC and gear ratio tests) only run once engine speed has stayed inside its enable range for this long. Stock 7.0 s. Effect: raise = transmission diagnostics start later after the engine starts Evidence: ledger:E0976</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F98A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x76D" flags="0x0">
    <title>Transmission Diagnostics Enable - Output Speed Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Most transmission diagnostics (fluid temperature sensor, turbine speed, pressure switch, TCC and gear ratio tests) only run once transmission output speed has stayed at or below this for the time below. Stock 200 km/h. Effect: lower = transmission diagnostics stop at a lower speed Evidence: ledger:E0976</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F992" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x76E" flags="0x0">
    <title>Transmission Diagnostics Enable - Output Speed Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Most transmission diagnostics (fluid temperature sensor, turbine speed, pressure switch, TCC and gear ratio tests) only run once transmission output speed has stayed at or below its maximum for this long. Stock 5.0 s. Effect: raise = transmission diagnostics start later Evidence: ledger:E0976</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F990" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x76F" flags="0x0">
    <title>Transmission Diagnostics Enable - System Voltage Low</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Most transmission diagnostics (fluid temperature sensor, turbine speed, pressure switch, TCC and gear ratio tests) only run while system voltage is at or above this. Stock 8.0 V. Effect: raise = transmission diagnostics need a higher voltage to run Evidence: ledger:E0977</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F988" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x770" flags="0x0">
    <title>Transmission Diagnostics Enable - System Voltage High</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Most transmission diagnostics (fluid temperature sensor, turbine speed, pressure switch, TCC and gear ratio tests) only run while system voltage is at or below this. Stock 18.0 V. Effect: lower = transmission diagnostics stop at a lower voltage Evidence: ledger:E0977</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F986" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x771" flags="0x0">
    <title>Ignition On Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The PCM treats the ignition as switched on once system voltage has been above this on two updates in a row; the engine start logic and many diagnostics wait for it. Stock 6.0 V. Effect: raise = the PCM needs more voltage before it treats the key as on (too high can stop the engine starting) Evidence: ledger:E0978</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x203F6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x772" flags="0x0">
    <title>Ignition Off Voltage</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Once the ignition is treated as on, the PCM treats it as off again when system voltage drops to or below this. Stock 2.0 V. Effect: raise = the PCM treats a voltage dip as key off sooner Evidence: ledger:E0978</description>
    <CATEGORYMEM index="0" category="11" />
    <EMBEDDEDDATA mmedaddress="0x203F4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x773" flags="0x0">
    <title>P0711 - Start Values Capture Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0711 (transmission fluid temperature sensor range / performance): the fluid and coolant temperatures &#x27;at engine start&#x27; that the stuck-sensor checks compare against keep updating until the engine has run this long. Stock 35 s. Effect: raise = the start values are taken later after the engine starts Evidence: ledger:E0911, ledger:E0979</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F842" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>409.593750</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/160"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x774" flags="0x0">
    <title>P0711 - Pass Temperature Change</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0711 (transmission fluid temperature sensor range / performance): the check counts toward a pass once the fluid temperature has moved at least this far from its start value. Stock 2.5 C. Effect: raise = the fluid temperature must change more before the check passes Evidence: ledger:E0911, ledger:E0979</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F828" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x775" flags="0x0">
    <title>P0711 - Pass Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. P0711 (transmission fluid temperature sensor range / performance): the check reports a pass once the fluid temperature has stayed at least the pass change away from its start value for this long. Stock 5 s. Effect: raise = the check takes longer to pass Evidence: ledger:E0911, ledger:E0979</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x3F83F" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>12.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x776" flags="0x0">
    <title>Fourth Gear Diagnostic, Output Speed Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Minimum transmission output shaft speed required for this fourth-gear transmission diagnostic monitor to arm. Stock 250 rpm. Effect: raise = the diagnostic needs a higher output speed Evidence: ledger:E0981</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F93A" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>rpm</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>8191.875000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x777" flags="0x0">
    <title>Fourth Gear Diagnostic, Throttle High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper bound of the transmission throttle window required for this fourth-gear transmission diagnostic monitor to arm. Stock 100 %. Effect: lower = the diagnostic stops at a lower throttle Evidence: ledger:E0981</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F93C" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>%</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>100.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/655.35"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x778" flags="0x0">
    <title>Fourth Gear Diagnostic, Speed Ratio Low Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Lower bound of the transmission input / output speed ratio window required for this fourth-gear transmission diagnostic monitor to arm. Stock 0.60. Effect: raise = the diagnostic needs a higher speed ratio Evidence: ledger:E0981</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F946" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x779" flags="0x0">
    <title>Fourth Gear Diagnostic, Speed Ratio High Bound</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Upper bound of the transmission input / output speed ratio window required for this fourth-gear transmission diagnostic monitor to arm. Stock 1.58. Effect: lower = the diagnostic stops at a lower speed ratio Evidence: ledger:E0981</description>
    <CATEGORYMEM index="0" category="3" />
    <EMBEDDEDDATA mmedaddress="0x3F948" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>ratio</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>7.999878</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/8192"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x77A" flags="0x0">
    <title>IAT Sensor High Test (P0113) Enable - Coolant Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The intake air temperature sensor circuit-high checks (P0113, P1111) only run while coolant temperature is at or above this. Stock 50 C. Effect: raise = the check needs a warmer engine to run Evidence: ledger:E0983</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C8E" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x77B" flags="0x0">
    <title>IAT Sensor High Test (P0113) Enable - Airflow Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The intake air temperature sensor circuit-high checks (P0113, P1111) only run while mass airflow is below this. Stock 12 g/s. Effect: lower = the check only runs at lower airflow Evidence: ledger:E0983</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C90" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>g/s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x77C" flags="0x0">
    <title>IAT Sensor High Test (P0113) Enable - Vehicle Speed Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The intake air temperature sensor circuit-high checks (P0113, P1111) only run while vehicle speed is below this. Stock 1.6 km/h (stopped). Effect: raise = the check also runs while moving slowly Evidence: ledger:E0983</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C92" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x77D" flags="0x0">
    <title>IAT Sensor Low Test (P0112) Enable - Coolant Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The intake air temperature sensor circuit-low checks (P0112, P1112) only run while coolant temperature is below this. Stock 110 C. Effect: lower = the check stops at a lower coolant temperature Evidence: ledger:E0983</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C94" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x77E" flags="0x0">
    <title>IAT Sensor Low Test (P0112) Enable - Vehicle Speed Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The intake air temperature sensor circuit-low checks (P0112, P1112) only run while vehicle speed is at or above this. Stock 40.2 km/h. Effect: raise = the check needs a higher speed to run Evidence: ledger:E0983</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C96" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x77F" flags="0x0">
    <title>Catalyst Monitor Enable - Barometric Pressure Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: only arms while barometric pressure is above this. Stock 68 kPa. Effect: lower = the test can arm at higher altitude Evidence: ledger:E0984, ledger:E0998</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322EE" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>kPa</units>
    <decimalpl>3</decimalpl>
    <min>0.000000</min>
    <max>255.996094</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/256"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x780" flags="0x0">
    <title>Catalyst Monitor Enable - Coolant Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: only arms while coolant temperature is at or above this. Stock 69 C. Effect: lower = the test can arm on a cooler engine Evidence: ledger:E0984, ledger:E0998</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322F0" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x781" flags="0x0">
    <title>Catalyst Monitor Enable - Coolant Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: only arms while coolant temperature is at or below this. Stock 125 C. Effect: raise = the test can arm on a hotter engine Evidence: ledger:E0984, ledger:E0998</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322F2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x782" flags="0x0">
    <title>Catalyst Monitor Enable - System Voltage Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. Catalyst monitor (P0420) idle test: only arms while system voltage is above this. Stock 9.0 V. Effect: raise = the test needs a higher voltage to arm Evidence: ledger:E0984, ledger:E0998</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x322F4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x783" flags="0x0">
    <title>Idle Speed Diagnostic Enable - Coolant Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The idle speed diagnostic (P0506 idle rpm lower than expected, P0507 higher than expected) only runs while coolant temperature is at or above this. Stock -7 C. Effect: raise = the diagnostic needs a warmer engine to run Evidence: ledger:E0985</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35CF2" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x784" flags="0x0">
    <title>Idle Speed Diagnostic Enable - Engine Run Time Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The idle speed diagnostic (P0506 idle rpm lower than expected, P0507 higher than expected) only runs while the engine has run at least this long since start. Stock 100 s. Effect: raise = the diagnostic starts later after a start Evidence: ledger:E0985</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35CF4" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>0</decimalpl>
    <min>0.000000</min>
    <max>65535.000000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x785" flags="0x0">
    <title>Idle Speed Diagnostic Enable - Intake Air Temperature Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The idle speed diagnostic (P0506 idle rpm lower than expected, P0507 higher than expected) only runs while intake air temperature is at or above this. Stock -7 C. Effect: raise = the diagnostic needs warmer intake air to run Evidence: ledger:E0985</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35CF6" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>degC</units>
    <decimalpl>2</decimalpl>
    <min>-256.000000</min>
    <max>255.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x786" flags="0x0">
    <title>Idle Speed Diagnostic Enable - System Voltage Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The idle speed diagnostic (P0506 idle rpm lower than expected, P0507 higher than expected) only runs while system voltage is at or below this. Stock 18.0 V. Effect: lower = the diagnostic stops at a lower voltage Evidence: ledger:E0985</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35CF8" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x787" flags="0x0">
    <title>Idle Speed Diagnostic Enable - System Voltage Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The idle speed diagnostic (P0506 idle rpm lower than expected, P0507 higher than expected) only runs while system voltage is at or above this. Stock 11.0 V. Effect: raise = the diagnostic needs a higher voltage to run Evidence: ledger:E0985</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35CFA" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x788" flags="0x0">
    <title>Idle Speed Diagnostic - Arm Time</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The idle speed diagnostic (P0506, P0507) starts checking only after its enable conditions, idle mode and the speed limit have all held for this long. Stock 2.0 s. Effect: raise = the diagnostic starts checking later Evidence: ledger:E0985</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35D00" mmedelementsizebits="8" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>s</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>12.750000</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/20"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x789" flags="0x0">
    <title>Idle Speed Diagnostic Enable - Vehicle Speed Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The idle speed diagnostic (P0506 idle rpm lower than expected, P0507 higher than expected) only runs while vehicle speed is at or below this. Stock 5 km/h. Effect: raise = the diagnostic also runs while rolling faster Evidence: ledger:E0985</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35D08" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x00" />
    <units>km/h</units>
    <decimalpl>2</decimalpl>
    <min>0.000000</min>
    <max>511.992188</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/128"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x78A" flags="0x0">
    <title>Fuel Level Sensor Checks Enable - System Voltage Minimum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The fuel level sensor checks (P0461 range / performance, P0462 circuit low, P0463 circuit high) only run while system voltage is above this. Stock 11.0 V. Effect: raise = the checks need a higher voltage to run Evidence: ledger:E0986</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C04" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
  <XDFCONSTANT uniqueid="0x78B" flags="0x0">
    <title>Fuel Level Sensor Checks Enable - System Voltage Maximum</title>
    <description>Code-validated (static analysis + emulation); not drive-validated. Change in small steps and log. The fuel level sensor checks (P0461 range / performance, P0462 circuit low, P0463 circuit high) only run while system voltage is below this. Stock 18.0 V. Effect: lower = the checks stop at a lower voltage Evidence: ledger:E0986</description>
    <CATEGORYMEM index="0" category="8" />
    <EMBEDDEDDATA mmedaddress="0x35C06" mmedelementsizebits="16" mmedmajorstridebits="0" mmedminorstridebits="0" mmedtypeflags="0x01" />
    <units>V</units>
    <decimalpl>3</decimalpl>
    <min>-32.000000</min>
    <max>31.999023</max>
    <datatype>0</datatype>
    <unittype>0</unittype>
    <DALINK index="0" />
    <MATH equation="X/1024"><VAR id="X" /></MATH>
  </XDFCONSTANT>
</XDFFORMAT>