#!/usr/bin/perl

#
# Extract Color information for the DEC color standard 092.
#

#
# First, some color routines.
#

#
# Most stuff dealing with paint colors yields a "most natural result" in HSV.
# Here, we convert HSV to RGB commonly used for rendering.
sub hue2rgb {
    local($p, $q, $t) = @_;
#warn "hue2: $p $q $t\n";
    $t += 1 if $t < 0;
    $t -= 1 if $t > 1;
die if $t < 0;
die if $t > 1;
    if ($t < 1/6) {
        $p =  $p + ($q - $p) * 6 * $t;
    } elsif ($t < 1/2) {
        $p =  $q;
    } elsif ($t < 2/3) {
        $p =  $p + ($q - $p) * (2/3 - $t) * 6;
    }
#warn "hue2: $p\n";
    return int($p*255 + 0.5);
}
sub hsv2rgb {
    local($h, $sv, $v) = @_;
    local($l) = $v * (1 - $sv/2);
    local($s) = 0;
    local($r, $g, $b);

    $s = ($v-$l) / (($l < 1-$l)? $l: 1-$l) if $l*($l-1);
#warn "hsv2rgb $h, $s, $l\n";
    $h /= 360;
# BUGBUG: Do something better with oversaturated colors.
    $s = 1 if $s > 1;
    if ($s == 0) {
        $r = $g = $b = int($l*255+0.5); # achromatic
    } else {
        local($q) = $l < 0.5 ? $l * (1 + $s) : $l + $s - $l * $s;
        local($p) = 2 * $l - $q;
        $r = &hue2rgb($p, $q, $h + 1/3);
        $g = &hue2rgb($p, $q, $h);
        $b = &hue2rgb($p, $q, $h - 1/3);
    }
    return($r, $g, $b);
}

