//! The statistical tables of draft-ietf-mlcodec-opus-dred-07 §2.2.3 that the decoder reads
//! (Tables 2, 4, 5, 6, 8 and 9), as the draft prints them: row `k` is the latent or state
//! coefficient, column `q` the quantizer. The dead-zone tables (3 and 7) are the encoder's and are
//! not normative (§2.2.3), so they are not here.
//!
//! The extension states the SHA-256 of these six tables serialized in a fixed order
//! (extensions/opus-dred.md §4.2); [`super::payload::tables_digest`] computes it and a test holds
//! it to the extension, so a transcription error here, or in the second implementation's own
//! copy, is caught by the digest.

/// draft-ietf-mlcodec-opus-dred-07 Table 2: scale values for latent (Q8).
pub const LATENT_SCALE: [[u8; 16]; 25] = [
    [255, 219, 191, 168, 151, 138, 135, 3, 2, 2, 1, 1, 1, 1, 1, 1],
    [255, 213, 182, 158, 139, 123, 108, 91, 83, 74, 64, 54, 44, 38, 35, 32],
    [255, 200, 156, 120, 90, 65, 46, 32, 20, 1, 2, 0, 0, 0, 0, 0],
    [255, 217, 187, 164, 148, 140, 152, 2, 2, 2, 1, 1, 1, 1, 1, 1],
    [255, 216, 185, 161, 142, 127, 110, 4, 3, 2, 2, 1, 1, 1, 1, 1],
    [255, 210, 175, 147, 126, 109, 97, 86, 79, 85, 74, 9, 3, 2, 2, 1],
    [255, 215, 183, 158, 139, 123, 108, 2, 2, 1, 1, 1, 1, 1, 0, 0],
    [255, 208, 170, 140, 117, 99, 84, 73, 62, 55, 48, 43, 38, 33, 29, 25],
    [255, 208, 171, 141, 116, 97, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [255, 208, 170, 140, 116, 97, 83, 70, 59, 51, 43, 37, 32, 27, 23, 20],
    [255, 208, 171, 141, 118, 99, 85, 73, 62, 53, 45, 34, 12, 8, 7, 6],
    [255, 213, 179, 153, 134, 119, 111, 107, 103, 96, 28, 0, 0, 0, 0, 0],
    [255, 213, 179, 153, 132, 117, 106, 97, 92, 91, 88, 10, 5, 3, 2, 2],
    [255, 207, 169, 139, 115, 97, 82, 70, 60, 52, 45, 40, 35, 31, 27, 24],
    [255, 210, 174, 146, 124, 106, 93, 81, 71, 66, 55, 15, 3, 2, 2, 1],
    [255, 218, 188, 165, 148, 134, 126, 3, 2, 2, 1, 1, 1, 1, 1, 1],
    [255, 214, 181, 155, 140, 159, 117, 2, 2, 2, 1, 1, 1, 1, 1, 0],
    [255, 210, 174, 146, 124, 107, 93, 81, 71, 66, 61, 42, 8, 1, 1, 1],
    [255, 217, 187, 163, 144, 129, 114, 4, 3, 2, 2, 1, 1, 1, 1, 1],
    [255, 212, 179, 152, 132, 116, 105, 100, 95, 104, 11, 2, 1, 1, 1, 1],
    [255, 213, 180, 154, 134, 119, 108, 103, 93, 87, 64, 11, 4, 3, 2, 2],
    [255, 211, 176, 148, 126, 109, 96, 83, 77, 81, 73, 5, 2, 1, 1, 1],
    [255, 214, 182, 156, 136, 119, 134, 3, 2, 2, 1, 1, 1, 1, 1, 1],
    [255, 199, 154, 119, 90, 66, 46, 3, 2, 2, 1, 1, 1, 1, 1, 1],
    [255, 218, 189, 167, 151, 148, 166, 3, 2, 2, 1, 1, 1, 1, 1, 1],
];

/// draft-ietf-mlcodec-opus-dred-07 Table 4: decay (r) values for latent (Q8).
pub const LATENT_DECAY: [[u8; 16]; 25] = [
    [51, 38, 28, 20, 14, 10, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [5, 3, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [248, 246, 243, 239, 234, 226, 215, 198, 170, 0, 0, 0, 0, 0, 0, 0],
    [50, 36, 25, 17, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [67, 51, 37, 26, 18, 11, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [110, 93, 76, 60, 46, 34, 26, 19, 14, 13, 6, 0, 0, 0, 0, 0],
    [61, 44, 30, 19, 12, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [193, 183, 171, 158, 144, 130, 117, 103, 89, 77, 65, 55, 44, 33, 23, 16],
    [73, 52, 33, 17, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [228, 222, 216, 208, 199, 190, 180, 168, 155, 143, 129, 116, 101, 84, 70, 56],
    [168, 153, 136, 119, 101, 85, 69, 55, 41, 30, 20, 8, 0, 0, 0, 0],
    [87, 70, 54, 41, 30, 23, 18, 14, 10, 4, 0, 0, 0, 0, 0, 0],
    [92, 77, 64, 53, 45, 37, 28, 19, 11, 5, 0, 0, 0, 0, 0, 0],
    [197, 187, 175, 162, 149, 136, 123, 111, 99, 89, 80, 72, 63, 51, 40, 31],
    [125, 105, 86, 67, 51, 37, 27, 18, 12, 10, 5, 0, 0, 0, 0, 0],
    [51, 37, 25, 16, 10, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [35, 23, 15, 10, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [131, 114, 96, 79, 64, 50, 39, 28, 20, 16, 11, 1, 0, 0, 0, 0],
    [67, 52, 38, 27, 19, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [95, 76, 58, 43, 31, 21, 15, 12, 8, 3, 0, 0, 0, 0, 0, 0],
    [79, 65, 49, 35, 24, 16, 10, 5, 3, 1, 0, 0, 0, 0, 0, 0],
    [118, 100, 82, 65, 51, 38, 28, 19, 14, 12, 4, 0, 0, 0, 0, 0],
    [55, 39, 25, 16, 9, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [156, 138, 119, 99, 77, 49, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [43, 31, 23, 16, 13, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
];

/// draft-ietf-mlcodec-opus-dred-07 Table 5: P(0) values for latent (Q8).
pub const LATENT_P0: [[u8; 16]; 25] = [
    [171, 190, 207, 221, 233, 243, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255],
    [251, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
    [4, 5, 6, 8, 11, 15, 21, 31, 48, 255, 255, 255, 255, 255, 255, 255],
    [158, 178, 198, 216, 232, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
    [146, 165, 183, 200, 215, 230, 243, 255, 255, 255, 255, 255, 255, 255, 255, 255],
    [115, 130, 145, 161, 176, 190, 203, 215, 226, 239, 248, 255, 255, 255, 255, 255],
    [140, 159, 178, 197, 214, 230, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255],
    [63, 73, 83, 92, 102, 111, 121, 132, 143, 155, 166, 176, 189, 202, 214, 224],
    [120, 141, 164, 189, 216, 242, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
    [14, 17, 21, 26, 30, 36, 42, 49, 57, 65, 74, 84, 95, 109, 123, 136],
    [66, 75, 85, 97, 109, 122, 135, 150, 164, 183, 209, 242, 255, 255, 255, 255],
    [141, 157, 173, 188, 202, 215, 226, 236, 244, 252, 255, 255, 255, 255, 255, 255],
    [142, 160, 177, 193, 207, 219, 228, 237, 245, 251, 255, 255, 255, 255, 255, 255],
    [51, 59, 69, 79, 90, 101, 113, 126, 140, 153, 167, 179, 192, 205, 216, 225],
    [84, 98, 112, 128, 144, 161, 177, 194, 210, 227, 242, 255, 255, 255, 255, 255],
    [158, 177, 195, 211, 226, 238, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255],
    [174, 194, 213, 230, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
    [100, 113, 127, 141, 155, 169, 182, 195, 208, 224, 237, 251, 255, 255, 255, 255],
    [152, 170, 187, 203, 217, 230, 241, 255, 255, 255, 255, 255, 255, 255, 255, 255],
    [117, 132, 149, 165, 181, 196, 210, 225, 239, 252, 255, 255, 255, 255, 255, 255],
    [172, 191, 207, 221, 232, 240, 246, 251, 253, 255, 255, 255, 255, 255, 255, 255],
    [110, 123, 137, 152, 166, 181, 194, 208, 223, 239, 250, 255, 255, 255, 255, 255],
    [138, 158, 179, 199, 218, 235, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
    [93, 109, 129, 153, 179, 207, 233, 255, 255, 255, 255, 255, 255, 255, 255, 255],
    [169, 189, 208, 224, 238, 249, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
];

/// draft-ietf-mlcodec-opus-dred-07 Table 6: scale values for state (Q8).
pub const STATE_SCALE: [[u8; 16]; 50] = [
    [255, 208, 171, 141, 118, 100, 86, 74, 63, 54, 48, 42, 35, 30, 26, 23],
    [99, 88, 79, 71, 64, 58, 54, 54, 58, 255, 220, 175, 141, 113, 95, 92],
    [255, 210, 174, 146, 123, 106, 91, 80, 69, 61, 57, 46, 41, 41, 41, 38],
    [255, 208, 171, 142, 119, 100, 86, 73, 62, 53, 45, 39, 38, 36, 33, 31],
    [108, 96, 86, 79, 73, 69, 68, 72, 79, 114, 152, 227, 255, 225, 194, 168],
    [255, 206, 167, 136, 112, 92, 77, 65, 54, 47, 40, 35, 31, 26, 23, 20],
    [255, 206, 167, 137, 112, 93, 78, 66, 55, 47, 41, 35, 30, 26, 23, 20],
    [255, 209, 173, 145, 123, 105, 92, 81, 72, 67, 67, 64, 58, 54, 49, 45],
    [255, 212, 179, 153, 132, 115, 104, 80, 75, 68, 52, 34, 26, 23, 20, 18],
    [255, 210, 174, 146, 124, 107, 95, 78, 69, 61, 50, 43, 39, 37, 35, 34],
    [255, 210, 174, 146, 125, 107, 94, 82, 80, 78, 69, 60, 53, 47, 43, 39],
    [255, 207, 169, 139, 116, 97, 83, 71, 62, 55, 49, 44, 39, 35, 32, 30],
    [209, 190, 173, 158, 143, 131, 122, 128, 128, 180, 209, 249, 255, 228, 202, 181],
    [255, 207, 170, 140, 117, 98, 83, 71, 62, 54, 50, 47, 44, 42, 39, 37],
    [136, 123, 111, 101, 92, 87, 93, 167, 158, 202, 221, 255, 233, 198, 171, 150],
    [255, 203, 159, 124, 95, 72, 54, 41, 37, 56, 44, 34, 26, 20, 15, 12],
    [255, 212, 177, 150, 129, 113, 101, 88, 77, 65, 49, 40, 34, 29, 25, 23],
    [255, 218, 190, 167, 150, 139, 138, 157, 139, 122, 107, 95, 83, 73, 66, 63],
    [44, 40, 37, 34, 31, 29, 27, 28, 27, 255, 204, 161, 127, 99, 77, 61],
    [255, 206, 168, 137, 113, 95, 80, 68, 57, 50, 44, 39, 34, 29, 26, 23],
    [147, 134, 122, 110, 101, 94, 92, 125, 118, 151, 183, 252, 255, 224, 195, 172],
    [169, 154, 140, 128, 118, 110, 106, 105, 110, 147, 173, 225, 255, 232, 205, 179],
    [255, 198, 154, 119, 91, 69, 52, 39, 32, 35, 27, 21, 16, 13, 10, 8],
    [255, 209, 172, 143, 121, 103, 90, 79, 70, 63, 58, 53, 49, 45, 43, 43],
    [255, 205, 167, 136, 112, 93, 78, 66, 56, 49, 43, 38, 33, 30, 26, 24],
    [241, 219, 199, 181, 165, 151, 141, 134, 127, 182, 210, 255, 234, 202, 180, 170],
    [255, 211, 176, 149, 127, 110, 97, 81, 72, 60, 49, 40, 30, 26, 23, 20],
    [255, 208, 171, 142, 119, 100, 85, 73, 63, 56, 50, 45, 40, 35, 33, 32],
    [255, 207, 169, 139, 116, 98, 84, 71, 60, 52, 45, 40, 34, 28, 24, 21],
    [255, 212, 178, 151, 131, 115, 103, 86, 76, 66, 55, 41, 29, 23, 19, 17],
    [255, 218, 188, 165, 147, 135, 133, 157, 138, 119, 104, 91, 79, 68, 61, 56],
    [255, 210, 174, 145, 123, 105, 93, 84, 77, 76, 68, 60, 54, 50, 46, 42],
    [255, 207, 169, 138, 114, 95, 81, 69, 59, 52, 46, 40, 34, 30, 26, 23],
    [255, 208, 172, 144, 121, 104, 90, 77, 64, 42, 37, 27, 22, 19, 17, 15],
    [255, 227, 205, 186, 172, 161, 160, 155, 140, 117, 106, 95, 74, 72, 69, 62],
    [255, 207, 169, 138, 115, 96, 81, 68, 57, 49, 42, 36, 30, 25, 22, 18],
    [255, 209, 173, 144, 122, 103, 90, 77, 65, 55, 51, 46, 38, 33, 29, 26],
    [255, 212, 179, 153, 133, 118, 111, 111, 101, 102, 99, 90, 76, 65, 57, 50],
    [255, 217, 186, 162, 143, 130, 129, 147, 132, 120, 106, 94, 81, 72, 71, 74],
    [255, 208, 169, 139, 115, 96, 80, 65, 51, 40, 34, 30, 26, 23, 21, 18],
    [72, 66, 62, 57, 52, 47, 45, 47, 52, 255, 222, 177, 144, 116, 96, 84],
    [255, 207, 170, 140, 117, 98, 84, 72, 63, 55, 48, 42, 37, 32, 30, 29],
    [255, 211, 177, 150, 130, 114, 105, 94, 78, 54, 35, 16, 12, 11, 9, 8],
    [255, 206, 168, 137, 113, 94, 79, 66, 56, 49, 42, 37, 31, 26, 22, 19],
    [255, 205, 165, 135, 111, 91, 76, 64, 54, 46, 39, 33, 29, 24, 21, 18],
    [61, 56, 51, 47, 43, 40, 37, 36, 39, 255, 212, 166, 133, 106, 84, 68],
    [255, 210, 174, 147, 125, 108, 96, 87, 85, 81, 73, 64, 57, 51, 45, 41],
    [255, 207, 169, 139, 116, 99, 86, 73, 63, 57, 49, 42, 37, 32, 29, 27],
    [255, 205, 166, 136, 112, 92, 77, 65, 55, 47, 40, 34, 29, 25, 22, 19],
    [255, 212, 173, 140, 115, 95, 80, 68, 57, 49, 41, 35, 30, 25, 21, 18],
];

/// draft-ietf-mlcodec-opus-dred-07 Table 8: decay (r) values for state (Q8).
pub const STATE_DECAY: [[u8; 16]; 50] = [
    [207, 197, 186, 174, 161, 147, 134, 121, 106, 92, 81, 66, 51, 36, 24, 14],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 64, 45, 25, 11, 3, 0],
    [141, 124, 107, 90, 74, 60, 48, 37, 26, 19, 15, 7, 3, 1, 0, 0],
    [141, 123, 104, 85, 67, 51, 37, 25, 15, 8, 4, 1, 0, 0, 0, 0],
    [2, 1, 0, 0, 0, 0, 0, 0, 0, 8, 42, 84, 95, 77, 62, 48],
    [226, 219, 211, 202, 191, 180, 168, 155, 141, 128, 114, 100, 85, 69, 55, 43],
    [226, 220, 212, 204, 195, 184, 173, 160, 147, 134, 120, 106, 91, 77, 63, 50],
    [98, 79, 60, 44, 32, 22, 16, 11, 8, 5, 1, 0, 0, 0, 0, 0],
    [103, 83, 65, 49, 38, 27, 20, 7, 3, 1, 0, 0, 0, 0, 0, 0],
    [78, 68, 61, 49, 35, 24, 16, 10, 6, 3, 2, 1, 0, 0, 0, 0],
    [79, 61, 44, 29, 18, 11, 7, 3, 2, 0, 0, 0, 0, 0, 0, 0],
    [160, 146, 132, 117, 103, 90, 79, 67, 57, 48, 39, 30, 22, 16, 11, 7],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 12, 36, 32, 20, 11, 5],
    [138, 121, 103, 86, 71, 58, 48, 41, 37, 28, 17, 10, 6, 4, 2, 1],
    [0, 0, 0, 0, 0, 0, 0, 6, 15, 42, 55, 67, 52, 37, 25, 15],
    [251, 250, 248, 246, 243, 240, 235, 228, 225, 235, 230, 223, 214, 202, 187, 169],
    [114, 97, 79, 63, 49, 35, 27, 23, 12, 5, 1, 0, 0, 0, 0, 0],
    [120, 104, 90, 79, 72, 68, 70, 82, 65, 52, 39, 28, 18, 9, 3, 1],
    [4, 2, 1, 0, 0, 0, 0, 0, 2, 192, 179, 163, 143, 121, 97, 72],
    [203, 193, 181, 167, 153, 138, 123, 107, 91, 77, 63, 51, 38, 26, 17, 11],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 28, 53, 57, 40, 28, 17],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 43, 59, 44, 31, 21],
    [232, 225, 217, 207, 195, 179, 159, 137, 120, 128, 107, 84, 61, 40, 24, 12],
    [134, 117, 101, 86, 72, 59, 48, 39, 32, 26, 20, 16, 11, 7, 3, 1],
    [192, 181, 169, 156, 143, 130, 117, 104, 92, 80, 69, 58, 48, 39, 31, 25],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 7, 16, 30, 19, 10, 4, 1],
    [111, 93, 76, 61, 47, 36, 28, 14, 11, 5, 2, 0, 0, 0, 0, 0],
    [175, 161, 145, 129, 113, 97, 82, 67, 54, 43, 34, 25, 17, 10, 6, 2],
    [223, 216, 208, 199, 189, 178, 167, 155, 142, 128, 115, 103, 86, 69, 54, 40],
    [104, 86, 69, 54, 41, 31, 23, 11, 6, 3, 0, 0, 0, 0, 0, 0],
    [136, 121, 107, 96, 87, 81, 79, 93, 76, 62, 49, 36, 24, 13, 6, 2],
    [102, 86, 72, 60, 50, 41, 35, 29, 22, 14, 1, 0, 0, 0, 0, 0],
    [201, 190, 178, 164, 149, 133, 118, 101, 85, 70, 56, 45, 31, 20, 11, 6],
    [119, 100, 81, 63, 48, 34, 23, 15, 7, 1, 0, 0, 0, 0, 0, 0],
    [88, 75, 64, 56, 54, 55, 54, 50, 36, 24, 15, 8, 2, 0, 0, 0],
    [247, 244, 242, 239, 235, 232, 227, 223, 216, 210, 203, 195, 186, 175, 163, 151],
    [114, 95, 76, 58, 42, 29, 19, 12, 5, 1, 0, 0, 0, 0, 0, 0],
    [144, 128, 112, 97, 85, 76, 70, 63, 59, 64, 61, 49, 37, 24, 14, 7],
    [94, 76, 63, 53, 48, 49, 48, 60, 46, 37, 27, 18, 9, 3, 0, 0],
    [130, 111, 92, 72, 52, 36, 22, 10, 2, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 79, 61, 40, 23, 10, 2],
    [181, 168, 153, 137, 121, 104, 88, 72, 57, 44, 32, 21, 12, 6, 2, 1],
    [103, 83, 64, 48, 35, 24, 19, 10, 4, 0, 0, 0, 0, 0, 0, 0],
    [239, 236, 231, 226, 220, 214, 207, 198, 189, 181, 170, 160, 147, 131, 115, 100],
    [246, 244, 241, 238, 234, 229, 224, 219, 212, 206, 198, 189, 180, 169, 158, 146],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 142, 122, 101, 77, 54, 33, 18],
    [73, 56, 40, 26, 15, 8, 6, 4, 2, 0, 0, 0, 0, 0, 0, 0],
    [187, 173, 158, 143, 127, 113, 101, 83, 66, 58, 44, 32, 21, 11, 5, 1],
    [232, 226, 220, 212, 204, 194, 184, 173, 161, 149, 136, 122, 108, 93, 79, 65],
    [254, 254, 253, 253, 252, 251, 251, 250, 248, 247, 246, 244, 242, 239, 236, 233],
];

/// draft-ietf-mlcodec-opus-dred-07 Table 9: P(0) values for state (Q8).
pub const STATE_P0: [[u8; 16]; 50] = [
    [27, 32, 38, 45, 53, 62, 71, 80, 91, 103, 112, 126, 142, 160, 178, 197],
    [255, 255, 255, 255, 255, 255, 255, 255, 255, 109, 128, 149, 175, 203, 230, 253],
    [68, 81, 96, 112, 128, 144, 160, 176, 192, 203, 214, 230, 244, 253, 255, 255],
    [67, 79, 94, 109, 126, 143, 160, 177, 195, 210, 225, 242, 254, 255, 255, 255],
    [253, 255, 255, 255, 255, 255, 255, 255, 255, 210, 152, 109, 100, 115, 130, 145],
    [19, 23, 26, 30, 35, 41, 49, 57, 66, 75, 85, 96, 109, 123, 137, 151],
    [29, 35, 40, 46, 52, 59, 65, 73, 81, 89, 98, 109, 119, 130, 141, 152],
    [100, 116, 134, 154, 174, 193, 210, 225, 238, 249, 254, 255, 255, 255, 255, 255],
    [94, 110, 128, 147, 168, 187, 202, 213, 230, 247, 255, 255, 255, 255, 255, 255],
    [152, 169, 188, 206, 221, 232, 240, 246, 250, 253, 254, 255, 255, 255, 255, 255],
    [115, 131, 151, 170, 190, 209, 225, 241, 252, 255, 255, 255, 255, 255, 255, 255],
    [82, 96, 111, 127, 142, 157, 171, 185, 198, 207, 217, 226, 233, 240, 245, 249],
    [255, 255, 255, 255, 255, 255, 255, 255, 255, 235, 201, 160, 166, 185, 204, 221],
    [79, 94, 110, 127, 145, 163, 179, 197, 214, 228, 238, 246, 250, 252, 254, 255],
    [255, 255, 255, 255, 255, 255, 255, 230, 194, 153, 138, 125, 141, 159, 176, 194],
    [2, 3, 4, 5, 6, 8, 11, 14, 16, 11, 13, 17, 22, 29, 37, 48],
    [98, 112, 126, 141, 154, 165, 173, 180, 200, 219, 237, 254, 255, 255, 255, 255],
    [81, 93, 104, 114, 120, 124, 122, 111, 127, 141, 156, 171, 189, 209, 227, 244],
    [251, 254, 255, 255, 255, 255, 255, 255, 253, 34, 42, 52, 65, 80, 99, 120],
    [53, 62, 68, 76, 84, 93, 104, 114, 124, 136, 147, 160, 174, 189, 203, 215],
    [255, 255, 255, 255, 255, 255, 255, 255, 255, 208, 171, 140, 135, 154, 172, 189],
    [255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 214, 151, 134, 150, 167, 183],
    [16, 20, 25, 32, 40, 50, 64, 82, 97, 86, 105, 129, 157, 186, 214, 237],
    [99, 114, 129, 145, 160, 174, 188, 201, 212, 220, 227, 236, 243, 249, 253, 255],
    [64, 75, 87, 100, 113, 126, 139, 152, 164, 176, 187, 198, 208, 217, 225, 231],
    [255, 255, 255, 255, 255, 255, 255, 255, 255, 212, 193, 169, 187, 207, 226, 243],
    [88, 103, 121, 139, 158, 174, 189, 198, 217, 236, 250, 255, 255, 255, 255, 255],
    [47, 57, 69, 81, 94, 108, 123, 138, 153, 170, 185, 198, 213, 227, 238, 248],
    [17, 21, 25, 30, 36, 42, 49, 57, 66, 75, 85, 94, 107, 123, 139, 155],
    [106, 120, 136, 151, 166, 179, 189, 204, 221, 238, 253, 255, 255, 255, 255, 255],
    [70, 80, 90, 99, 107, 112, 113, 102, 116, 130, 144, 160, 178, 198, 217, 234],
    [122, 138, 155, 172, 187, 202, 214, 225, 233, 240, 245, 250, 253, 255, 255, 255],
    [29, 35, 43, 51, 61, 71, 82, 95, 108, 122, 136, 149, 167, 185, 202, 218],
    [81, 96, 112, 129, 146, 163, 179, 194, 215, 242, 255, 255, 255, 255, 255, 255],
    [107, 120, 129, 136, 139, 138, 138, 143, 160, 178, 195, 212, 233, 254, 255, 255],
    [5, 6, 7, 9, 11, 13, 15, 17, 21, 24, 28, 32, 38, 44, 52, 59],
    [85, 100, 117, 134, 153, 170, 186, 200, 219, 238, 252, 255, 255, 255, 255, 255],
    [64, 75, 87, 98, 109, 117, 122, 129, 133, 128, 132, 143, 159, 178, 196, 215],
    [106, 117, 130, 139, 145, 144, 145, 132, 148, 158, 173, 189, 207, 228, 248, 255],
    [74, 87, 103, 121, 140, 160, 180, 206, 235, 255, 255, 255, 255, 255, 255, 255],
    [255, 255, 255, 255, 255, 255, 255, 255, 255, 97, 114, 131, 154, 180, 206, 232],
    [58, 68, 79, 90, 101, 113, 125, 138, 151, 165, 177, 192, 209, 223, 236, 246],
    [99, 111, 129, 147, 164, 180, 189, 205, 223, 246, 255, 255, 255, 255, 255, 255],
    [8, 10, 13, 15, 19, 22, 26, 31, 36, 41, 47, 54, 62, 73, 84, 96],
    [5, 6, 8, 9, 11, 14, 16, 19, 23, 27, 31, 36, 42, 48, 55, 62],
    [255, 255, 255, 255, 255, 255, 255, 255, 255, 66, 79, 95, 115, 139, 165, 193],
    [120, 137, 155, 175, 195, 212, 228, 243, 253, 255, 255, 255, 255, 255, 255, 255],
    [37, 45, 55, 65, 76, 86, 95, 110, 126, 134, 150, 165, 182, 202, 222, 240],
    [13, 16, 19, 23, 28, 33, 39, 45, 53, 61, 69, 79, 90, 102, 114, 127],
    [1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 6, 7, 9, 10, 12],
];
