#!/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 "
Munsell Gray Scale
\n";
print "(These should step by about 26)\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 "N$l: $r,$g,$b\n";
}
print " |
\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 "Munsell 10YR Scale
\n";
print "(Beware unless 10YR6/10 is 198,138,16)\n";
for ($ww = 10; $ww > 0; $ww--) {
print "
\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 "10YR$ww/$cc: $r,$g,$b\n";
# print " $h,$s,$v\n";
}
print " |
\n";
}
print "
\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 "CHM Gray Scale
\n";
print "(These should step by 16)\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 "$l: $r,$g,$b\n";
}
print " |
\n";
#
# Now, a color chart for CHM 4.
#
print "CHM 4 Color Chart\n";
foreach $ww ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P") {
print "\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 "$4 $ww$bb: $r,$g,$b\n";
}
print " |
\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 "\n";
print "
\n";
print "DEC Colors\n";
foreach $dec (sort keys %rgb) {
print "
\n";
print "$dec\n";
print " | $use{$dec}\n";
print " | $name{$dec}\n";
print " | $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 " | $color\n";
}
print " |
\n";
}
print "
\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;