#
# A table of known MUN colors, taken from http://www.andrewwerth.com/color/.
# Essentially, Munsell realsRGB.xls.
%munsell = (
  "10B1/2", 0x0f1e2a,
  "10B2/2", 0x25333e,
  "10B2/4", 0x0f354a,
  "10B3/2", 0x3a4b56,
  "10B3/4", 0x264c64,
  "10B4/2", 0x54636e,
  "10B4/4", 0x42657b,
  "10B4/6", 0x2a6788,
  "10B5/2", 0x6e7d87,
  "10B5/4", 0x5d7f94,
  "10B5/6", 0x4881a1,
  "10B5/8", 0x2383af,
  "10B6/2", 0x8897a0,
  "10B6/4", 0x789aad,
  "10B6/6", 0x639cbc,
  "10B6/8", 0x479ec9,
  "10B7/10", 0x35bbf4,
  "10B7/2", 0xa3b2ba,
  "10B7/4", 0x92b4c8,
  "10B7/6", 0x7eb7d6,
  "10B7/8", 0x63b9e4,
  "10B8/2", 0xbeccd4,
  "10B8/4", 0xabcfe4,
  "10B8/6", 0x95d2f3,
  "10B8/8", 0x75d5ff,
  "10B9/2", 0xd8e8f0,
  "10B9/4", 0xc0ecff,
  "10BG1/2", 0x0a2024,
  "10BG2/2", 0x213538,
  "10BG3/2", 0x354c50,
  "10BG3/4", 0x0d5058,
  "10BG4/2", 0x4d6668,
  "10BG4/4", 0x2e6a70,
  "10BG5/2", 0x668082,
  "10BG5/4", 0x4b8489,
  "10BG5/6", 0x1a8891,
  "10BG6/2", 0x7f9a9b,
  "10BG6/4", 0x649fa3,
  "10BG6/6", 0x3ca3aa,
  "10BG7/2", 0x99b5b6,
  "10BG7/4", 0x7ebabc,
  "10BG7/6", 0x5fbec3,
  "10BG7/8", 0x1dc2ca,
  "10BG8/2", 0xb3d0d0,
  "10BG8/4", 0x97d5d6,
  "10BG8/6", 0x76dadd,
  "10BG8/8", 0x42dee4,
  "10BG9/2", 0xcdeceb,
  "10BG9/4", 0xaef2f2,
  "10BG9/6", 0x87f7f9,
  "10G1/2", 0x0f201c,
  "10G2/2", 0x243530,
  "10G2/4", 0x07392f,
  "10G3/2", 0x384d47,
  "10G3/4", 0x1b5145,
  "10G4/2", 0x4f665f,
  "10G4/4", 0x356b5d,
  "10G5/2", 0x678078,
  "10G5/4", 0x4f8576,
  "10G5/6", 0x2f8974,
  "10G6/2", 0x809b92,
  "10G6/4", 0x66a08f,
  "10G6/6", 0x4aa58d,
  "10G6/8", 0x0ba98b,
  "10G7/2", 0x99b6ac,
  "10G7/4", 0x82bba9,
  "10G7/6", 0x67c0a6,
  "10G7/8", 0x40c4a4,
  "10G8/10", 0x14e4bb,
  "10G8/2", 0xb2d1c6,
  "10G8/4", 0x9bd7c2,
  "10G8/6", 0x7edcc0,
  "10G8/8", 0x5ce0bd,
  "10G9/10", 0x33ffd4,
  "10G9/2", 0xcbede0,
  "10G9/4", 0xb2f3dd,
  "10G9/6", 0x92f9d9,
  "10G9/8", 0x6cfed6,
  "10GY1/2", 0x141f17,
  "10GY2/2", 0x29342a,
  "10GY2/4", 0x1c3820,
  "10GY2/6", 0x033a16,
  "10GY3/2", 0x3e4c3f,
  "10GY3/4", 0x315033,
  "10GY3/6", 0x205326,
  "10GY4/2", 0x566555,
  "10GY4/4", 0x496948,
  "10GY4/6", 0x386d39,
  "10GY4/8", 0x227029,
  "10GY5/10", 0x298e30,
  "10GY5/2", 0x6f806e,
  "10GY5/4", 0x628460,
  "10GY5/6", 0x548751,
  "10GY5/8", 0x428b41,
  "10GY6/10", 0x4aa948,
  "10GY6/12", 0x2eac34,
  "10GY6/2", 0x879a86,
  "10GY6/4", 0x7b9e77,
  "10GY6/6", 0x6da268,
  "10GY6/8", 0x5da658,
  "10GY7/10", 0x67c460,
  "10GY7/12", 0x51c84d,
  "10GY7/14", 0x33ca37,
  "10GY7/2", 0xa1b59f,
  "10GY7/4", 0x95b98f,
  "10GY7/6", 0x88bd81,
  "10GY7/8", 0x79c171,
  "10GY8/10", 0x81e076,
  "10GY8/12", 0x6ee463,
  "10GY8/14", 0x55e74f,
  "10GY8/16", 0x2fea36,
  "10GY8/2", 0xbbd0b7,
  "10GY8/4", 0xaed5a8,
  "10GY8/6", 0xa0d997,
  "10GY8/8", 0x92dd88,
  "10GY9/10", 0x98fe89,
  "10GY9/12", 0x86ff78,
  "10GY9/14", 0x6fff63,
  "10GY9/16", 0x50ff4b,
  "10GY9/18", 0x10ff29,
  "10GY9/2", 0xd5ecd1,
  "10GY9/4", 0xc8f1bf,
  "10GY9/6", 0xb7f6ac,
  "10GY9/8", 0xa9fa9c,
  "10P1/2", 0x271727,
  "10P1/4", 0x2e122d,
  "10P1/6", 0x330b33,
  "10P2/10", 0x590d55,
  "10P2/2", 0x3c2d3a,
  "10P2/4", 0x432841,
  "10P2/6", 0x4a2347,
  "10P2/8", 0x521a4e,
  "10P3/10", 0x76276e,
  "10P3/12", 0x7f1875,
  "10P3/2", 0x554351,
  "10P3/4", 0x5e3e59,
  "10P3/6", 0x663860,
  "10P3/8", 0x6f3067,
  "10P4/10", 0x904584,
  "10P4/12", 0x983d8b,
  "10P4/14", 0xa03291,
  "10P4/16", 0xa82398,
  "10P4/2", 0x6d5c69,
  "10P4/4", 0x775770,
  "10P4/6", 0x805277,
  "10P4/8", 0x884c7d,
  "10P5/10", 0xac609d,
  "10P5/12", 0xb559a4,
  "10P5/14", 0xbd50aa,
  "10P5/16", 0xc646b1,
  "10P5/18", 0xce39b8,
  "10P5/2", 0x857781,
  "10P5/20", 0xd724bf,
  "10P5/4", 0x8f7288,
  "10P5/6", 0x9a6d8f,
  "10P5/8", 0xa46696,
  "10P6/10", 0xc77cb6,
  "10P6/12", 0xd075bd,
  "10P6/14", 0xda6cc4,
  "10P6/16", 0xe364cb,
  "10P6/18", 0xeb5ad2,
  "10P6/2", 0x9f919b,
  "10P6/20", 0xf54bda,
  "10P6/22", 0xfe39e1,
  "10P6/24", 0xff1de8,
  "10P6/4", 0xa98da2,
  "10P6/6", 0xb487a9,
  "10P6/8", 0xbd82af,
  "10P7/10", 0xe496d1,
  "10P7/12", 0xed90d7,
  "10P7/14", 0xf888df,
  "10P7/16", 0xff7ee7,
  "10P7/18", 0xff74ee,
  "10P7/2", 0xb9acb4,
  "10P7/20", 0xff68f6,
  "10P7/22", 0xff58ff,
  "10P7/4", 0xc4a7bb,
  "10P7/6", 0xcfa2c2,
  "10P7/8", 0xda9cc9,
  "10P8/10", 0xffb0ec,
  "10P8/12", 0xffa9f4,
  "10P8/14", 0xffa0fd,
  "10P8/2", 0xd2c7ce,
  "10P8/4", 0xdec2d5,
  "10P8/6", 0xeabddd,
  "10P8/8", 0xf7b6e5,
  "10P9/2", 0xede3e9,
  "10P9/4", 0xfcddf1,
  "10P9/6", 0xffd7f9,
  "10PB1/10", 0x29064f,
  "10PB1/2", 0x1f1a2b,
  "10PB1/4", 0x211735,
  "10PB1/6", 0x23143e,
  "10PB1/8", 0x250f46,
  "10PB2/10", 0x3a216a,
  "10PB2/12", 0x3d1b73,
  "10PB2/14", 0x41127c,
  "10PB2/2", 0x332f3f,
  "10PB2/4", 0x342d4b,
  "10PB2/6", 0x362a55,
  "10PB2/8", 0x382660,
  "10PB3/10", 0x4f3a87,
  "10PB3/12", 0x513691,
  "10PB3/14", 0x54309c,
  "10PB3/16", 0x5828a6,
  "10PB3/18", 0x5b1faf,
  "10PB3/2", 0x4a4658,
  "10PB3/20", 0x5f10b8,
  "10PB3/4", 0x4a4465,
  "10PB3/6", 0x4c4170,
  "10PB3/8", 0x4d3e7b,
  "10PB4/10", 0x6456a0,
  "10PB4/12", 0x6652ac,
  "10PB4/14", 0x674eb7,
  "10PB4/16", 0x6a49c1,
  "10PB4/18", 0x6d43cc,
  "10PB4/2", 0x625f70,
  "10PB4/20", 0x713cd8,
  "10PB4/22", 0x7434e0,
  "10PB4/24", 0x782aea,
  "10PB4/26", 0x7c17f4,
  "10PB4/4", 0x625d7c,
  "10PB4/6", 0x635b88,
  "10PB4/8", 0x645894,
  "10PB5/10", 0x7c70ba,
  "10PB5/12", 0x7d6dc7,
  "10PB5/14", 0x7e6ad4,
  "10PB5/16", 0x7f66e0,
  "10PB5/18", 0x8162eb,
  "10PB5/2", 0x7b7988,
  "10PB5/20", 0x835df7,
  "10PB5/22", 0x8756ff,
  "10PB5/4", 0x7b7894,
  "10PB5/6", 0x7c75a2,
  "10PB5/8", 0x7c73af,
  "10PB6/10", 0x948cd5,
  "10PB6/12", 0x9489e4,
  "10PB6/14", 0x9586f2,
  "10PB6/16", 0x9681ff,
  "10PB6/2", 0x9594a1,
  "10PB6/4", 0x9592ae,
  "10PB6/6", 0x9490bc,
  "10PB6/8", 0x948ec8,
  "10PB7/10", 0xada6f5,
  "10PB7/12", 0xada3ff,
  "10PB7/2", 0xafaeba,
  "10PB7/4", 0xaeadc9,
  "10PB7/6", 0xaeabd7,
  "10PB7/8", 0xada9e5,
  "10PB8/2", 0xcac9d4,
  "10PB8/4", 0xc9c8e3,
  "10PB8/6", 0xc8c5f4,
  "10PB8/8", 0xc7c3ff,
  "10PB9/2", 0xe5e4ef,
  "10PB9/4", 0xe3e3ff,
  "10R1/2", 0x2e1617,
  "10R1/4", 0x380e12,
  "10R2/2", 0x422c2a,
  "10R2/4", 0x4e2622,
  "10R2/6", 0x581f1a,
  "10R2/8", 0x621312,
  "10R3/10", 0x892211,
  "10R3/2", 0x5b433e,
  "10R3/4", 0x693d34,
  "10R3/6", 0x753629,
  "10R3/8", 0x802d1e,
  "10R4/10", 0xa64124,
  "10R4/12", 0xaf3812,
  "10R4/2", 0x745c56,
  "10R4/4", 0x84564a,
  "10R4/6", 0x90503f,
  "10R4/8", 0x9c4932,
  "10R5/10", 0xc45c39,
  "10R5/12", 0xcf5428,
  "10R5/14", 0xd74d12,
  "10R5/2", 0x8d7670,
  "10R5/4", 0x9d7063,
  "10R5/6", 0xac6a56,
  "10R5/8", 0xb96449,
  "10R6/10", 0xe17853,
  "10R6/12", 0xec7143,
  "10R6/14", 0xf7692f,
  "10R6/16", 0xff6114,
  "10R6/2", 0xa7908a,
  "10R6/4", 0xb88b7c,
  "10R6/6", 0xc78570,
  "10R6/8", 0xd47f63,
  "10R7/10", 0xfe936d,
  "10R7/12", 0xff8c5b,
  "10R7/14", 0xff8449,
  "10R7/16", 0xff7c31,
  "10R7/2", 0xc1aba4,
  "10R7/4", 0xd3a597,
  "10R7/6", 0xe3a089,
  "10R7/8", 0xf2997b,
  "10R8/10", 0xffad83,
  "10R8/2", 0xdac6c0,
  "10R8/4", 0xefc0b0,
  "10R8/6", 0xffbaa1,
  "10R8/8", 0xffb392,
  "10R9/2", 0xf5e1db,
  "10R9/4", 0xffdac9,
  "10R9/6", 0xffd4b9,
  "10RP1/2", 0x2c1620,
  "10RP1/4", 0x350f23,
  "10RP1/6", 0x3c0325,
  "10RP2/2", 0x412c32,
  "10RP2/4", 0x4c2533,
  "10RP2/6", 0x551e34,
  "10RP2/8", 0x5f1036,
  "10RP3/10", 0x8b1742,
  "10RP3/2", 0x5b4246,
  "10RP3/4", 0x683b45,
  "10RP3/6", 0x743343,
  "10RP3/8", 0x802843,
  "10RP4/10", 0xa63b58,
  "10RP4/12", 0xb12d57,
  "10RP4/14", 0xbc1756,
  "10RP4/2", 0x735b5f,
  "10RP4/4", 0x81555c,
  "10RP4/6", 0x8e4e5a,
  "10RP4/8", 0x9b4559,
  "10RP5/10", 0xc3586e,
  "10RP5/12", 0xd04c6d,
  "10RP5/14", 0xda406c,
  "10RP5/16", 0xe62d6a,
  "10RP5/2", 0x8b7678,
  "10RP5/4", 0x9b7075,
  "10RP5/6", 0xa96973,
  "10RP5/8", 0xb76170,
  "10RP6/10", 0xde7587,
  "10RP6/12", 0xeb6b84,
  "10RP6/14", 0xf76183,
  "10RP6/16", 0xff5280,
  "10RP6/18", 0xff417f,
  "10RP6/2", 0xa49092,
  "10RP6/4", 0xb48a8f,
  "10RP6/6", 0xc4848c,
  "10RP6/8", 0xd07d89,
  "10RP7/10", 0xfc909f,
  "10RP7/12", 0xff859c,
  "10RP7/14", 0xff7b9a,
  "10RP7/16", 0xff6e97,
  "10RP7/2", 0xbeabac,
  "10RP7/4", 0xcea5a9,
  "10RP7/6", 0xde9fa6,
  "10RP7/8", 0xee97a2,
  "10RP8/10", 0xffa9b8,
  "10RP8/2", 0xd7c6c8,
  "10RP8/4", 0xeac0c3,
  "10RP8/6", 0xfbb9c0,
  "10RP8/8", 0xffb1bc,
  "10RP9/2", 0xf2e2e3,
  "10RP9/4", 0xffdbde,
  "10RP9/6", 0xffd3d9,
  "10Y1/2", 0x1e1e0c,
  "10Y2/2", 0x333222,
  "10Y2/4", 0x353304,
  "10Y3/2", 0x4a4a35,
  "10Y3/4", 0x4c4a1d,
  "10Y4/2", 0x62634b,
  "10Y4/4", 0x666430,
  "10Y4/6", 0x676411,
  "10Y5/2", 0x7e7c63,
  "10Y5/4", 0x807e48,
  "10Y5/6", 0x827e2a,
  "10Y6/2", 0x98977a,
  "10Y6/4", 0x9a9861,
  "10Y6/6", 0x9c9943,
  "10Y6/8", 0x9e991d,
  "10Y7/2", 0xb3b193,
  "10Y7/4", 0xb5b279,
  "10Y7/6", 0xb7b35d,
  "10Y7/8", 0xb9b43d,
  "10Y8/10", 0xd6d02f,
  "10Y8/2", 0xceccab,
  "10Y8/4", 0xd0cd91,
  "10Y8/6", 0xd2ce75,
  "10Y8/8", 0xd4cf56,
  "10Y9/10", 0xf2ec4a,
  "10Y9/2", 0xe9e7c4,
  "10Y9/4", 0xece9a8,
  "10Y9/6", 0xeeea8c,
  "10Y9/8", 0xf0eb6c,
  "10YR1/2", 0x291a0a,
  "10YR2/2", 0x3d2f21,
  "10YR2/4", 0x452d0d,
  "10YR3/2", 0x554636,
  "10YR3/4", 0x5e4423,
  "10YR3/6", 0x644108,
  "10YR4/2", 0x6f5f4c,
  "10YR4/4", 0x7a5c36,
  "10YR4/6", 0x815a21,
  "10YR5/2", 0x897865,
  "10YR5/4", 0x94764f,
  "10YR5/6", 0x9d7337,
  "10YR5/8", 0xa4711b,
  "10YR6/10", 0xc68a10,
  "10YR6/2", 0xa3937e,
  "10YR6/4", 0xae9068,
  "10YR6/6", 0xb88e50,
  "10YR6/8", 0xc08c36,
  "10YR7/10", 0xe3a433,
  "10YR7/2", 0xbead97,
  "10YR7/4", 0xcaab80,
  "10YR7/6", 0xd4a969,
  "10YR7/8", 0xdca650,
  "10YR8/10", 0xffbf4d,
  "10YR8/12", 0xffbd28,
  "10YR8/2", 0xd8c8b1,
  "10YR8/4", 0xe4c69a,
  "10YR8/6", 0xefc482,
  "10YR8/8", 0xf8c168,
  "10YR9/2", 0xf4e3ca,
  "10YR9/4", 0xffe1b0,
  "10YR9/6", 0xffdf98,
  "10YR9/8", 0xffdd7e,
  "2.5B1/2", 0x0a2025,
  "2.5B2/2", 0x213439,
  "2.5B3/2", 0x354c52,
  "2.5B3/4", 0x0e505c,
  "2.5B4/2", 0x4d656a,
  "2.5B4/4", 0x306974,
  "2.5B5/2", 0x677f83,
  "2.5B5/4", 0x4d838d,
  "2.5B5/6", 0x208796,
  "2.5B6/2", 0x809a9d,
  "2.5B6/4", 0x679ea6,
  "2.5B6/6", 0x40a2b0,
  "2.5B7/2", 0x9ab4b7,
  "2.5B7/4", 0x80b9c0,
  "2.5B7/6", 0x62bdc9,
  "2.5B7/8", 0x28c0d3,
  "2.5B8/2", 0xb5cfd2,
  "2.5B8/4", 0x99d4db,
  "2.5B8/6", 0x78d9e4,
  "2.5B8/8", 0x45ddee,
  "2.5B9/2", 0xcfebed,
  "2.5B9/4", 0xb0f1f8,
  "2.5BG1/2", 0x0e201e,
  "2.5BG2/2", 0x233532,
  "2.5BG2/4", 0x003833,
  "2.5BG3/2", 0x374d49,
  "2.5BG3/4", 0x17514a,
  "2.5BG4/2", 0x4e6661,
  "2.5BG4/4", 0x316b62,
  "2.5BG5/2", 0x66807a,
  "2.5BG5/4", 0x4d857a,
  "2.5BG5/6", 0x2a897a,
  "2.5BG6/2", 0x7f9b94,
  "2.5BG6/4", 0x64a093,
  "2.5BG6/6", 0x46a593,
  "2.5BG7/2", 0x98b6ad,
  "2.5BG7/4", 0x80bbad,
  "2.5BG7/6", 0x64bfac,
  "2.5BG7/8", 0x36c4ac,
  "2.5BG8/2", 0xb1d1c8,
  "2.5BG8/4", 0x98d7c6,
  "2.5BG8/6", 0x7cdbc6,
  "2.5BG8/8", 0x55e0c5,
  "2.5BG9/10", 0x0fffdf,
  "2.5BG9/2", 0xcbede3,
  "2.5BG9/4", 0xb0f3e1,
  "2.5BG9/6", 0x8ef9e0,
  "2.5BG9/8", 0x64fedf,
  "2.5G1/2", 0x132018,
  "2.5G2/2", 0x27352c,
  "2.5G2/4", 0x153826,
  "2.5G3/2", 0x3c4c41,
  "2.5G3/4", 0x29503a,
  "2.5G3/6", 0x065433,
  "2.5G4/2", 0x536659,
  "2.5G4/4", 0x406a50,
  "2.5G4/6", 0x246e48,
  "2.5G5/2", 0x6b8071,
  "2.5G5/4", 0x5a8568,
  "2.5G5/6", 0x45895f,
  "2.5G5/8", 0x228c56,
  "2.5G6/10", 0x14ab64,
  "2.5G6/2", 0x849b8a,
  "2.5G6/4", 0x72a080,
  "2.5G6/6", 0x5fa476,
  "2.5G6/8", 0x45a86d,
  "2.5G7/10", 0x43c77a,
  "2.5G7/2", 0x9db6a3,
  "2.5G7/4", 0x8cba99,
  "2.5G7/6", 0x7abf8f,
  "2.5G7/8", 0x63c385,
  "2.5G8/10", 0x62e391,
  "2.5G8/12", 0x35e786,
  "2.5G8/2", 0xb7d1bd,
  "2.5G8/4", 0xa6d6b2,
  "2.5G8/6", 0x91dba6,
  "2.5G8/8", 0x7cdf9c,
  "2.5G9/10", 0x76ffa6,
  "2.5G9/12", 0x54ff9b,
  "2.5G9/2", 0xd0edd6,
  "2.5G9/4", 0xbef2ca,
  "2.5G9/6", 0xa7f8bc,
  "2.5G9/8", 0x91fcb1,
  "2.5GY1/2", 0x1b1e0f,
  "2.5GY2/2", 0x303324,
  "2.5GY2/4", 0x2f350c,
  "2.5GY3/2", 0x474a36,
  "2.5GY3/4", 0x464c20,
  "2.5GY4/2", 0x60644c,
  "2.5GY4/4", 0x5f6534,
  "2.5GY4/6", 0x5e6717,
  "2.5GY5/2", 0x7a7d64,
  "2.5GY5/4", 0x797f4c,
  "2.5GY5/6", 0x788130,
  "2.5GY6/2", 0x94987c,
  "2.5GY6/4", 0x949a63,
  "2.5GY6/6", 0x939b48,
  "2.5GY6/8", 0x929d24,
  "2.5GY7/10", 0xacb90b,
  "2.5GY7/2", 0xafb294,
  "2.5GY7/4", 0xaeb47b,
  "2.5GY7/6", 0xaeb662,
  "2.5GY7/8", 0xadb743,
  "2.5GY8/10", 0xc7d435,
  "2.5GY8/2", 0xcbcdac,
  "2.5GY8/4", 0xcacf93,
  "2.5GY8/6", 0xc9d178,
  "2.5GY8/8", 0xc8d35c,
  "2.5GY9/10", 0xe3f04e,
  "2.5GY9/12", 0xe2f10d,
  "2.5GY9/2", 0xe6e8c5,
  "2.5GY9/4", 0xe6eba9,
  "2.5GY9/6", 0xe5ed8e,
  "2.5GY9/8", 0xe4ee6f,
  "2.5P1/2", 0x22192a,
  "2.5P1/4", 0x261533,
  "2.5P1/6", 0x2a113a,
  "2.5P1/8", 0x2e0942,
  "2.5P2/10", 0x471c64,
  "2.5P2/12", 0x4c126c,
  "2.5P2/2", 0x362e3e,
  "2.5P2/4", 0x392b48,
  "2.5P2/6", 0x3d2851,
  "2.5P2/8", 0x42225b,
  "2.5P3/10", 0x5e3481,
  "2.5P3/12", 0x622e8a,
  "2.5P3/14", 0x672693,
  "2.5P3/16", 0x6c1a9c,
  "2.5P3/18", 0x7104a5,
  "2.5P3/2", 0x4d4557,
  "2.5P3/4", 0x514263,
  "2.5P3/6", 0x553e6d,
  "2.5P3/8", 0x593a77,
  "2.5P4/10", 0x74519a,
  "2.5P4/12", 0x784ca4,
  "2.5P4/14", 0x7d46ae,
  "2.5P4/16", 0x823fb7,
  "2.5P4/18", 0x8737c1,
  "2.5P4/2", 0x655e6f,
  "2.5P4/20", 0x8c2bcb,
  "2.5P4/22", 0x901ed3,
  "2.5P4/4", 0x685b7a,
  "2.5P4/6", 0x6c5985,
  "2.5P4/8", 0x70558f,
  "2.5P5/10", 0x8c6cb5,
  "2.5P5/12", 0x9068c0,
  "2.5P5/14", 0x9563ca,
  "2.5P5/16", 0x995dd4,
  "2.5P5/18", 0x9e57de,
  "2.5P5/2", 0x7e7987,
  "2.5P5/20", 0xa350e9,
  "2.5P5/22", 0xa847f3,
  "2.5P5/24", 0xad3bfe,
  "2.5P5/26", 0xb32cff,
  "2.5P5/4", 0x817693,
  "2.5P5/6", 0x84739f,
  "2.5P5/8", 0x886fab,
  "2.5P6/10", 0xa487d1,
  "2.5P6/12", 0xa983dc,
  "2.5P6/14", 0xad7ee8,
  "2.5P6/16", 0xb379f4,
  "2.5P6/18", 0xb773fe,
  "2.5P6/2", 0x9793a0,
  "2.5P6/4", 0x9a90ac,
  "2.5P6/6", 0x9d8eb9,
  "2.5P6/8", 0xa18ac5,
  "2.5P7/10", 0xbea1ee,
  "2.5P7/12", 0xc29dfb,
  "2.5P7/2", 0xb1aeba,
  "2.5P7/4", 0xb4abc7,
  "2.5P7/6", 0xb7a8d3,
  "2.5P7/8", 0xbaa5e0,
  "2.5P8/2", 0xccc9d3,
  "2.5P8/4", 0xcec6e2,
  "2.5P8/6", 0xd1c3f0,
  "2.5P8/8", 0xd4c0ff,
  "2.5P9/2", 0xe7e4ef,
  "2.5P9/4", 0xe9e1ff,
  "2.5PB1/2", 0x121e2a,
  "2.5PB2/2", 0x28323f,
  "2.5PB2/4", 0x19334b,
  "2.5PB3/2", 0x3d4a57,
  "2.5PB3/4", 0x2f4b65,
  "2.5PB3/6", 0x184b72,
  "2.5PB4/2", 0x57626f,
  "2.5PB4/4", 0x4a647c,
  "2.5PB4/6", 0x3a6489,
  "2.5PB4/8", 0x1c6597,
  "2.5PB5/10", 0x1c81bf,
  "2.5PB5/2", 0x717c88,
  "2.5PB5/4", 0x657e95,
  "2.5PB5/6", 0x557fa3,
  "2.5PB5/8", 0x4180b1,
  "2.5PB6/10", 0x459bda,
  "2.5PB6/2", 0x8b96a1,
  "2.5PB6/4", 0x8098ae,
  "2.5PB6/6", 0x7099bd,
  "2.5PB6/8", 0x5f9acc,
  "2.5PB7/10", 0x5eb7f8,
  "2.5PB7/2", 0xa6b1bb,
  "2.5PB7/4", 0x99b2c9,
  "2.5PB7/6", 0x8bb4d8,
  "2.5PB7/8", 0x78b5e7,
  "2.5PB8/2", 0xc1cbd5,
  "2.5PB8/4", 0xb3cde5,
  "2.5PB8/6", 0xa2cff5,
  "2.5PB9/2", 0xdce7f0,
  "2.5R1/2", 0x2d161e,
  "2.5R1/4", 0x360e1f,
  "2.5R1/6", 0x3e0020,
  "2.5R2/2", 0x422c30,
  "2.5R2/4", 0x4d252f,
  "2.5R2/6", 0x571d2e,
  "2.5R2/8", 0x620e2e,
  "2.5R3/10", 0x8d1737,
  "2.5R3/2", 0x5b4244,
  "2.5R3/4", 0x6a3b40,
  "2.5R3/6", 0x75333d,
  "2.5R3/8", 0x82283a,
  "2.5R4/10", 0xa83b4d,
  "2.5R4/12", 0xb32d4a,
  "2.5R4/14", 0xbe1547,
  "2.5R4/2", 0x735b5d,
  "2.5R4/4", 0x825558,
  "2.5R4/6", 0x904e54,
  "2.5R4/8", 0x9c4551,
  "2.5R5/10", 0xc55864,
  "2.5R5/12", 0xd24c60,
  "2.5R5/14", 0xdc405d,
  "2.5R5/16", 0xe82d5a,
  "2.5R5/2", 0x8b7677,
  "2.5R5/4", 0x9c7072,
  "2.5R5/6", 0xab696d,
  "2.5R5/8", 0xb86168,
  "2.5R6/10", 0xe1757c,
  "2.5R6/12", 0xee6b77,
  "2.5R6/14", 0xf96174,
  "2.5R6/16", 0xff526f,
  "2.5R6/18", 0xff406c,
  "2.5R6/2", 0xa59090,
  "2.5R6/4", 0xb68a8b,
  "2.5R6/6", 0xc68486,
  "2.5R6/8", 0xd37d81,
  "2.5R7/10", 0xfe8f95,
  "2.5R7/12", 0xff858f,
  "2.5R7/14", 0xff7b8a,
  "2.5R7/16", 0xff6e85,
  "2.5R7/2", 0xbfabab,
  "2.5R7/4", 0xd0a5a5,
  "2.5R7/6", 0xe09ea0,
  "2.5R7/8", 0xf0979a,
  "2.5R8/10", 0xffa9ad,
  "2.5R8/2", 0xd7c6c6,
  "2.5R8/4", 0xecc0bf,
  "2.5R8/6", 0xfdb9b9,
  "2.5R8/8", 0xffb1b3,
  "2.5R9/2", 0xf2e2e2,
  "2.5R9/4", 0xffdada,
  "2.5R9/6", 0xffd3d2,
  "2.5RP1/2", 0x291726,
  "2.5RP1/4", 0x30112b,
  "2.5RP1/6", 0x360931,
  "2.5RP2/10", 0x5f034d,
  "2.5RP2/2", 0x3e2c38,
  "2.5RP2/4", 0x46273d,
  "2.5RP2/6", 0x4e2142,
  "2.5RP2/8", 0x571648,
  "2.5RP3/10", 0x7e2263,
  "2.5RP3/12", 0x870e69,
  "2.5RP3/2", 0x57434e,
  "2.5RP3/4", 0x623d54,
  "2.5RP3/6", 0x6b3659,
  "2.5RP3/8", 0x752d5e,
  "2.5RP4/10", 0x98417a,
  "2.5RP4/12", 0xa1377f,
  "2.5RP4/14", 0xaa2a84,
  "2.5RP4/16", 0xb31489,
  "2.5RP4/2", 0x6f5c66,
  "2.5RP4/4", 0x7a576b,
  "2.5RP4/6", 0x855070,
  "2.5RP4/8", 0x8f4975,
  "2.5RP5/10", 0xb45d92,
  "2.5RP5/12", 0xbe5497,
  "2.5RP5/14", 0xc84a9c,
  "2.5RP5/16", 0xd13ea1,
  "2.5RP5/18", 0xda2ca6,
  "2.5RP5/2", 0x87777f,
  "2.5RP5/20", 0xe307ab,
  "2.5RP5/4", 0x937184,
  "2.5RP5/6", 0x9f6b89,
  "2.5RP5/8", 0xab648e,
  "2.5RP6/10", 0xcf79ab,
  "2.5RP6/12", 0xda71b0,
  "2.5RP6/14", 0xe568b5,
  "2.5RP6/16", 0xef5dba,
  "2.5RP6/18", 0xf951bf,
  "2.5RP6/2", 0xa19199,
  "2.5RP6/20", 0xff3fc4,
  "2.5RP6/22", 0xff29c9,
  "2.5RP6/4", 0xad8c9d,
  "2.5RP6/6", 0xb986a2,
  "2.5RP6/8", 0xc480a6,
  "2.5RP7/10", 0xec93c4,
  "2.5RP7/12", 0xf88cca,
  "2.5RP7/14", 0xff83ce,
  "2.5RP7/16", 0xff78d4,
  "2.5RP7/18", 0xff6bda,
  "2.5RP7/2", 0xbaacb2,
  "2.5RP7/20", 0xff5be0,
  "2.5RP7/4", 0xc7a6b6,
  "2.5RP7/6", 0xd5a0bb,
  "2.5RP7/8", 0xe19ac0,
  "2.5RP8/10", 0xffaddf,
  "2.5RP8/12", 0xffa4e4,
  "2.5RP8/14", 0xff9bea,
  "2.5RP8/2", 0xd3c7cc,
  "2.5RP8/4", 0xe2c1d1,
  "2.5RP8/6", 0xf1bbd5,
  "2.5RP8/8", 0xffb4da,
  "2.5RP9/2", 0xefe2e8,
  "2.5RP9/4", 0xffdcec,
  "2.5RP9/6", 0xffd5f1,
  "2.5Y1/2", 0x261b07,
  "2.5Y2/2", 0x3a3020,
  "2.5Y2/4", 0x412e07,
  "2.5Y3/2", 0x524734,
  "2.5Y3/4", 0x5a461f,
  "2.5Y4/2", 0x6c604a,
  "2.5Y4/4", 0x755e33,
  "2.5Y4/6", 0x7b5d1a,
  "2.5Y5/2", 0x867964,
  "2.5Y5/4", 0x8f784b,
  "2.5Y5/6", 0x977630,
  "2.5Y5/8", 0x9c750d,
  "2.5Y6/2", 0xa0947c,
  "2.5Y6/4", 0xaa9264,
  "2.5Y6/6", 0xb2914a,
  "2.5Y6/8", 0xb88f2c,
  "2.5Y7/10", 0xd9a923,
  "2.5Y7/2", 0xbbae95,
  "2.5Y7/4", 0xc5ad7d,
  "2.5Y7/6", 0xcdab63,
  "2.5Y7/8", 0xd4aa48,
  "2.5Y8/10", 0xf6c442,
  "2.5Y8/12", 0xfbc30a,
  "2.5Y8/2", 0xd6c9ae,
  "2.5Y8/4", 0xdfc896,
  "2.5Y8/6", 0xe8c77c,
  "2.5Y8/8", 0xefc561,
  "2.5Y9/10", 0xffe05a,
  "2.5Y9/12", 0xffde34,
  "2.5Y9/2", 0xf1e5c7,
  "2.5Y9/4", 0xfbe4ac,
  "2.5Y9/6", 0xffe292,
  "2.5Y9/8", 0xffe177,
  "2.5YR1/2", 0x2d1714,
  "2.5YR1/4", 0x380f0a,
  "2.5YR1/6", 0x410302,
  "2.5YR2/2", 0x412d27,
  "2.5YR2/4", 0x4d271d,
  "2.5YR2/6", 0x572111,
  "2.5YR3/2", 0x5b433b,
  "2.5YR3/4", 0x673e2f,
  "2.5YR3/6", 0x723820,
  "2.5YR3/8", 0x7b320e,
  "2.5YR4/10", 0xa0470f,
  "2.5YR4/2", 0x745c53,
  "2.5YR4/4", 0x825745,
  "2.5YR4/6", 0x8e5237,
  "2.5YR4/8", 0x984c26,
  "2.5YR5/10", 0xbf612a,
  "2.5YR5/12", 0xc75c0f,
  "2.5YR5/2", 0x8d766d,
  "2.5YR5/4", 0x9c715f,
  "2.5YR5/6", 0xaa6c4f,
  "2.5YR5/8", 0xb6663d,
  "2.5YR6/10", 0xdd7c45,
  "2.5YR6/12", 0xe6762f,
  "2.5YR6/14", 0xee710a,
  "2.5YR6/2", 0xa89086,
  "2.5YR6/4", 0xb78c78,
  "2.5YR6/6", 0xc58668,
  "2.5YR6/8", 0xd28158,
  "2.5YR7/10", 0xfa965f,
  "2.5YR7/12", 0xff9148,
  "2.5YR7/14", 0xff8b2c,
  "2.5YR7/2", 0xc1aba1,
  "2.5YR7/4", 0xd2a691,
  "2.5YR7/6", 0xe1a180,
  "2.5YR7/8", 0xef9c70,
  "2.5YR8/10", 0xffb174,
  "2.5YR8/12", 0xffab5f,
  "2.5YR8/2", 0xdbc6bd,
  "2.5YR8/4", 0xefc1aa,
  "2.5YR8/6", 0xfebc99,
  "2.5YR8/8", 0xffb687,
  "2.5YR9/2", 0xf7e1d7,
  "2.5YR9/4", 0xffdbc2,
  "2.5YR9/6", 0xffd6af,
  "5B1/2", 0x0a1f27,
  "5B2/2", 0x22343b,
  "5B3/2", 0x364c53,
  "5B3/4", 0x144f5f,
  "5B4/2", 0x4f656c,
  "5B4/4", 0x356877,
  "5B5/2", 0x697f85,
  "5B5/4", 0x518290,
  "5B5/6", 0x2d859c,
  "5B6/2", 0x83999f,
  "5B6/4", 0x6c9da9,
  "5B6/6", 0x4ba0b6,
  "5B7/2", 0x9db3b9,
  "5B7/4", 0x85b7c4,
  "5B7/6", 0x68bbcf,
  "5B7/8", 0x3cbedb,
  "5B8/2", 0xb8ced3,
  "5B8/4", 0x9ed3df,
  "5B8/6", 0x80d7eb,
  "5B8/8", 0x50dbf9,
  "5B9/2", 0xd2eaef,
  "5B9/4", 0xb4effd,
  "5BG1/2", 0x0c2020,
  "5BG2/2", 0x223534,
  "5BG3/2", 0x364d4b,
  "5BG3/4", 0x11514f,
  "5BG4/2", 0x4d6664,
  "5BG4/4", 0x2f6b67,
  "5BG5/2", 0x66807d,
  "5BG5/4", 0x4b8580,
  "5BG5/6", 0x228982,
  "5BG6/2", 0x7e9b97,
  "5BG6/4", 0x63a099,
  "5BG6/6", 0x3fa49b,
  "5BG7/2", 0x97b6b0,
  "5BG7/4", 0x7ebbb2,
  "5BG7/6", 0x61bfb4,
  "5BG7/8", 0x29c4b6,
  "5BG8/2", 0xb1d1cb,
  "5BG8/4", 0x97d6cc,
  "5BG8/6", 0x79dbcd,
  "5BG8/8", 0x4be0d0,
  "5BG9/2", 0xcbede5,
  "5BG9/4", 0xaef3e6,
  "5BG9/6", 0x8bf9e8,
  "5BG9/8", 0x5afee9,
  "5G1/2", 0x112019,
  "5G2/2", 0x26352e,
  "5G2/4", 0x113829,
  "5G3/2", 0x3a4d43,
  "5G3/4", 0x24513e,
  "5G4/2", 0x51665b,
  "5G4/4", 0x3b6b55,
  "5G4/6", 0x186f50,
  "5G5/2", 0x698074,
  "5G5/4", 0x55856e,
  "5G5/6", 0x3b8968,
  "5G6/2", 0x829b8d,
  "5G6/4", 0x6ca086,
  "5G6/6", 0x55a480,
  "5G6/8", 0x31a87b,
  "5G7/10", 0x19c88e,
  "5G7/2", 0x9bb6a7,
  "5G7/4", 0x87bba0,
  "5G7/6", 0x71bf99,
  "5G7/8", 0x54c494,
  "5G8/10", 0x43e4a6,
  "5G8/2", 0xb4d1c0,
  "5G8/4", 0xa0d6b9,
  "5G8/6", 0x87dcb2,
  "5G8/8", 0x6be0ab,
  "5G9/10", 0x59ffbd,
  "5G9/2", 0xceedda,
  "5G9/4", 0xb8f3d2,
  "5G9/6", 0x9cf9ca,
  "5G9/8", 0x7efec3,
  "5GY1/2", 0x191f12,
  "5GY2/2", 0x2e3426,
  "5GY2/4", 0x293613,
  "5GY3/2", 0x454b38,
  "5GY3/4", 0x404d25,
  "5GY3/6", 0x3b4f0b,
  "5GY4/2", 0x5d644e,
  "5GY4/4", 0x596738,
  "5GY4/6", 0x546920,
  "5GY5/2", 0x777e67,
  "5GY5/4", 0x738151,
  "5GY5/6", 0x6e8338,
  "5GY5/8", 0x6a8517,
  "5GY6/2", 0x91987e,
  "5GY6/4", 0x8d9b67,
  "5GY6/6", 0x899e50,
  "5GY6/8", 0x84a032,
  "5GY7/10", 0x9cbc27,
  "5GY7/2", 0xacb396,
  "5GY7/4", 0xa8b67f,
  "5GY7/6", 0xa4b868,
  "5GY7/8", 0xa0ba4d,
  "5GY8/10", 0xb8d844,
  "5GY8/2", 0xc7ceae,
  "5GY8/4", 0xc4d097,
  "5GY8/6", 0xc0d37e,
  "5GY8/8", 0xbcd564,
  "5GY9/10", 0xd4f457,
  "5GY9/12", 0xd0f629,
  "5GY9/2", 0xe3e9c6,
  "5GY9/4", 0xe0ecac,
  "5GY9/6", 0xdcef92,
  "5GY9/8", 0xd8f276,
  "5P1/2", 0x241829,
  "5P1/4", 0x291431,
  "5P1/6", 0x2e0e38,
  "5P1/8", 0x33043f,
  "5P2/10", 0x4e175f,
  "5P2/12", 0x540967,
  "5P2/2", 0x382e3d,
  "5P2/4", 0x3e2a46,
  "5P2/6", 0x42264d,
  "5P2/8", 0x491f57,
  "5P3/10", 0x67307b,
  "5P3/12", 0x6d2884,
  "5P3/14", 0x731d8c,
  "5P3/16", 0x790894,
  "5P3/2", 0x504456,
  "5P3/4", 0x564060,
  "5P3/6", 0x5b3c69,
  "5P3/8", 0x613772,
  "5P4/10", 0x7e4d94,
  "5P4/12", 0x84479d,
  "5P4/14", 0x8a40a6,
  "5P4/16", 0x9037af,
  "5P4/18", 0x962cb8,
  "5P4/2", 0x685e6d,
  "5P4/20", 0x9c1ac1,
  "5P4/4", 0x6d5a78,
  "5P4/6", 0x735681,
  "5P4/8", 0x78528a,
  "5P5/10", 0x9768af,
  "5P5/12", 0x9d63b9,
  "5P5/14", 0xa35dc2,
  "5P5/16", 0xa957cb,
  "5P5/18", 0xaf4fd4,
  "5P5/2", 0x807885,
  "5P5/20", 0xb546dd,
  "5P5/22", 0xbb39e7,
  "5P5/24", 0xc228f0,
  "5P5/26", 0xc801f9,
  "5P5/4", 0x867590,
  "5P5/6", 0x8c719b,
  "5P5/8", 0x926da5,
  "5P6/10", 0xb083ca,
  "5P6/12", 0xb67fd4,
  "5P6/14", 0xbc79df,
  "5P6/16", 0xc273e9,
  "5P6/18", 0xc86cf3,
  "5P6/2", 0x9a929f,
  "5P6/20", 0xcf64fe,
  "5P6/4", 0x9f8faa,
  "5P6/6", 0xa58bb5,
  "5P6/8", 0xaa88bf,
  "5P7/10", 0xca9ee7,
  "5P7/12", 0xd099f2,
  "5P7/14", 0xd794fd,
  "5P7/2", 0xb4adb9,
  "5P7/4", 0xb9aac4,
  "5P7/6", 0xbea6cf,
  "5P7/8", 0xc4a3db,
  "5P8/10", 0xe5b8ff,
  "5P8/2", 0xcdc8d2,
  "5P8/4", 0xd3c5df,
  "5P8/6", 0xd8c1ec,
  "5P8/8", 0xdfbdf9,
  "5P9/2", 0xe8e4ee,
  "5P9/4", 0xeee0fd,
  "5PB1/2", 0x161d2b,
  "5PB1/4", 0x0b1d36,
  "5PB2/2", 0x2b313f,
  "5PB2/4", 0x22324c,
  "5PB2/6", 0x113259,
  "5PB3/2", 0x414958,
  "5PB3/4", 0x384966,
  "5PB3/6", 0x2a4973,
  "5PB3/8", 0x15497f,
  "5PB4/10", 0x2062a5,
  "5PB4/2", 0x5b616f,
  "5PB4/4", 0x52627d,
  "5PB4/6", 0x47628a,
  "5PB4/8", 0x376298,
  "5PB5/10", 0x437dc0,
  "5PB5/12", 0x267dce,
  "5PB5/2", 0x757b88,
  "5PB5/4", 0x6c7c96,
  "5PB5/6", 0x627ca4,
  "5PB5/8", 0x557cb2,
  "5PB6/10", 0x6097db,
  "5PB6/12", 0x4898eb,
  "5PB6/14", 0x1798fb,
  "5PB6/2", 0x8e95a1,
  "5PB6/4", 0x8696af,
  "5PB6/6", 0x7c96be,
  "5PB6/8", 0x7097cd,
  "5PB7/10", 0x78b2f9,
  "5PB7/2", 0xa9b0bb,
  "5PB7/4", 0xa0b1c9,
  "5PB7/6", 0x95b1d8,
  "5PB7/8", 0x89b2e8,
  "5PB8/2", 0xc4cbd5,
  "5PB8/4", 0xbacce5,
  "5PB8/6", 0xadccf7,
  "5PB9/2", 0xdfe6f0,
  "5R1/2", 0x2d161b,
  "5R1/4", 0x370e1b,
  "5R2/2", 0x422c2e,
  "5R2/4", 0x4e252b,
  "5R2/6", 0x581d28,
  "5R2/8", 0x630e26,
  "5R3/10", 0x8d192b,
  "5R3/2", 0x5c4242,
  "5R3/4", 0x6a3b3c,
  "5R3/6", 0x763436,
  "5R3/8", 0x822930,
  "5R4/10", 0xa83c40,
  "5R4/12", 0xb3303a,
  "5R4/14", 0xbe1a34,
  "5R4/2", 0x745b5a,
  "5R4/4", 0x835553,
  "5R4/6", 0x914e4d,
  "5R4/8", 0x9d4646,
  "5R5/10", 0xc65857,
  "5R5/12", 0xd34d51,
  "5R5/14", 0xdd414b,
  "5R5/16", 0xe82f44,
  "5R5/18", 0xf4083d,
  "5R5/2", 0x8c7675,
  "5R5/4", 0x9d706d,
  "5R5/6", 0xac6966,
  "5R5/8", 0xb9615f,
  "5R6/10", 0xe27571,
  "5R6/12", 0xef6b6a,
  "5R6/14", 0xfb6163,
  "5R6/16", 0xff545c,
  "5R6/18", 0xff4455,
  "5R6/2", 0xa6908f,
  "5R6/4", 0xb78a87,
  "5R6/6", 0xc7847f,
  "5R6/8", 0xd47d79,
  "5R7/10", 0xff8f8a,
  "5R7/12", 0xff8682,
  "5R7/14", 0xff7c7a,
  "5R7/2", 0xc0aba9,
  "5R7/4", 0xd1a5a1,
  "5R7/6", 0xe29e99,
  "5R7/8", 0xf19792,
  "5R8/10", 0xffa9a1,
  "5R8/2", 0xd8c6c4,
  "5R8/4", 0xedc0bb,
  "5R8/6", 0xfeb9b3,
  "5R8/8", 0xffb1aa,
  "5R9/2", 0xf4e2df,
  "5R9/4", 0xffdad5,
  "5R9/6", 0xffd3cb,
  "5RP1/2", 0x2a1624,
  "5RP1/4", 0x321028,
  "5RP1/6", 0x38072d,
  "5RP2/2", 0x402c36,
  "5RP2/4", 0x492639,
  "5RP2/6", 0x51203d,
  "5RP2/8", 0x5b1442,
  "5RP3/10", 0x841d58,
  "5RP3/2", 0x58424b,
  "5RP3/4", 0x653c4e,
  "5RP3/6", 0x703451,
  "5RP3/8", 0x7a2b55,
  "5RP4/10", 0x9e3f6d,
  "5RP4/12", 0xa93270,
  "5RP4/14", 0xb22273,
  "5RP4/2", 0x715c63,
  "5RP4/4", 0x7d5665,
  "5RP4/6", 0x8a4f68,
  "5RP4/8", 0x95476a,
  "5RP5/10", 0xbc5a84,
  "5RP5/12", 0xc75087,
  "5RP5/14", 0xd24489,
  "5RP5/16", 0xdc358c,
  "5RP5/18", 0xe61c8e,
  "5RP5/2", 0x89767c,
  "5RP5/4", 0x97707e,
  "5RP5/6", 0xa46a80,
  "5RP5/8", 0xb16282,
  "5RP6/10", 0xd6779c,
  "5RP6/12", 0xe26e9f,
  "5RP6/14", 0xee64a1,
  "5RP6/16", 0xf958a4,
  "5RP6/18", 0xff49a6,
  "5RP6/2", 0xa39096,
  "5RP6/20", 0xff2faa,
  "5RP6/22", 0xff04ac,
  "5RP6/4", 0xb08b97,
  "5RP6/6", 0xbf8499,
  "5RP6/8", 0xcb7e9b,
  "5RP7/10", 0xf491b6,
  "5RP7/12", 0xff88b8,
  "5RP7/14", 0xff7eba,
  "5RP7/16", 0xff72bd,
  "5RP7/18", 0xff64c0,
  "5RP7/2", 0xbcabb0,
  "5RP7/4", 0xcaa6b1,
  "5RP7/6", 0xda9fb3,
  "5RP7/8", 0xe898b4,
  "5RP8/10", 0xffabd0,
  "5RP8/12", 0xffa0d2,
  "5RP8/2", 0xd5c7cb,
  "5RP8/4", 0xe5c1cb,
  "5RP8/6", 0xf6bacd,
  "5RP8/8", 0xffb2ce,
  "5RP9/2", 0xf0e2e6,
  "5RP9/4", 0xffdbe7,
  "5RP9/6", 0xffd4e8,
  "5Y1/2", 0x241c07,
  "5Y2/2", 0x383120,
  "5Y2/4", 0x3e3002,
  "5Y3/2", 0x504834,
  "5Y3/4", 0x55471e,
  "5Y4/2", 0x696149,
  "5Y4/4", 0x706031,
  "5Y4/6", 0x745f15,
  "5Y5/2", 0x837b62,
  "5Y5/4", 0x8a7a49,
  "5Y5/6", 0x90792b,
  "5Y6/2", 0x9d957a,
  "5Y6/4", 0xa49561,
  "5Y6/6", 0xaa9445,
  "5Y6/8", 0xaf9323,
  "5Y7/10", 0xceae0f,
  "5Y7/2", 0xb8af94,
  "5Y7/4", 0xbeaf79,
  "5Y7/6", 0xc5af5e,
  "5Y7/8", 0xcaae41,
  "5Y8/10", 0xe9c936,
  "5Y8/2", 0xd3caac,
  "5Y8/4", 0xd9ca92,
  "5Y8/6", 0xdfca77,
  "5Y8/8", 0xe4ca5a,
  "5Y9/10", 0xffe550,
  "5Y9/12", 0xffe51d,
  "5Y9/2", 0xeee6c5,
  "5Y9/4", 0xf5e6a9,
  "5Y9/6", 0xfbe68d,
  "5Y9/8", 0xffe670,
  "5YR1/2", 0x2c1810,
  "5YR2/2", 0x402d25,
  "5YR2/4", 0x4b2917,
  "5YR2/6", 0x542401,
  "5YR3/2", 0x594439,
  "5YR3/4", 0x65402a,
  "5YR3/6", 0x6e3b19,
  "5YR4/2", 0x735d50,
  "5YR4/4", 0x805840,
  "5YR4/6", 0x8a542f,
  "5YR4/8", 0x92501b,
  "5YR5/10", 0xb86619,
  "5YR5/2", 0x8c776a,
  "5YR5/4", 0x9a7359,
  "5YR5/6", 0xa66e46,
  "5YR5/8", 0xb06a32,
  "5YR6/10", 0xd68035,
  "5YR6/12", 0xdd7d15,
  "5YR6/2", 0xa79183,
  "5YR6/4", 0xb58d72,
  "5YR6/6", 0xc2895f,
  "5YR6/8", 0xcd844b,
  "5YR7/10", 0xf39b4f,
  "5YR7/12", 0xfd9734,
  "5YR7/2", 0xc1ab9e,
  "5YR7/4", 0xd0a78b,
  "5YR7/6", 0xdea378,
  "5YR7/8", 0xe99f65,
  "5YR8/10", 0xffb666,
  "5YR8/12", 0xffb24d,
  "5YR8/14", 0xffae2b,
  "5YR8/2", 0xdbc6b8,
  "5YR8/4", 0xecc2a4,
  "5YR8/6", 0xfabe91,
  "5YR8/8", 0xffba7b,
  "5YR9/2", 0xf7e2d2,
  "5YR9/4", 0xffddbb,
  "5YR9/6", 0xffd9a7,
  "7.5B1/2", 0x0c1f28,
  "7.5B2/2", 0x23343c,
  "7.5B2/4", 0x043648,
  "7.5B3/2", 0x374b55,
  "7.5B3/4", 0x1d4e62,
  "7.5B4/2", 0x51646d,
  "7.5B4/4", 0x3c677a,
  "7.5B4/6", 0x186986,
  "7.5B5/2", 0x6b7e86,
  "7.5B5/4", 0x578193,
  "7.5B5/6", 0x3b839f,
  "7.5B6/2", 0x8598a0,
  "7.5B6/4", 0x729bac,
  "7.5B6/6", 0x579eb9,
  "7.5B6/8", 0x2ea0c6,
  "7.5B7/2", 0xa0b3ba,
  "7.5B7/4", 0x8ab6c6,
  "7.5B7/6", 0x72b9d3,
  "7.5B7/8", 0x4fbce1,
  "7.5B8/2", 0xbbcdd4,
  "7.5B8/4", 0xa4d1e1,
  "7.5B8/6", 0x89d5ef,
  "7.5B8/8", 0x60d8ff,
  "7.5B9/2", 0xd6e9ef,
  "7.5B9/4", 0xbaeeff,
  "7.5BG1/2", 0x0b2022,
  "7.5BG2/2", 0x223536,
  "7.5BG3/2", 0x354d4d,
  "7.5BG3/4", 0x0d5153,
  "7.5BG4/2", 0x4c6666,
  "7.5BG4/4", 0x2e6a6b,
  "7.5BG5/2", 0x658080,
  "7.5BG5/4", 0x4b8484,
  "7.5BG5/6", 0x1b8989,
  "7.5BG6/2", 0x7e9b99,
  "7.5BG6/4", 0x62a09e,
  "7.5BG6/6", 0x3da4a3,
  "7.5BG7/2", 0x98b5b3,
  "7.5BG7/4", 0x7dbab7,
  "7.5BG7/6", 0x5fbfbb,
  "7.5BG7/8", 0x22c3c0,
  "7.5BG8/2", 0xb2d0ce,
  "7.5BG8/4", 0x97d6d1,
  "7.5BG8/6", 0x75dbd6,
  "7.5BG8/8", 0x45dfda,
  "7.5BG9/2", 0xcbece9,
  "7.5BG9/4", 0xaef2ed,
  "7.5BG9/6", 0x88f8f1,
  "7.5BG9/8", 0x4ffdf6,
  "7.5G1/2", 0x10201b,
  "7.5G2/2", 0x25352f,
  "7.5G2/4", 0x0d382c,
  "7.5G3/2", 0x394d45,
  "7.5G3/4", 0x205142,
  "7.5G4/2", 0x50665d,
  "7.5G4/4", 0x386b59,
  "7.5G4/6", 0x056f56,
  "7.5G5/2", 0x688076,
  "7.5G5/4", 0x528572,
  "7.5G5/6", 0x34896e,
  "7.5G6/2", 0x819b8f,
  "7.5G6/4", 0x69a08a,
  "7.5G6/6", 0x4fa587,
  "7.5G6/8", 0x23a883,
  "7.5G7/2", 0x9ab6a9,
  "7.5G7/4", 0x84bba4,
  "7.5G7/6", 0x6cbfa0,
  "7.5G7/8", 0x4ac49c,
  "7.5G8/10", 0x2fe4b1,
  "7.5G8/2", 0xb3d1c3,
  "7.5G8/4", 0x9dd6be,
  "7.5G8/6", 0x82dcb9,
  "7.5G8/8", 0x64e0b5,
  "7.5G9/10", 0x48ffc9,
  "7.5G9/2", 0xccedde,
  "7.5G9/4", 0xb4f3d8,
  "7.5G9/6", 0x96f9d2,
  "7.5G9/8", 0x75fecd,
  "7.5GY1/2", 0x161f15,
  "7.5GY1/4", 0x062302,
  "7.5GY2/2", 0x2b3428,
  "7.5GY2/4", 0x22371a,
  "7.5GY2/6", 0x153907,
  "7.5GY3/2", 0x414c3c,
  "7.5GY3/4", 0x384f2c,
  "7.5GY3/6", 0x2d511b,
  "7.5GY4/2", 0x596552,
  "7.5GY4/4", 0x4f6841,
  "7.5GY4/6", 0x456b2e,
  "7.5GY4/8", 0x3a6e13,
  "7.5GY5/10", 0x4a8b0a,
  "7.5GY5/2", 0x727f6a,
  "7.5GY5/4", 0x6a8259,
  "7.5GY5/6", 0x608645,
  "7.5GY5/8", 0x56882f,
  "7.5GY6/10", 0x65a62b,
  "7.5GY6/2", 0x8c9a81,
  "7.5GY6/4", 0x839d70,
  "7.5GY6/6", 0x7aa05d,
  "7.5GY6/8", 0x70a346,
  "7.5GY7/10", 0x81c146,
  "7.5GY7/12", 0x76c425,
  "7.5GY7/2", 0xa6b49b,
  "7.5GY7/4", 0x9db888,
  "7.5GY7/6", 0x95bb75,
  "7.5GY7/8", 0x8cbe60,
  "7.5GY8/10", 0x9cdd5e,
  "7.5GY8/12", 0x92e03f,
  "7.5GY8/2", 0xc0cfb3,
  "7.5GY8/4", 0xb7d39f,
  "7.5GY8/6", 0xafd78b,
  "7.5GY8/8", 0xa6da75,
  "7.5GY9/10", 0xb6fa6f,
  "7.5GY9/12", 0xacfc53,
  "7.5GY9/14", 0xa1ff2c,
  "7.5GY9/2", 0xdbebcb,
  "7.5GY9/4", 0xd2efb6,
  "7.5GY9/6", 0xc9f39f,
  "7.5GY9/8", 0xc0f688,
  "7.5P1/2", 0x261828,
  "7.5P1/4", 0x2c132f,
  "7.5P1/6", 0x310c35,
  "7.5P2/10", 0x54125a,
  "7.5P2/2", 0x3a2d3c,
  "7.5P2/4", 0x412943,
  "7.5P2/6", 0x47244a,
  "7.5P2/8", 0x4e1c53,
  "7.5P3/10", 0x6f2c75,
  "7.5P3/12", 0x76217d,
  "7.5P3/14", 0x7d0f85,
  "7.5P3/2", 0x534454,
  "7.5P3/4", 0x5a3f5c,
  "7.5P3/6", 0x613a64,
  "7.5P3/8", 0x69336d,
  "7.5P4/10", 0x88498c,
  "7.5P4/12", 0x8f4294,
  "7.5P4/14", 0x96399c,
  "7.5P4/16", 0x9e2ca5,
  "7.5P4/18", 0xa51aad,
  "7.5P4/2", 0x6b5d6b,
  "7.5P4/4", 0x725974,
  "7.5P4/6", 0x7a547c,
  "7.5P4/8", 0x814f84,
  "7.5P5/10", 0xa364a6,
  "7.5P5/12", 0xaa5dae,
  "7.5P5/14", 0xb256b6,
  "7.5P5/16", 0xb94ebe,
  "7.5P5/18", 0xc043c7,
  "7.5P5/2", 0x837783,
  "7.5P5/20", 0xc836cf,
  "7.5P5/22", 0xd020d8,
  "7.5P5/4", 0x8b738c,
  "7.5P5/6", 0x946e95,
  "7.5P5/8", 0x9c699e,
  "7.5P6/10", 0xbe7fc0,
  "7.5P6/12", 0xc679c8,
  "7.5P6/14", 0xce72d1,
  "7.5P6/16", 0xd66bd9,
  "7.5P6/18", 0xdd62e2,
  "7.5P6/2", 0x9d919d,
  "7.5P6/20", 0xe656ec,
  "7.5P6/22", 0xef47f5,
  "7.5P6/24", 0xf734fe,
  "7.5P6/4", 0xa58ea5,
  "7.5P6/6", 0xae89af,
  "7.5P6/8", 0xb684b7,
  "7.5P7/10", 0xda99db,
  "7.5P7/12", 0xe293e3,
  "7.5P7/14", 0xeb8ced,
  "7.5P7/16", 0xf485f6,
  "7.5P7/18", 0xfd7cff,
  "7.5P7/2", 0xb7acb6,
  "7.5P7/4", 0xc0a8bf,
  "7.5P7/6", 0xc8a4c8,
  "7.5P7/8", 0xd19fd1,
  "7.5P8/10", 0xf8b3f7,
  "7.5P8/12", 0xffacff,
  "7.5P8/2", 0xd0c7d0,
  "7.5P8/4", 0xdbc3d9,
  "7.5P8/6", 0xe3bfe2,
  "7.5P8/8", 0xeeb8ed,
  "7.5P9/2", 0xece3eb,
  "7.5P9/4", 0xf8def6,
  "7.5P9/6", 0xffd8ff,
  "7.5PB1/10", 0x190e54,
  "7.5PB1/12", 0x1c055c,
  "7.5PB1/2", 0x1b1b2b,
  "7.5PB1/4", 0x181a36,
  "7.5PB1/6", 0x161741,
  "7.5PB1/8", 0x17134b,
  "7.5PB2/10", 0x242870,
  "7.5PB2/12", 0x25247a,
  "7.5PB2/14", 0x261e84,
  "7.5PB2/16", 0x29168d,
  "7.5PB2/18", 0x2c0897,
  "7.5PB2/2", 0x2f3040,
  "7.5PB2/4", 0x2c2f4c,
  "7.5PB2/6", 0x292d58,
  "7.5PB2/8", 0x262b64,
  "7.5PB3/10", 0x36418b,
  "7.5PB3/12", 0x333e97,
  "7.5PB3/14", 0x323aa3,
  "7.5PB3/16", 0x3235af,
  "7.5PB3/18", 0x332fb9,
  "7.5PB3/2", 0x464758,
  "7.5PB3/20", 0x3529c2,
  "7.5PB3/22", 0x381fcd,
  "7.5PB3/24", 0x3b0ed7,
  "7.5PB3/4", 0x424666,
  "7.5PB3/6", 0x3e4573,
  "7.5PB3/8", 0x3a437f,
  "7.5PB4/10", 0x4d5ba4,
  "7.5PB4/12", 0x485ab1,
  "7.5PB4/14", 0x4457bd,
  "7.5PB4/16", 0x4054ca,
  "7.5PB4/18", 0x3e50d7,
  "7.5PB4/2", 0x5e6070,
  "7.5PB4/20", 0x3d4ae5,
  "7.5PB4/22", 0x3e46ee,
  "7.5PB4/24", 0x3f3ffa,
  "7.5PB4/26", 0x4137ff,
  "7.5PB4/4", 0x5b5f7d,
  "7.5PB4/6", 0x575e8a,
  "7.5PB4/8", 0x535d97,
  "7.5PB5/10", 0x6776be,
  "7.5PB5/12", 0x6175cc,
  "7.5PB5/14", 0x5a73da,
  "7.5PB5/16", 0x5371e8,
  "7.5PB5/18", 0x4d6df7,
  "7.5PB5/2", 0x787a88,
  "7.5PB5/20", 0x486aff,
  "7.5PB5/4", 0x747a95,
  "7.5PB5/6", 0x7079a4,
  "7.5PB5/8", 0x6c77b1,
  "7.5PB6/10", 0x8091d9,
  "7.5PB6/12", 0x798fe9,
  "7.5PB6/14", 0x728ef9,
  "7.5PB6/2", 0x9294a1,
  "7.5PB6/4", 0x8e94af,
  "7.5PB6/6", 0x8a93be,
  "7.5PB6/8", 0x8592cb,
  "7.5PB7/10", 0x98abf9,
  "7.5PB7/2", 0xacafbb,
  "7.5PB7/4", 0xa8aec9,
  "7.5PB7/6", 0xa3aed9,
  "7.5PB7/8", 0x9eade8,
  "7.5PB8/2", 0xc7cad5,
  "7.5PB8/4", 0xc2c9e5,
  "7.5PB8/6", 0xbcc9f6,
  "7.5PB9/2", 0xe2e5f0,
  "7.5R1/2", 0x2e1619,
  "7.5R1/4", 0x380e17,
  "7.5R2/2", 0x422c2c,
  "7.5R2/4", 0x4e2527,
  "7.5R2/6", 0x581e22,
  "7.5R2/8", 0x63101d,
  "7.5R3/10", 0x8c1d1e,
  "7.5R3/2", 0x5c4240,
  "7.5R3/4", 0x6a3c37,
  "7.5R3/6", 0x763530,
  "7.5R3/8", 0x812b27,
  "7.5R4/10", 0xa83e35,
  "7.5R4/12", 0xb2322b,
  "7.5R4/14", 0xbc2221,
  "7.5R4/2", 0x745b59,
  "7.5R4/4", 0x845550,
  "7.5R4/6", 0x914e47,
  "7.5R4/8", 0x9d463d,
  "7.5R5/10", 0xc6594b,
  "7.5R5/12", 0xd24f40,
  "7.5R5/14", 0xdc4436,
  "7.5R5/16", 0xe7352a,
  "7.5R5/18", 0xf0201e,
  "7.5R5/2", 0x8c7673,
  "7.5R5/4", 0x9d7069,
  "7.5R5/6", 0xac695f,
  "7.5R5/8", 0xba6255,
  "7.5R6/10", 0xe37564,
  "7.5R6/12", 0xef6d59,
  "7.5R6/14", 0xfa644d,
  "7.5R6/16", 0xff5841,
  "7.5R6/18", 0xff4b33,
  "7.5R6/2", 0xa7908c,
  "7.5R6/4", 0xb88a82,
  "7.5R6/6", 0xc78479,
  "7.5R6/8", 0xd57d6f,
  "7.5R7/10", 0xff917c,
  "7.5R7/12", 0xff8870,
  "7.5R7/14", 0xff7f64,
  "7.5R7/16", 0xff7457,
  "7.5R7/2", 0xc1aba7,
  "7.5R7/4", 0xd3a59c,
  "7.5R7/6", 0xe29f92,
  "7.5R7/8", 0xf39887,
  "7.5R8/10", 0xffaa92,
  "7.5R8/2", 0xd9c6c2,
  "7.5R8/4", 0xefbfb6,
  "7.5R8/6", 0xffb9ab,
  "7.5R8/8", 0xffb29e,
  "7.5R9/2", 0xf5e1dd,
  "7.5R9/4", 0xffdacf,
  "7.5R9/6", 0xffd3c2,
  "7.5RP1/2", 0x2b1622,
  "7.5RP1/4", 0x330f26,
  "7.5RP1/6", 0x3b0429,
  "7.5RP2/2", 0x402c34,
  "7.5RP2/4", 0x4a2636,
  "7.5RP2/6", 0x531f39,
  "7.5RP2/8", 0x5d123c,
  "7.5RP3/10", 0x881a4e,
  "7.5RP3/2", 0x5a4249,
  "7.5RP3/4", 0x673b4a,
  "7.5RP3/6", 0x72344b,
  "7.5RP3/8", 0x7e294c,
  "7.5RP4/10", 0xa33d62,
  "7.5RP4/12", 0xad3063,
  "7.5RP4/14", 0xb81c64,
  "7.5RP4/2", 0x725b61,
  "7.5RP4/4", 0x805561,
  "7.5RP4/6", 0x8d4e61,
  "7.5RP4/8", 0x994661,
  "7.5RP5/10", 0xc05979,
  "7.5RP5/12", 0xcc4d7a,
  "7.5RP5/14", 0xd6427b,
  "7.5RP5/16", 0xe1307c,
  "7.5RP5/18", 0xeb117d,
  "7.5RP5/2", 0x8a767a,
  "7.5RP5/4", 0x997079,
  "7.5RP5/6", 0xa76979,
  "7.5RP5/8", 0xb46179,
  "7.5RP6/10", 0xdb7692,
  "7.5RP6/12", 0xe76d92,
  "7.5RP6/14", 0xf36293,
  "7.5RP6/16", 0xff5493,
  "7.5RP6/18", 0xff4494,
  "7.5RP6/2", 0xa39094,
  "7.5RP6/20", 0xff2896,
  "7.5RP6/4", 0xb28b93,
  "7.5RP6/6", 0xc28492,
  "7.5RP6/8", 0xce7e92,
  "7.5RP7/10", 0xf890ab,
  "7.5RP7/12", 0xff87ab,
  "7.5RP7/14", 0xff7cab,
  "7.5RP7/16", 0xff6fac,
  "7.5RP7/2", 0xbdabae,
  "7.5RP7/4", 0xcca6ad,
  "7.5RP7/6", 0xdc9fac,
  "7.5RP7/8", 0xeb98ac,
  "7.5RP8/10", 0xffa9c5,
  "7.5RP8/12", 0xff9fc5,
  "7.5RP8/2", 0xd6c6c9,
  "7.5RP8/4", 0xe8c0c7,
  "7.5RP8/6", 0xf9b9c6,
  "7.5RP8/8", 0xffb1c6,
  "7.5RP9/2", 0xf1e2e4,
  "7.5RP9/4", 0xffdbe2,
  "7.5RP9/6", 0xffd3e1,
  "7.5Y1/2", 0x211d09,
  "7.5Y2/2", 0x363220,
  "7.5Y2/4", 0x3a3200,
  "7.5Y3/2", 0x4d4934,
  "7.5Y3/4", 0x51491d,
  "7.5Y4/2", 0x676249,
  "7.5Y4/4", 0x6b6230,
  "7.5Y4/6", 0x6e6211,
  "7.5Y5/2", 0x817c62,
  "7.5Y5/4", 0x857c48,
  "7.5Y5/6", 0x897c29,
  "7.5Y6/2", 0x9b967a,
  "7.5Y6/4", 0x9f9660,
  "7.5Y6/6", 0xa39743,
  "7.5Y6/8", 0xa6971d,
  "7.5Y7/2", 0xb5b093,
  "7.5Y7/4", 0xbab178,
  "7.5Y7/6", 0xbeb15d,
  "7.5Y7/8", 0xc1b13d,
  "7.5Y8/10", 0xdfcd30,
  "7.5Y8/2", 0xd0cbac,
  "7.5Y8/4", 0xd5cc91,
  "7.5Y8/6", 0xd9cc75,
  "7.5Y8/8", 0xdccd56,
  "7.5Y9/10", 0xfbe94c,
  "7.5Y9/12", 0xfee90c,
  "7.5Y9/2", 0xece7c4,
  "7.5Y9/4", 0xf0e8a8,
  "7.5Y9/6", 0xf4e88c,
  "7.5Y9/8", 0xf8e86d,
  "7.5YR1/2", 0x2b190d,
  "7.5YR2/2", 0x3f2e23,
  "7.5YR2/4", 0x482b12,
  "7.5YR3/2", 0x584537,
  "7.5YR3/4", 0x624226,
  "7.5YR3/6", 0x693f11,
  "7.5YR4/2", 0x725d4e,
  "7.5YR4/4", 0x7e5a3b,
  "7.5YR4/6", 0x865728,
  "7.5YR4/8", 0x8c540e,
  "7.5YR5/2", 0x8b7768,
  "7.5YR5/4", 0x987455,
  "7.5YR5/6", 0xa3713f,
  "7.5YR5/8", 0xab6d27,
  "7.5YR6/10", 0xcf8524,
  "7.5YR6/2", 0xa69281,
  "7.5YR6/4", 0xb38e6e,
  "7.5YR6/6", 0xbe8b58,
  "7.5YR6/8", 0xc78841,
  "7.5YR7/10", 0xeca042,
  "7.5YR7/12", 0xf39d1c,
  "7.5YR7/2", 0xc0ac9b,
  "7.5YR7/4", 0xcea986,
  "7.5YR7/6", 0xdaa671,
  "7.5YR7/8", 0xe3a35b,
  "7.5YR8/10", 0xffba5a,
  "7.5YR8/12", 0xffb73c,
  "7.5YR8/2", 0xdac7b5,
  "7.5YR8/4", 0xe9c49f,
  "7.5YR8/6", 0xf6c08a,
  "7.5YR8/8", 0xffbd72,
  "7.5YR9/2", 0xf6e2ce,
  "7.5YR9/4", 0xffdfb6,
  "7.5YR9/6", 0xffdc9f,
  "7.5YR9/8", 0xffd988,
  "N0", 0x000000, # vrs
  "N1", 0x222221,
  "N2", 0x3b3a3a,
  "N3", 0x525251,
  "N4", 0x6b6c6b,
  "N5", 0x888987,
  "N6", 0xa3a2a2,
  "N7", 0xb5b6b5,
  "N8", 0xcacaca,
  "N9", 0xe9e8e7,
  "N9.5", 0xf3f2f1, # vrs
  "N10", 0xffffff, # vrs
);

