                 | (buffer & 0x00000f) << 12
       return (value, 3)
 
-    case (1, 0): // 4-byte sequence, [ CU3 CU2 CU1 CU0 ].
+    case (1, 0): // 4-byte sequence, buffer: [ CU3 CU2 CU1 CU0 ].
       // Disallow xxxx xxxx  xxxx xxxx  xx00 xxxx  xxxx x000 (<= 16 bits case).
       if _slowPath(buffer & 0x00003007 == 0x00000000) { return (nil, 1) }
       // If xxxx xxxx  xxxx xxxx  xxxx xxxx  xxxx x1xx.

    let bit1 = (lut1 >> index) & 1

    switch (bit1, bit0) {
    case (0, 0): // 2-byte sequence, [ XXX XXX CU1 CU0 ].
      // Require 10xx xxxx  110x xxxx.
      if _slowPath(buffer & 0xc0e0 != 0x80c0) { return (nil, 1) }
      // Disallow xxxx xxxx  xxx0 000x (<= 7 bits case).

                | (buffer & 0x001f) << 6
      return (value, 2)

    case (0, 1): // 3-byte sequence, buffer: [ … CU2 CU1 CU0 ].
      // Disallow xxxx xxxx  xx0x xxxx  xxxx 0000 (<= 11 bits case).
      if _slowPath(buffer & 0x00200f == 0x000000) { return (nil, 1) }
      // Disallow xxxx xxxx  xx1x xxxx  xxxx 1101 (surrogate code points).