sub mun2rgb {
  local($mun) = @_;
  #
  # Kludge large chroma values to the largest chroma value available.
  $mun = "5B5/6" if $mun eq "5B5/10";
  $mun = "5BG5/6" if $mun eq "5BG5/10";
  $mun = "5G5/6" if $mun eq "5G5/10";
  $mun = "5GY5/8" if $mun eq "5GY5/10";
  $mun = "5Y5/6" if $mun eq "5Y5/10";
  $mun = "7.5YR5/8" if $mun eq "7.5YR5/10";
  $mun = "10YR4/6" if $mun eq "10YR4/12";
  $mun = "10YR5/8" if $mun eq "10YR5/10";
  $mun = "10YR5/8" if $mun eq "10YR5/14";
  $mun = "10YR6/10" if $mun eq "10YR6/12";
  $mun = "7.5BG4/4" if $mun eq "7.5BG4/6";
  $mun = "5PB3/8" if $mun eq "5PB3/10";
  # Hopefully we've now got something realizable.
  die "Unknown MUN color '$mun'" unless defined $munsell{$mun};
  $mun = $munsell{$mun};
  # Now go for it.
  return ($mun>>16, 0xFF&($mun>>8), 0xFF&$mun);
}

#
# Print relevant MUNsell color charts, as a proof that the mun2rgb
# routine is working.
if (1) {
  #
  # First, the gray scale.
  #
  print "<TABLE><CAPTION>Munsell Gray Scale<BR>\n";
  print "(These should step by about 26)</CAPTION><TR>\n";
  for ($l = 0; $l <= 10; $l++) {
    ($r, $g, $b) = mun2rgb("N$l");
    $t = 255 - int(($r + $g + $b) / 3);
    $t = 255 unless $t < 64; # For most values of $v, just use white.
    print "<TD style='color:rgb($t,$t,$t); background-color:rgb($r, $g, $b)'>N$l: $r,$g,$b\n";
  }
  print "</TR></TABLE>\n";
  #
  # Next, a color scale.
  # (We choose orange, because PDP-8.)
  # 5R is red (0 degrees)
  # 10R is red-orange (1*72/4 = 18 degrees?)
  # 5YR is orange (2*72/4 = 36 degrees?)
  # 10YR is yellow-orange (3*72/4 = 54 degrees?)
  # "Correct" color for 10YR6/10 is from https://www.easyrgb.com/en/match.php
  # (Either easyrgb is too bright or we are too dark.)
  # This seems to be attributable to the hsv2hsl conversion formulae!
  #
  # Another ongoing issue is that yellow isn't 36 degrees; more like 30.
  # (Is that a problem with Munsell, or us?)
  # Munsell (easyrgb) says 10YR6/10 is hsv(38, .87, .78).
  # I think that 10YR6/10 should be is hsv(43(54?), 1.0, .6).
  # According to http://www.csgnetwork.com/csgcolorsel4.html,
  # I *do* correctly render hsv(43, 1.0, 0.6) as rgb(153,110,0)!
  # Munsell realsRGB.xls shows the answer for 10YR6/10 is rgb(198,138,16).
  # That, in turn is hsv(40, .92, .78).
  #
  print "<TABLE><CAPTION>Munsell 10YR Scale<BR>\n";
  print "(Beware unless 10YR6/10 is 198,138,16)</CAPTION><TR>\n";
  for ($ww = 10; $ww > 0; $ww--) {
    print "<TR>\n";
    for ($cc = 1; $cc <= 20; $cc++) {
      next unless defined $munsell{"10YR$ww/$cc"};
      ($r, $g, $b) = mun2rgb("10YR$ww/$cc");
      $t = 255 - int(($r + $g + $b) / 3);
      $t = 255 unless $t < 64; # For most values of $v, just use white.
      print "<TD style='color:rgb($t,$t,$t); background-color:rgb($r, $g, $b)'>10YR$ww/$cc: $r,$g,$b\n";
#     print " $h,$s,$v\n";
    }
    print "</TR>\n";
  }
  print "</TR></TABLE>\n";
}

#
# Attempt a conversion of an arbitrary CHM color.
%wRatio = (
  "A", 15/16,
  "B", 14/16,
  "C", 13/16,
  "D", 12/16,
  "E", 11/16,
  "F", 10/16,
  "G",  9/16,
  "H",  8/16,
  "I",  7/16,
  "J",  6/16,
  "K",  5/16,
  "L",  4/16,
  "M",  3/16,
  "N",  2/16,
  "O",  1/16,
  "P",  0/16,
);
sub chm2rgb {
  local($c) = @_;
  local($q, $w, $b, $h, $s, $l);
  local($r, $g);
#warn "chm2rgb $c\n";
# BUGBUG: Kludge some colors that "can't be right"
#$c = "24 PM" if $c eq "1 ML";
#$c = "9 HA" if $c eq "9 DA";
  if ($c =~ /Gr[ae]y\s*Scale\s*([A-P])/) {
    $w = $1;
    $w = $wRatio{$w};
    $w = int(255*$w);
    return ($w, $w, $w);
  }
  ($q, $w, $b) = ($1, $2, $3) if $c =~ /([\d.]+)\s*([A-P])([A-P])/;
  ($q, $w, $b) = ($1, "P", "A") if $c =~ /([\d.]+)$/;
  die "$c: color not recognised\n" unless $b =~ /[A-P]/;
  # Convert $q to a hue.
  # $q should be from 1 to 24.875.
  $q--; # Now 0 to 23.875
  # Tweak so that 1->0->yellow.
  $h = 75; # 0 => 75 degrees?
$h -= 5;
  $h -= $q * 15;
  $h += 360 if $h < 0;
  # Look up $w and $b.
#warn "w is $w, b is $b\n";
  $w = $wRatio{$w};
  $b = 15/16-$wRatio{$b};
#warn "w is $w, b is $b\n";
  $scale = 1-$w-$b;
  ($r, $g, $b) = &hsv2rgb($h, 1, 1);
  $r = $r*$scale + 255*$w;
  $g = $g*$scale + 255*$w;
  $b = $b*$scale + 255*$w;
  $r = int($r+0.5);
  $g = int($g+0.5);
  $b = int($b+0.5);
  return ($r, $g, $b);
}

#
# Print relevant CHM color charts, as a proof that the chm2rgb
# routine is working.
if (1) {
  #
  # First, the gray scale.
  #
  print "<TABLE><CAPTION>CHM Gray Scale<BR>\n";
  print "(These should step by 16)</CAPTION><TR>\n";
  foreach $l ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P") {
    ($r, $g, $b) = chm2rgb("Gray Scale $l");
    $t = 255 - int(($r + $g + $b) / 3);
    $t = 255 unless $t < 64; # For most values of $v, just use white.
    print "<TD style='color:rgb($t,$t,$t); background-color:rgb($r, $g, $b)'>$l: $r,$g,$b\n";
  }
  print "</TR></TABLE>\n";
  #
  # Now, a color chart for CHM 4.
  #
  print "<TABLE><CAPTION>CHM 4 Color Chart</CAPTION>\n";
  foreach $ww ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P") {
    print "<TR>\n";
    foreach $bb ("P", "O", "N", "M", "L", "K", "J", "I", "H", "G", "F", "E", "D", "C", "B", "A") {
      next if $wRatio{$ww} + (1-$wRatio{$bb}) >= 1;
      ($r, $g, $b) = chm2rgb("4 $ww$bb");
      $t = 255 - int(($r + $g + $b) / 3);
      $t = 255 unless $t < 64; # For most values of $v, just use white.
      print "<TD style='color:rgb($t,$t,$t); background-color:rgb($r, $g, $b)'>$4 $ww$bb: $r,$g,$b\n";
    }
    print "</TR>\n";
  }
}
#exit 1;

#
# The relevant color standard (semicolon separator):
# This bit is straight out of DEC STD 092, Table 5-1.
# s/Brite/Bright/
# s/Defuser/Diffuser/
# s/Grayscale/Gray Scale/
# s/Cabs/Cabinets/
# Color punctuation is normalized.
# "Chinese Red" and "Vermillion" moved to 10RP.
@colors = (
# "###;First Used On;Name;Reference",
  "065;Old DEC Cabinets;Silver",
  "067;Old DEC Cabinets;Blue-Gray",
  "068;General;Light Gray",
  "094;Cabinets;Lamp Black;CHM Gray Scale P",
# "095;General;Chinese Red;MUN (10YR4/12),CHM 6PC",
  "095;General;Chinese Red;MUN (10RP4/12),CHM 6PC",
  "101;End Panels;Gray;CHM Gray Scale D",
  "102;Packaging;Blue;IPI 66C 950",
  "104;Module;Bright Gold;CHM 2 PC",
  "105;LAB-COM;Gray;CHM Gray Scale G",
  "111;PDP10;Deep Peacock Blue;CHM 16 PC",
  "113;PDP8/I;Dark Luggage Tan;MUN (5YR4/8),CHM 4",
  "114;PDP10;Wedgewood Green;CHM 24.125 EC",
  "115;PDP10;Chalk Blue;CHM 16 EC",
  "116;Peripherals;Bright Olive Green;CHM 24.5 PC",
  "123;General;White;MUN (N9.5)",
  "126;PDP8/L;Russet Orange;CHM 4 NC",
  "129;PDP12;Lime Peel;CHM 24 PG",
  "130;PDP12;Bright Chartreuse;CHM 24.5 LA",
  "131;PDP15;Bright Open Blue;MUN (2.5PB5/10)",
  "135;PDP15;Bright Navy;CHM 13.5 PG",
  "136;PDP14;Amber;MUN (10YR6/10),CHM 3",
# "137;General;Vermillion;MUN (10YR5/14),CHM 6",
  "137;General;Vermillion;MUN (10RP5/14),CHM 6",
  "138;Peripheral Switch;Dark Olive Gray;CHM 1 ML",
  "139;PDP11;Bright Rose;CHM 8 NA",
  "140;PDP11;Magenta;CHM 9 PA",
  "141;PDP8/E;Amber;MUN (10YR6/12),CHM 3",
  "142;PDP8/E;Terra Cotta;CHM 5 PE",
  "144;KI10;Turquoise Green;MUN (7.5BG4/6)",
  "145;KI10;Deep Peacock Blue;CHM 16 PE",
  "146;Logic Lab;Deep Purple;CHM 11 PE",
  "147;General;Dark Gray;CHM Gray Scale L",
  "148;10 Systems;Blasi Blue;CHM 16 NC",
  "149;IDAC 11/07;Topaz;MUN (10YR5/10)",
  "150;IDAC 11/07;Clove Brown;MUN (10YR3/4)",
  "151;KI10;Light Aqua;CHM 17 LA",
  "152;PDP11/45 & 25;Alexander Grape;CHM 9 PL",
  "153;NEMA Cabinets;Gray Primer;",
  "154;DECDATA Systems;Murphy Maroon;MUN (7.5R3/8)",
  "155;PDP11;Morris Maroon;MUN (7.5R2/8)",
  "156;GT40;Crabbe Yellow;MUN (5Y7/10)",
  "157;GT40;Lenny Lime;MUN (5Y4/6)",
  "158;PDP8;Dave Brown;MUN (2.5YR3/8)",
  "159;Corporate Identity;Digital Blue;PMS Process Blue",
  "160;Medical Systems;Blue Janice;MUN (7.5PB3/12)",
  "161;ANT'S (OEM);ANT'S Orange;Customer Chip",
  "162;ANT'S (OEM);ANT'S Blue;Customer Chip",
  "163;Philips (OEM);Philibs Blue;Customer Chip",
  "164;Industrial;D.C. Blue;MUN (5PB3/10)",
  "166;W.U. (OEM);Western Union Blue;Customer Chip",
  "167;Industrial;Can-Red;I.H.C.",
  "169;General;Red Diffuser;I.H.C.",
  "170;General;Colorless Diffuser;I.H.C.",
  "171;Key Controls;Button Red;G.E. MVCL",
  "172;Dust Covers;Smokey Lexan;G.E. MVCL",
  "173;PDP8/A;Fog Diffuser;I.H.C.",
  "174;Bell Sys (OEM);Bell Gold;Customer Chip",
  "175;Bell Sys (OEM);Bell Blue;Customer Chip",
  "176;Foxboro (OEM);Light Fox Green;Customer Chip",
  "177;Foxboro (OEM);Dark Fox Green;Customer Chip",
  "178;PDP15;Blue Devlin Diffuser;I.H.C.",
  "179;General;OSHA Yellow;I.H.C.",
  "180;General;OSHA Blue;I.H.C.",
  "181;General;OSHA Green;I.H.C.",
  "182;General;OSHA Orange;I.H.C.",
  "183;General;OSHA Red;I.H.C.",
  "184;General;OSHA Magenta;CHM 9 DA",
  "185;General;Corn Gold;I.H.C.",
  "186;Data Systems;Mullen Blue;I.H.C.",
  "187;OEM;Bell Canada Gray;Customer Chip",
  "188;General;Ocular Red Diffuser;I.H.C.",
  "189;General;DEC Clear Hardcoat;I.H.C.",
  "190;PDP11/60 CAB;PREFER - RED;I.H.C.",
  "191;OEM;Bell Canada Gold;Customer Chip",
  "192;OEM;Canada Post Red;S/S Ink I.H.C.",
  "193;VT100;Digital Brown;I.H.C.",
  "195;General;Charcoal;I.H.C.",
  "196;Labels;Label Code Blue;Inks PMS 306",
  "197;Labels;Label Code Green;Inks PMS 375",
  "198;Labels;Label Code Pink;Inks PMS 191",
  "199;Labels;Label Code Purple;Inks PMS 528",
  "200;Labels;Label Code Orange;Inks PMS 151",
  "201;Labels;Label Code Yellow;Inks PMS 109",
  "202;Labels;Label Code Tan;Inks PMS 472",
  "203;Labels;Label Code Dark Orange;Inks PMS 166",
  "204;Labels;Label Code Yellow Ochre;Inks PMS 117",
  "205;Labels;Label Code Brown;Inks PMS 347",
  "206;Labels;Label Code Olive;Inks PMS 391",
  "207;;D.F. Gray Diffuser;I.H.C. Silk Screen Ink",
  "208;;Gray Lexan;G.E. 9030-713",
  "209;;Trans Bronze;Flex-Vu M-100 BN",
  "210;;Yellow Diffuser;I.H.C. Silk Screen Ink",
  "211;;Green Diffuser;I.H.C. Silk Screen Ink",
  "212;;Bold Blue;Cycolac T-5500 (Keycaps)",
  "213;;Mellow White;Cycolac T-2502 (Keycaps)",
  "214;;Old Gray Diffuser;Cycolac T-3502 (Keycaps)",
  "215;;A.J. Brown;G.E. Noryl N-190-50188",
  "216;;A.J. Beige;G.E. Noryl N-190-50192",
);

# Here is some text extracted from CHD's page:
# http://www.chdickman.com/pdp8/DECcolors/
# CHM and MUN designations returned to original spelling.
# Probable errors for #114, #148, #149, #154 corrected.
@chd1 = (
  "065;Silver;Old DEC Cabinets;;",
  "067;Blue-Gray;Old DEC Cabinets;;",
  "068;Light Gray;General;;",
  "094;Lamp Black;Cabinets;CHM Gray Scale P;0,0,0",
  "095;Chinese Red;General;MUN (10YR4/12);170,56,30",
  "101;Gray;End Panels;CHM Gray Scale D;164,164,164",
  "102;Blue;Packaging;IPI 66C 950;Unknown",
  "104;Bright Gold;Module;CHM 2 PC;198,165,10",
  "105;Gray;LAB-COM;CHM Gray Scale G;101,101,101",
  "111;Deep Peacock Blue;PDP10;CHM 16 PC;18,61,95",
  "113;Dark Luggage Tan;PDP8/I;MUN (5YR4/8);147,79,31",
# "114;Wedgewood Green;PDP10;CHM 25-1/8 EC;172,188,151",
  "114;Wedgewood Green;PDP10;CHM 24.125 EC;172,188,151",
  "115;Chalk Blue;PDP10;CHM 16 EC;149,175,176",
  "116;Bright Olive Green;Peripherals;CHM 24.5 PC;143,159,24",
  "123;White;General;MUN (N9.5);247,247,247",
  "126;Russet Orange;PDP8/L;CHM 4 NC;202,97,16",
  "129;Lime Peel;PDP12;CHM 24 PG;76,106,18",
  "130;Bright Chartreuse;PDP12;CHM 24.5 LA;212,219,53",
  "131;Bright Open Blue;PDP15;MUN (2.5PB5/10);39,127,196",
  "135;Bright Navy;PDP15;CHM 13.5 PG;10,20,61",
  "136;Amber;PDP14;MUN (10YR6/10);200,136,26",
  "137;Vermillion;General;MUN (10YR5/14);outside sRGB gamut",
  "138;Dark Olive Gray;Peripheral Switch;CHM 1 ML;54,49,19",
  "139;Bright Rose;PDP11;CHM 8 NA;156,43,61",
  "140;Magenta;PDP11;CHM 9 PA;110,35,76",
  "141;Amber;PDP8/E;MUN (10YR6/12);outside sRGB gamut",
  "142;Terra Cotta;PDP8/E;CHM 5 PE;156,55,11",
  "144;Turquoise Green;KI10;MUN (7.5BG4/6);outside sRGB gamut",
  "145;Deep Peacock Blue;KI10;CHM 16 PE;16,50,78",
  "146;Deep Purple;Logic Lab;CHM 11 PE;45,19,58",
  "147;Dark Gray;General;CHM Gray Scale L;56,56,56",
# "148;Blasi Blue;10 Systems;CHM 18 NC;26,68,106",
  "148;Blasi Blue;10 Systems;CHM 16 NC;26,68,106",
# "149;Topaz;IDAC 11/07;MUN (18YR5/10);outside sRGB gamut",
  "149;Topaz;IDAC 11/07;MUN (10YR5/10);outside sRGB gamut",
  "150;Clove Brown;IDAC 11/07;MUN (10YR3/4);95,66,37",
  "151;Light Aqua;KI10;CHM 17 LA;48,115,144",
  "152;Alexander Grape;PDP11/45 & 25;CHM 9 PL;20,8,22",
  "153;Gray Primer;NEMA Cabinets;;125,125,125",
# "154;Murphy Maroon;DECDATA Systems;MUN (7.5R3/6);118,51,50",
  "154;Murphy Maroon;DECDATA Systems;MUN (7.5R3/8);118,51,50",
  "155;Morris Maroon;PDP11;MUN (7.5R2/8);99,15,30",
  "156;Crabbe Yellow;GT40;MUN (5Y7/10);209,171,28",
  "157;Lenny Lime;GT40;MUN (5Y4/6);118,94,25",
  "158;Dave Brown;PDP8;MUN (2.5YR3/8);123,49,18",
  "159;Digital Blue;Corporate Identity;PMS Process Blue;0,140,204",
  "160;Blue Janice;Medical Systems;MUN (7.5PB3/12);52,61,156",
  "164;D.C. Blue;Industrial;MUN (5PB3/10);outside sRGB gamut",
  "184;OSHA Magenta;General;CHM 9 DA;217,146,176",
);

# Here are the colors extracted from the CHD page:
# (Note that they don't match perfectly.)
@chd2 = (
  "094;0,0,0",
  "095;175,33,13",
  "101;164,164,164",
  "102;0,0,255",
  "104;198,165,10",
  "105;101,101,101",
  "111;18,61,95",
  "113;147,79,31",
  "114;172,188,151",
  "115;149,175,176",
  "116;143,159,24",
  "123;247,247,247",
  "126;202,97,16",
  "129;76,106,18",
  "130;212,219,53",
  "131;39,127,198",
  "135;10,20,61",
  "136;200,136,26",
  "137;178,107,0",
  "138;54,49,19",
  "139;156,43,61",
  "140;110,35,76",
  "141;205,135,0",
  "142;156,55,11",
  "144;0,109,118",
  "145;16,50,78",
  "146;45,19,58",
  "147;56,56,56",
  "148;26,68,106",
  "149;170,110,0",
  "150;95,66,37",
  "151;48,115,144",
  "152;20,8,22",
  "153;125,125,125",
  "154;118,51,50",
  "155;99,15,30",
  "156;209,171,28",
  "157;118,94,25",
  "158;123,49,18",
  "159;0,140,204",
  "160;52,61,156",
  "164;0,72,146",
  "184;217,146,176",
);

sub addrgb {
  local($dec, $rgb) = @_;
  if (defined $rgb{$dec}) {
    $rgb{$dec} .= ":$rgb"; # Add the new color
  } else {
    $rgb{$dec} = $rgb;   # Create a color
  }
}

foreach $chd1 (@chd1) {
  # Parse the table entry
  ($dec, $name, $use, $cname, $rgb) = split(/;/, $chd1);
  # Should have gotten at least these:
  die unless $dec;
  die unless $name;
  die unless $use;
  # Remember stuff
  $name{$dec} = $name;
  $use{$dec} = $use;
  $cname{$dec} = $cname if $cname;
  &addrgb($dec, $rgb);
}

foreach $chd2 (@chd2) {
  # Parse the table entry
  ($dec, $rgb) = split(/;/, $chd2);
  # Should have gotten both:
  die unless $dec;
  die unless $rgb;
  if ($rgb{$dec} =~ /^[0-9]/) {
    warn "$dec $name{$dec}: CHD has $rgb but prints $rgb{$dec}\n"
      unless $rgb eq $rgb{$dec};
  }
  &addrgb($dec, $rgb);
}

#
# Now walk the DEC chart.
foreach $color (@colors) {
  # Parse the table entry
  ($dec, $use, $name, $ref) = split(/;/, $color);
  # Should have gotten these:
  die "No color number: $color\n" unless $dec;
# die "No first use: $color\n" unless $use;
  die "No color name: $color\n" unless $name;
  # Check these against CHD values, define anything new.
  if (defined $use{$dec}) {
    warn "$dec $name{$dec}: use: CHD has $use{$dec}, not $use\n"
      unless $use eq $use{$dec};
  }
  if (defined $name{$dec}) {
    warn "$dec $name{$dec}: name: CHD has $name{$dec}, not $name\n"
      unless $name eq $name{$dec};
  }
  if (defined $cname{$dec}) {
#   warn "$dec $name{$dec}: cname: CHD has $cname{$dec}, not $ref\n"
#     unless $ref eq $cname{$dec};
  }
  $use{$dec} = $use;
  $cname{$dec} = $ref;
  # Now, walk the color specs and see if we recognize them.
  # (Only CHM and MUN color specs are currently recoginzed.)
  foreach $color (split(/,/, $ref)) {
    if ($color =~ /^CHM\s+(.*)/) {
      # Convert CHM color to HSL.
      @rgb = &chm2rgb($1);
#warn "chm2rgb $1: got @rgb\n";
    } elsif ($color =~ /^MUN\s+\((.*)\)/) {
      # Convert MUN color to HSL.
      @rgb = &mun2rgb($1);
#warn "mun2rgb $1: got @rgb\n";
    } else {
      # No useful color choice to add.
      next;
    }
    $rgb = join(",", @rgb);
    # Got an RGB value, add it to $rgb{$dec}.
    &addrgb($dec, $rgb)
  }
}
#warn "\n";

#
# Output results.
print "<TABLE>\n";
  print "<BR>\n";
  print "<TABLE><CAPTION>DEC Colors</CAPTION><TR>\n";
foreach $dec (sort keys %rgb) {
  print "<TR>\n";
  print "<TD>$dec\n";
  print "<TD>$use{$dec}\n";
  print "<TD>$name{$dec}\n";
  print "<TD>$cname{$dec}\n";
  $ocolor = "";
  foreach $color (split(/:/, $rgb{$dec})) {
    next if $color eq $ocolor;
    $ocolor = $color;
    next unless $color =~ /^[0-9]/;
    # $color is an r,g,b triple.
    ($r, $g, $b) = split(/,/, $color);
    $v = 255 - int(($r + $g + $b) / 3);
    $v = 255 unless $v < 64; # For most values of $v, just use white.
    print "<TD style='color:rgb($v,$v,$v); background-color:rgb($color)'>$color\n";
  }
  print "</TR>\n";
}
print "</TABLE>\n";

#
# Print basic color charts to verify the conversion routines.

#
#  Check each color angle for CHM/Ostwald colors.
# Don't check saturation algorithm here.
if (0) {
  for ($hue = 1; $hue < 25; $hue++) {
    ($r, $g, $b) = &chm2rgb($hue);
    warn "$hue: $r,$g,$b\n";
  }
}

exit 0;
