{"version":3,"sources":["../../src/ts/color/ColorConverter.ts","../../src/ts/constants/hue_hcl.ts","../../src/ts/constants/hue_hex.ts","../../src/ts/constants/hue_rgb.ts","../../src/ts/color/ColorPicker.ts","../../src/ts/util.ts","../../src/ts/color/ColorSwatch.ts","../../src/ts/color/ColorScheme.ts","../../src/ts/config/hue.config.ts","../../src/ts/config/hue.names.ts"],"sourcesContent":["// ============================================================================\n// ColorConverter.ts\n// Native TypeScript implementation for color space conversions\n// Replaces colorjs.io dependency\n// ============================================================================\n\n/**\n * Color coordinate types\n */\nexport type RGB = [number, number, number];\nexport type LCH = [number, number, number]; // [L, C, H] where L: 0-100, C: 0-150+, H: 0-360\nexport type Lab = [number, number, number]; // [L, a, b]\nexport type XYZ = [number, number, number];\nexport type HSL = [number, number, number]; // [H, S, L] where H: 0-360, S: 0-100, L: 0-100\n\n/**\n * D65 white point reference values\n */\nconst D65 = {\n    X: 0.95047,\n    Y: 1.0,\n    Z: 1.08883\n};\n\n/**\n * D50 white point reference values\n */\nconst D50 = {\n    X: 0.96422,\n    Y: 1.0,\n    Z: 0.82521\n};\n\n// ============================================================================\n// LCH ↔ Lab conversions\n// ============================================================================\n\n/**\n * Convert LCH to Lab\n * LCH is the cylindrical representation of Lab\n */\nexport function lchToLab(l: number, c: number, h: number): Lab {\n    const hRad = (h * Math.PI) / 180;\n    const a = c * Math.cos(hRad);\n    const b = c * Math.sin(hRad);\n    return [l, a, b];\n}\n\n/**\n * Convert Lab to LCH\n */\nexport function labToLch(l: number, a: number, b: number): LCH {\n    const c = Math.sqrt(a * a + b * b);\n    let h = (Math.atan2(b, a) * 180) / Math.PI;\n    if (h < 0) h += 360;\n    return [l, c, h];\n}\n\n// ============================================================================\n// Lab ↔ XYZ conversions\n// ============================================================================\n\n/**\n * Helper function for Lab to XYZ conversion\n */\nfunction labToXyzHelper(t: number): number {\n    const delta = 6 / 29;\n    if (t > delta) {\n        return t * t * t;\n    }\n    return 3 * delta * delta * (t - 4 / 29);\n}\n\n/**\n * Helper function for XYZ to Lab conversion\n */\nfunction xyzToLabHelper(t: number): number {\n    const delta = 6 / 29;\n    if (t > delta * delta * delta) {\n        return Math.cbrt(t);\n    }\n    return t / (3 * delta * delta) + 4 / 29;\n}\n\n/**\n * Convert Lab to XYZ (D50 white point, which is standard for Lab)\n */\nexport function labToXyz(l: number, a: number, b: number): XYZ {\n    const fy = (l + 16) / 116;\n    const fx = a / 500 + fy;\n    const fz = fy - b / 200;\n\n    const x = D50.X * labToXyzHelper(fx);\n    const y = D50.Y * labToXyzHelper(fy);\n    const z = D50.Z * labToXyzHelper(fz);\n\n    return [x, y, z];\n}\n\n/**\n * Convert XYZ to Lab (D50 white point)\n */\nexport function xyzToLab(x: number, y: number, z: number): Lab {\n    const fx = xyzToLabHelper(x / D50.X);\n    const fy = xyzToLabHelper(y / D50.Y);\n    const fz = xyzToLabHelper(z / D50.Z);\n\n    const l = 116 * fy - 16;\n    const a = 500 * (fx - fy);\n    const b = 200 * (fy - fz);\n\n    return [l, a, b];\n}\n\n// ============================================================================\n// XYZ ↔ sRGB conversions\n// ============================================================================\n\n/**\n * Bradford chromatic adaptation matrix from D50 to D65\n */\nconst D50_TO_D65 = [\n    [0.9555766, -0.0230393, 0.0631636],\n    [-0.0282895, 1.0099416, 0.0210077],\n    [0.0122982, -0.0204830, 1.3299098]\n];\n\n/**\n * Apply matrix transformation\n */\nfunction applyMatrix(matrix: number[][], xyz: XYZ): XYZ {\n    return [\n        matrix[0][0] * xyz[0] + matrix[0][1] * xyz[1] + matrix[0][2] * xyz[2],\n        matrix[1][0] * xyz[0] + matrix[1][1] * xyz[1] + matrix[1][2] * xyz[2],\n        matrix[2][0] * xyz[0] + matrix[2][1] * xyz[1] + matrix[2][2] * xyz[2]\n    ];\n}\n\n/**\n * Convert XYZ (D50) to XYZ (D65) using Bradford adaptation\n */\nexport function xyzD50ToD65(xyz: XYZ): XYZ {\n    return applyMatrix(D50_TO_D65, xyz);\n}\n\n/**\n * sRGB linear to gamma-corrected conversion\n */\nfunction linearToGamma(c: number): number {\n    if (c <= 0.0031308) {\n        return 12.92 * c;\n    }\n    return 1.055 * Math.pow(c, 1 / 2.4) - 0.055;\n}\n\n/**\n * sRGB gamma-corrected to linear conversion\n */\nfunction gammaToLinear(c: number): number {\n    if (c <= 0.04045) {\n        return c / 12.92;\n    }\n    return Math.pow((c + 0.055) / 1.055, 2.4);\n}\n\n/**\n * XYZ (D65) to linear sRGB matrix\n */\nconst XYZ_TO_SRGB = [\n    [3.2404541621141054, -1.5371385940306089, -0.4985314095560162],\n    [-0.9692660305051868, 1.8760108454466942, 0.041556017530349834],\n    [0.05564343095911475, -0.20397695888897652, 1.0572251882231791]\n];\n\n/**\n * Convert XYZ (D65) to sRGB\n * Returns values in 0-1 range\n */\nexport function xyzToSrgb(x: number, y: number, z: number): RGB {\n    // Apply XYZ to linear sRGB matrix\n    const rLinear = XYZ_TO_SRGB[0][0] * x + XYZ_TO_SRGB[0][1] * y + XYZ_TO_SRGB[0][2] * z;\n    const gLinear = XYZ_TO_SRGB[1][0] * x + XYZ_TO_SRGB[1][1] * y + XYZ_TO_SRGB[1][2] * z;\n    const bLinear = XYZ_TO_SRGB[2][0] * x + XYZ_TO_SRGB[2][1] * y + XYZ_TO_SRGB[2][2] * z;\n\n    // Apply gamma correction\n    const r = linearToGamma(rLinear);\n    const g = linearToGamma(gLinear);\n    const b = linearToGamma(bLinear);\n\n    return [r, g, b];\n}\n\n/**\n * sRGB to XYZ (D65) matrix\n */\nconst SRGB_TO_XYZ = [\n    [0.4124564, 0.3575761, 0.1804375],\n    [0.2126729, 0.7151522, 0.0721750],\n    [0.0193339, 0.1191920, 0.9503041]\n];\n\n/**\n * Convert sRGB to XYZ (D65)\n * Input values should be in 0-1 range\n */\nexport function srgbToXyz(r: number, g: number, b: number): XYZ {\n    // Apply inverse gamma correction\n    const rLinear = gammaToLinear(r);\n    const gLinear = gammaToLinear(g);\n    const bLinear = gammaToLinear(b);\n\n    // Apply linear sRGB to XYZ matrix\n    const x = SRGB_TO_XYZ[0][0] * rLinear + SRGB_TO_XYZ[0][1] * gLinear + SRGB_TO_XYZ[0][2] * bLinear;\n    const y = SRGB_TO_XYZ[1][0] * rLinear + SRGB_TO_XYZ[1][1] * gLinear + SRGB_TO_XYZ[1][2] * bLinear;\n    const z = SRGB_TO_XYZ[2][0] * rLinear + SRGB_TO_XYZ[2][1] * gLinear + SRGB_TO_XYZ[2][2] * bLinear;\n\n    return [x, y, z];\n}\n\n// ============================================================================\n// Main conversion: LCH → sRGB\n// ============================================================================\n\n/**\n * Convert LCH to sRGB\n * This is the primary conversion used in the color palette generation\n *\n * @param l Lightness (0-100)\n * @param c Chroma (0-150+)\n * @param h Hue (0-360)\n * @returns RGB values in 0-1 range\n */\nexport function lchToSrgb(l: number, c: number, h: number): RGB {\n    // LCH → Lab\n    const [labL, labA, labB] = lchToLab(l, c, h);\n\n    // Lab (D50) → XYZ (D50)\n    const xyzD50 = labToXyz(labL, labA, labB);\n\n    // XYZ (D50) → XYZ (D65)\n    const xyzD65 = xyzD50ToD65(xyzD50);\n\n    // XYZ (D65) → sRGB\n    return xyzToSrgb(xyzD65[0], xyzD65[1], xyzD65[2]);\n}\n\n/**\n * Convert LCH to sRGB with values clamped to 0-255 range\n */\nexport function lchToSrgb255(l: number, c: number, h: number): RGB {\n    const [r, g, b] = lchToSrgb(l, c, h);\n    return [\n        Math.round(clamp(r, 0, 1) * 255),\n        Math.round(clamp(g, 0, 1) * 255),\n        Math.round(clamp(b, 0, 1) * 255)\n    ];\n}\n\n// ============================================================================\n// HSL conversions\n// ============================================================================\n\n/**\n * Convert sRGB to HSL\n * Input: RGB values in 0-1 range\n * Output: HSL where H: 0-360, S: 0-100, L: 0-100\n */\nexport function srgbToHsl(r: number, g: number, b: number): HSL {\n    const max = Math.max(r, g, b);\n    const min = Math.min(r, g, b);\n    const l = (max + min) / 2;\n\n    if (max === min) {\n        return [0, 0, l * 100];\n    }\n\n    const d = max - min;\n    const s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n    let h: number;\n    switch (max) {\n        case r:\n            h = ((g - b) / d + (g < b ? 6 : 0)) / 6;\n            break;\n        case g:\n            h = ((b - r) / d + 2) / 6;\n            break;\n        default:\n            h = ((r - g) / d + 4) / 6;\n    }\n\n    return [h * 360, s * 100, l * 100];\n}\n\n/**\n * Convert HSL to sRGB\n * Input: HSL where H: 0-360, S: 0-100, L: 0-100\n * Output: RGB values in 0-1 range\n */\nexport function hslToSrgb(h: number, s: number, l: number): RGB {\n    h = h / 360;\n    s = s / 100;\n    l = l / 100;\n\n    if (s === 0) {\n        return [l, l, l];\n    }\n\n    const hue2rgb = (p: number, q: number, t: number): number => {\n        if (t < 0) t += 1;\n        if (t > 1) t -= 1;\n        if (t < 1/6) return p + (q - p) * 6 * t;\n        if (t < 1/2) return q;\n        if (t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n        return p;\n    };\n\n    const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n    const p = 2 * l - q;\n\n    return [\n        hue2rgb(p, q, h + 1/3),\n        hue2rgb(p, q, h),\n        hue2rgb(p, q, h - 1/3)\n    ];\n}\n\n// ============================================================================\n// Utility functions\n// ============================================================================\n\n/**\n * Clamp a value between min and max\n */\nexport function clamp(value: number, min: number, max: number): number {\n    return Math.min(Math.max(value, min), max);\n}\n\n/**\n * Check if RGB values are within the sRGB gamut (0-1 range)\n */\nexport function isInGamut(r: number, g: number, b: number, tolerance: number = 0.0001): boolean {\n    return (\n        r >= -tolerance && r <= 1 + tolerance &&\n        g >= -tolerance && g <= 1 + tolerance &&\n        b >= -tolerance && b <= 1 + tolerance\n    );\n}\n\n/**\n * Convert RGB values (0-1) to hex string\n */\nexport function rgbToHex(r: number, g: number, b: number): string {\n    const toHex = (c: number): string => {\n        const hex = Math.round(clamp(c, 0, 1) * 255).toString(16);\n        return hex.length === 1 ? '0' + hex : hex;\n    };\n    return `#${toHex(r)}${toHex(g)}${toHex(b)}`.toUpperCase();\n}\n\n/**\n * Convert hex string to RGB (0-1 range)\n */\nexport function hexToRgb(hex: string): RGB {\n    const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n    if (!result) {\n        throw new Error(`Invalid hex color: ${hex}`);\n    }\n    return [\n        parseInt(result[1], 16) / 255,\n        parseInt(result[2], 16) / 255,\n        parseInt(result[3], 16) / 255\n    ];\n}\n\n// ============================================================================\n// Color class for compatibility with colorjs.io API\n// ============================================================================\n\n/**\n * A simple Color class that provides similar API to colorjs.io\n * but uses our native implementations\n */\nexport class Color {\n    private _l: number;\n    private _c: number;\n    private _h: number;\n    private _rgb: RGB | null = null;\n\n    /**\n     * Create a color from LCH values\n     * @param colorSpace Must be \"lch\"\n     * @param coords [L, C, H] values\n     */\n    constructor(colorSpace: string, coords: [number, number, number]) {\n        if (colorSpace !== \"lch\") {\n            throw new Error(`Unsupported color space: ${colorSpace}. Only \"lch\" is supported.`);\n        }\n        this._l = coords[0];\n        this._c = coords[1];\n        this._h = coords[2];\n    }\n\n    /**\n     * Get the color coordinates\n     */\n    get coords(): RGB {\n        if (!this._rgb) {\n            this._rgb = lchToSrgb(this._l, this._c, this._h);\n        }\n        return this._rgb;\n    }\n\n    /**\n     * Convert to a different color space\n     * Returns an object with coords property\n     */\n    to(colorSpace: string): { coords: number[] } {\n        const rgb = this.coords;\n\n        switch (colorSpace) {\n            case \"srgb\":\n                return { coords: rgb };\n\n            case \"srgb-linear\": {\n                return {\n                    coords: [\n                        gammaToLinear(clamp(rgb[0], 0, 1)),\n                        gammaToLinear(clamp(rgb[1], 0, 1)),\n                        gammaToLinear(clamp(rgb[2], 0, 1))\n                    ]\n                };\n            }\n\n            case \"hsl\": {\n                const hsl = srgbToHsl(\n                    clamp(rgb[0], 0, 1),\n                    clamp(rgb[1], 0, 1),\n                    clamp(rgb[2], 0, 1)\n                );\n                return { coords: hsl };\n            }\n\n            case \"lch\":\n                return { coords: [this._l, this._c, this._h] };\n\n            case \"lab\": {\n                const lab = lchToLab(this._l, this._c, this._h);\n                return { coords: lab };\n            }\n\n            case \"xyz\":\n            case \"xyz-d65\": {\n                const lab = lchToLab(this._l, this._c, this._h);\n                const xyzD50 = labToXyz(lab[0], lab[1], lab[2]);\n                const xyzD65 = xyzD50ToD65(xyzD50);\n                return { coords: xyzD65 };\n            }\n\n            case \"xyz-d50\": {\n                const lab = lchToLab(this._l, this._c, this._h);\n                return { coords: labToXyz(lab[0], lab[1], lab[2]) };\n            }\n\n            default:\n                // For unsupported color spaces, return sRGB as fallback\n                console.warn(`Color space \"${colorSpace}\" not fully supported, returning sRGB`);\n                return { coords: rgb };\n        }\n    }\n\n    /**\n     * Check if the color is within the sRGB gamut\n     */\n    inGamut(): boolean {\n        const rgb = this.coords;\n        return isInGamut(rgb[0], rgb[1], rgb[2]);\n    }\n}\n\nexport default Color;\n","// ============================================================================\n//\n// hue.gl\n// 0.1.1\n//\n// ============================================================================\n\n\n// General\n// ============================================================================\n\nexport enum hue_hcl {\n\n    // Grey\n    // ------------------------------------------------------------------------\n\n    N0001 = \"hcl(0, 0, 90)\",\n    N0002 = \"hcl(0, 0, 82)\",\n    N0003 = \"hcl(0, 0, 74)\",\n    N0004 = \"hcl(0, 0, 66)\",\n    N0005 = \"hcl(0, 0, 58)\",\n    N0006 = \"hcl(0, 0, 50)\",\n    N0007 = \"hcl(0, 0, 42)\",\n    N0008 = \"hcl(0, 0, 34)\",\n    N0009 = \"hcl(0, 0, 26)\",\n\n    // Salmon\n    // ------------------------------------------------------------------------\n\n    N0151 = \"hcl(15, 12, 90)\",\n    N0152 = \"hcl(15, 18, 82)\",\n    N0153 = \"hcl(15, 24, 74)\",\n    N0154 = \"hcl(15, 30, 66)\",\n    N0155 = \"hcl(15, 36, 58)\",\n    N0156 = \"hcl(15, 30, 50)\",\n    N0157 = \"hcl(15, 24, 42)\",\n    N0158 = \"hcl(15, 18, 34)\",\n    N0159 = \"hcl(15, 12, 26)\",\n\n    // Orange\n    // ------------------------------------------------------------------------\n\n    N0301 = \"hcl(30, 12, 90)\",\n    N0302 = \"hcl(30, 18, 82)\",\n    N0303 = \"hcl(30, 24, 74)\",\n    N0304 = \"hcl(30, 30, 66)\",\n    N0305 = \"hcl(30, 36, 58)\",\n    N0306 = \"hcl(30, 30, 50)\",\n    N0307 = \"hcl(30, 24, 42)\",\n    N0308 = \"hcl(30, 18, 34)\",\n    N0309 = \"hcl(30, 12, 26)\",\n\n    // Amber\n    // ------------------------------------------------------------------------\n\n    N0451 = \"hcl(45, 12, 90)\",\n    N0452 = \"hcl(45, 18, 82)\",\n    N0453 = \"hcl(45, 24, 74)\",\n    N0454 = \"hcl(45, 30, 66)\",\n    N0455 = \"hcl(45, 36, 58)\",\n    N0456 = \"hcl(45, 30, 50)\",\n    N0457 = \"hcl(45, 24, 42)\",\n    N0458 = \"hcl(45, 18, 34)\",\n    N0459 = \"hcl(45, 12, 26)\",\n\n    // Yellow\n    // ------------------------------------------------------------------------\n\n    N0601 = \"hcl(60, 12, 90)\",\n    N0602 = \"hcl(60, 18, 82)\",\n    N0603 = \"hcl(60, 24, 74)\",\n    N0604 = \"hcl(60, 30, 66)\",\n    N0605 = \"hcl(60, 36, 58)\",\n    N0606 = \"hcl(60, 30, 50)\",\n    N0607 = \"hcl(60, 24, 42)\",\n    N0608 = \"hcl(60, 18, 34)\",\n    N0609 = \"hcl(60, 12, 26)\",\n\n    // Lime\n    // ------------------------------------------------------------------------\n\n    N0751 = \"hcl(75, 12, 90)\",\n    N0752 = \"hcl(75, 18, 82)\",\n    N0753 = \"hcl(75, 24, 74)\",\n    N0754 = \"hcl(75, 30, 66)\",\n    N0755 = \"hcl(75, 36, 58)\",\n    N0756 = \"hcl(75, 30, 50)\",\n    N0757 = \"hcl(75, 24, 42)\",\n    N0758 = \"hcl(75, 18, 34)\",\n    N0759 = \"hcl(75, 12, 26)\",\n\n    // Ecru\n    // ------------------------------------------------------------------------\n\n    N0901 = \"hcl(90, 12, 90)\",\n    N0902 = \"hcl(90, 18, 82)\",\n    N0903 = \"hcl(90, 24, 74)\",\n    N0904 = \"hcl(90, 30, 66)\",\n    N0905 = \"hcl(90, 36, 58)\",\n    N0906 = \"hcl(90, 30, 50)\",\n    N0907 = \"hcl(90, 24, 42)\",\n    N0908 = \"hcl(90, 18, 34)\",\n    N0909 = \"hcl(90, 12, 26)\",\n\n    // Olive\n    // ------------------------------------------------------------------------\n\n    N1051 = \"hcl(105, 12, 90)\",\n    N1052 = \"hcl(105, 18, 82)\",\n    N1053 = \"hcl(105, 24, 74)\",\n    N1054 = \"hcl(105, 30, 66)\",\n    N1055 = \"hcl(105, 36, 58)\",\n    N1056 = \"hcl(105, 30, 50)\",\n    N1057 = \"hcl(105, 24, 42)\",\n    N1058 = \"hcl(105, 18, 34)\",\n    N1059 = \"hcl(105, 12, 26)\",\n\n    // Green\n    // ------------------------------------------------------------------------\n\n    N1201 = \"hcl(120, 12, 90)\",\n    N1202 = \"hcl(120, 18, 82)\",\n    N1203 = \"hcl(120, 24, 74)\",\n    N1204 = \"hcl(120, 30, 66)\",\n    N1205 = \"hcl(120, 36, 58)\",\n    N1206 = \"hcl(120, 30, 50)\",\n    N1207 = \"hcl(120, 24, 42)\",\n    N1208 = \"hcl(120, 18, 34)\",\n    N1209 = \"hcl(120, 12, 26)\",\n\n    // Forest\n    // ------------------------------------------------------------------------\n\n    N1351 = \"hcl(135, 12, 90)\",\n    N1352 = \"hcl(135, 18, 82)\",\n    N1353 = \"hcl(135, 24, 74)\",\n    N1354 = \"hcl(135, 30, 66)\",\n    N1355 = \"hcl(135, 36, 58)\",\n    N1356 = \"hcl(135, 30, 50)\",\n    N1357 = \"hcl(135, 24, 42)\",\n    N1358 = \"hcl(135, 18, 34)\",\n    N1359 = \"hcl(135, 12, 26)\",\n\n    // Jade\n    // ------------------------------------------------------------------------\n\n    N1501 = \"hcl(150, 12, 90)\",\n    N1502 = \"hcl(150, 18, 82)\",\n    N1503 = \"hcl(150, 24, 74)\",\n    N1504 = \"hcl(150, 30, 66)\",\n    N1505 = \"hcl(150, 36, 58)\",\n    N1506 = \"hcl(150, 30, 50)\",\n    N1507 = \"hcl(150, 24, 42)\",\n    N1508 = \"hcl(150, 18, 34)\",\n    N1509 = \"hcl(150, 12, 26)\",\n\n    // Mint\n    // ------------------------------------------------------------------------\n\n    N1651 = \"hcl(165, 12, 90)\",\n    N1652 = \"hcl(165, 18, 82)\",\n    N1653 = \"hcl(165, 24, 74)\",\n    N1654 = \"hcl(165, 30, 66)\",\n    N1655 = \"hcl(165, 36, 58)\",\n    N1656 = \"hcl(165, 30, 50)\",\n    N1657 = \"hcl(165, 24, 42)\",\n    N1658 = \"hcl(165, 18, 34)\",\n    N1659 = \"hcl(165, 12, 26)\",\n\n    // Cyan\n    // ------------------------------------------------------------------------\n\n    N1801 = \"hcl(180, 12, 90)\",\n    N1802 = \"hcl(180, 18, 82)\",\n    N1803 = \"hcl(180, 24, 74)\",\n    N1804 = \"hcl(180, 30, 66)\",\n    N1805 = \"hcl(180, 36, 58)\",\n    N1806 = \"hcl(180, 30, 50)\",\n    N1807 = \"hcl(180, 24, 42)\",\n    N1808 = \"hcl(180, 18, 34)\",\n    N1809 = \"hcl(180, 12, 26)\",\n\n    // Teal\n    // ------------------------------------------------------------------------\n\n    N1951 = \"hcl(195, 12, 90)\",\n    N1952 = \"hcl(195, 18, 82)\",\n    N1953 = \"hcl(195, 24, 74)\",\n    N1954 = \"hcl(195, 30, 66)\",\n    N1955 = \"hcl(195, 36, 58)\",\n    N1956 = \"hcl(195, 30, 50)\",\n    N1957 = \"hcl(195, 24, 42)\",\n    N1958 = \"hcl(195, 18, 34)\",\n    N1959 = \"hcl(195, 12, 26)\",\n\n    // Capri\n    // ------------------------------------------------------------------------\n\n    N2101 = \"hcl(210, 12, 90)\",\n    N2102 = \"hcl(210, 18, 82)\",\n    N2103 = \"hcl(210, 24, 74)\",\n    N2104 = \"hcl(210, 30, 66)\",\n    N2105 = \"hcl(210, 36, 58)\",\n    N2106 = \"hcl(210, 30, 50)\",\n    N2107 = \"hcl(210, 24, 42)\",\n    N2108 = \"hcl(210, 18, 34)\",\n    N2109 = \"hcl(210, 12, 26)\",\n\n    // Sky\n    // ------------------------------------------------------------------------\n\n    N2251 = \"hcl(225, 12, 90)\",\n    N2252 = \"hcl(225, 18, 82)\",\n    N2253 = \"hcl(225, 24, 74)\",\n    N2254 = \"hcl(225, 30, 66)\",\n    N2255 = \"hcl(225, 36, 58)\",\n    N2256 = \"hcl(225, 30, 50)\",\n    N2257 = \"hcl(225, 24, 42)\",\n    N2258 = \"hcl(225, 18, 34)\",\n    N2259 = \"hcl(225, 12, 26)\",\n\n    // Blue\n    // ------------------------------------------------------------------------\n\n    N2401 = \"hcl(240, 12, 90)\",\n    N2402 = \"hcl(240, 18, 82)\",\n    N2403 = \"hcl(240, 24, 74)\",\n    N2404 = \"hcl(240, 30, 66)\",\n    N2405 = \"hcl(240, 36, 58)\",\n    N2406 = \"hcl(240, 30, 50)\",\n    N2407 = \"hcl(240, 24, 42)\",\n    N2408 = \"hcl(240, 18, 34)\",\n    N2409 = \"hcl(240, 12, 26)\",\n\n    // Azure\n    // ------------------------------------------------------------------------\n\n    N2551 = \"hcl(255, 12, 90)\",\n    N2552 = \"hcl(255, 18, 82)\",\n    N2553 = \"hcl(255, 24, 74)\",\n    N2554 = \"hcl(255, 30, 66)\",\n    N2555 = \"hcl(255, 36, 58)\",\n    N2556 = \"hcl(255, 30, 50)\",\n    N2557 = \"hcl(255, 24, 42)\",\n    N2558 = \"hcl(255, 18, 34)\",\n    N2559 = \"hcl(255, 12, 26)\",\n\n    // Indigo\n    // ------------------------------------------------------------------------\n\n    N2701 = \"hcl(270, 12, 90)\",\n    N2702 = \"hcl(270, 18, 82)\",\n    N2703 = \"hcl(270, 24, 74)\",\n    N2704 = \"hcl(270, 30, 66)\",\n    N2705 = \"hcl(270, 36, 58)\",\n    N2706 = \"hcl(270, 30, 50)\",\n    N2707 = \"hcl(270, 24, 42)\",\n    N2708 = \"hcl(270, 18, 34)\",\n    N2709 = \"hcl(270, 12, 26)\",\n\n    // Violet\n    // ------------------------------------------------------------------------\n\n    N2851 = \"hcl(285, 12, 90)\",\n    N2852 = \"hcl(285, 18, 82)\",\n    N2853 = \"hcl(285, 24, 74)\",\n    N2854 = \"hcl(285, 30, 66)\",\n    N2855 = \"hcl(285, 36, 58)\",\n    N2856 = \"hcl(285, 30, 50)\",\n    N2857 = \"hcl(285, 24, 42)\",\n    N2858 = \"hcl(285, 18, 34)\",\n    N2859 = \"hcl(285, 12, 26)\",\n\n    // Magenta\n    // ------------------------------------------------------------------------\n\n    N3001 = \"hcl(300, 12, 90)\",\n    N3002 = \"hcl(300, 18, 82)\",\n    N3003 = \"hcl(300, 24, 74)\",\n    N3004 = \"hcl(300, 30, 66)\",\n    N3005 = \"hcl(300, 36, 58)\",\n    N3006 = \"hcl(300, 30, 50)\",\n    N3007 = \"hcl(300, 24, 42)\",\n    N3008 = \"hcl(300, 18, 34)\",\n    N3009 = \"hcl(300, 12, 26)\",\n\n    // Purple\n    // ------------------------------------------------------------------------\n\n    N3151 = \"hcl(315, 12, 90)\",\n    N3152 = \"hcl(315, 18, 82)\",\n    N3153 = \"hcl(315, 24, 74)\",\n    N3154 = \"hcl(315, 30, 66)\",\n    N3155 = \"hcl(315, 36, 58)\",\n    N3156 = \"hcl(315, 30, 50)\",\n    N3157 = \"hcl(315, 24, 42)\",\n    N3158 = \"hcl(315, 18, 34)\",\n    N3159 = \"hcl(315, 12, 26)\",\n\n    // Rose\n    // ------------------------------------------------------------------------\n\n    N3301 = \"hcl(330, 12, 90)\",\n    N3302 = \"hcl(330, 18, 82)\",\n    N3303 = \"hcl(330, 24, 74)\",\n    N3304 = \"hcl(330, 30, 66)\",\n    N3305 = \"hcl(330, 36, 58)\",\n    N3306 = \"hcl(330, 30, 50)\",\n    N3307 = \"hcl(330, 24, 42)\",\n    N3308 = \"hcl(330, 18, 34)\",\n    N3309 = \"hcl(330, 12, 26)\",\n\n    // Pink\n    // ------------------------------------------------------------------------\n\n    N3451 = \"hcl(345, 12, 90)\",\n    N3452 = \"hcl(345, 18, 82)\",\n    N3453 = \"hcl(345, 24, 74)\",\n    N3454 = \"hcl(345, 30, 66)\",\n    N3455 = \"hcl(345, 36, 58)\",\n    N3456 = \"hcl(345, 30, 50)\",\n    N3457 = \"hcl(345, 24, 42)\",\n    N3458 = \"hcl(345, 18, 34)\",\n    N3459 = \"hcl(345, 12, 26)\",\n\n    // Red\n    // ------------------------------------------------------------------------\n\n    N3601 = \"hcl(360, 12, 90)\",\n    N3602 = \"hcl(360, 18, 82)\",\n    N3603 = \"hcl(360, 24, 74)\",\n    N3604 = \"hcl(360, 30, 66)\",\n    N3605 = \"hcl(360, 36, 58)\",\n    N3606 = \"hcl(360, 30, 50)\",\n    N3607 = \"hcl(360, 24, 42)\",\n    N3608 = \"hcl(360, 18, 34)\",\n    N3609 = \"hcl(360, 12, 26)\",\n\n\n}\n\n\n","// ============================================================================\n//\n// hue.gl\n// 0.1.1\n//\n// ============================================================================\n\n\n// General\n// ============================================================================\n\nexport enum hue_hex {\n\n    // Grey\n    // ------------------------------------------------------------------------\n\n    N0001 = '#e2e2e2',\n    N0002 = '#cccccc',\n    N0003 = '#b6b6b6',\n    N0004 = '#a0a0a0',\n    N0005 = '#8b8b8b',\n    N0006 = '#777777',\n    N0007 = '#636363',\n    N0008 = '#505050',\n    N0009 = '#3e3e3e',\n\n    // Salmon\n    // ------------------------------------------------------------------------\n\n    N0151 = '#fadbdd',\n    N0152 = '#eec0c4',\n    N0153 = '#e2a6ac',\n    N0154 = '#d48c94',\n    N0155 = '#c6727d',\n    N0156 = '#a7636b',\n    N0157 = '#89545a',\n    N0158 = '#6b4549',\n    N0159 = '#4f3739',\n\n    // Orange\n    // ------------------------------------------------------------------------\n\n    N0301 = '#fadbd7',\n    N0302 = '#edc1bc',\n    N0303 = '#e0a8a1',\n    N0304 = '#d28e87',\n    N0305 = '#c4756e',\n    N0306 = '#a5655f',\n    N0307 = '#875650',\n    N0308 = '#6b4642',\n    N0309 = '#4f3835',\n\n    // Amber\n    // ------------------------------------------------------------------------\n\n    N0451 = '#f8dcd3',\n    N0452 = '#eac3b5',\n    N0453 = '#dcaa98',\n    N0454 = '#cd927c',\n    N0455 = '#be7960',\n    N0456 = '#a06954',\n    N0457 = '#845848',\n    N0458 = '#68483c',\n    N0459 = '#4d3931',\n\n    // Yellow\n    // ------------------------------------------------------------------------\n\n    N0601 = '#f4decf',\n    N0602 = '#e5c6af',\n    N0603 = '#d5ad90',\n    N0604 = '#c59672',\n    N0605 = '#b57f55',\n    N0606 = '#996d4b',\n    N0607 = '#7e5b41',\n    N0608 = '#644a38',\n    N0609 = '#4a3a2e',\n\n    // Lime\n    // ------------------------------------------------------------------------\n\n    N0751 = '#efe0cc',\n    N0752 = '#dec8ac',\n    N0753 = '#cdb18c',\n    N0754 = '#bb9b6c',\n    N0755 = '#a9854e',\n    N0756 = '#8f7145',\n    N0757 = '#765f3d',\n    N0758 = '#5e4d34',\n    N0759 = '#473c2c',\n\n    // Ecru\n    // ------------------------------------------------------------------------\n\n    N0901 = '#eae2cb',\n    N0902 = '#d6cbaa',\n    N0903 = '#c2b58a',\n    N0904 = '#af9f6a',\n    N0905 = '#9b8a4b',\n    N0906 = '#847643',\n    N0907 = '#6d623b',\n    N0908 = '#584f33',\n    N0909 = '#433d2b',\n\n    // Olive\n    // ------------------------------------------------------------------------\n\n    N1051 = '#e3e4cc',\n    N1052 = '#cdceab',\n    N1053 = '#b7b98b',\n    N1054 = '#a1a46b',\n    N1055 = '#8b8f4c',\n    N1056 = '#777a44',\n    N1057 = '#63663c',\n    N1058 = '#505234',\n    N1059 = '#3e3f2c',\n\n    // Green\n    // ------------------------------------------------------------------------\n\n    N1201 = '#dde6ce',\n    N1202 = '#c4d1ae',\n    N1203 = '#abbc8f',\n    N1204 = '#92a870',\n    N1205 = '#7a9453',\n    N1206 = '#697e49',\n    N1207 = '#586840',\n    N1208 = '#485437',\n    N1209 = '#39402d',\n\n    // Forest\n    // ------------------------------------------------------------------------\n\n    N1351 = '#d7e7d2',\n    N1352 = '#bbd3b3',\n    N1353 = '#9fbf96',\n    N1354 = '#83ab79',\n    N1355 = '#68975d',\n    N1356 = '#5a8151',\n    N1357 = '#4d6b46',\n    N1358 = '#40553b',\n    N1359 = '#344130',\n\n    // Jade\n    // ------------------------------------------------------------------------\n\n    N1501 = '#d1e8d6',\n    N1502 = '#b2d4ba',\n    N1503 = '#93c19f',\n    N1504 = '#74ad84',\n    N1505 = '#559a6a',\n    N1506 = '#4b835c',\n    N1507 = '#426c4e',\n    N1508 = '#395741',\n    N1509 = '#2f4234',\n\n    // Mint\n    // ------------------------------------------------------------------------\n\n    N1651 = '#cde9dc',\n    N1652 = '#abd6c2',\n    N1653 = '#89c2a9',\n    N1654 = '#66af91',\n    N1655 = '#409b7a',\n    N1656 = '#3c8469',\n    N1657 = '#376d58',\n    N1658 = '#315848',\n    N1659 = '#2b4338',\n\n    // Cyan\n    // ------------------------------------------------------------------------\n\n    N1801 = '#c9e9e2',\n    N1802 = '#a6d6cb',\n    N1803 = '#81c3b5',\n    N1804 = '#5baf9f',\n    N1805 = '#2a9c8a',\n    N1806 = '#2d8576',\n    N1807 = '#2d6e62',\n    N1808 = '#2b584f',\n    N1809 = '#28433d',\n\n    // Teal\n    // ------------------------------------------------------------------------\n\n    N1951 = '#c8e9e8',\n    N1952 = '#a3d6d4',\n    N1953 = '#7dc3c0',\n    N1954 = '#53afad',\n    N1955 = '#109c9a',\n    N1956 = '#208583',\n    N1957 = '#266e6d',\n    N1958 = '#275857',\n    N1959 = '#264342',\n\n    // Capri\n    // ------------------------------------------------------------------------\n\n    N2101 = '#c8e9ed',\n    N2102 = '#a3d5dc',\n    N2103 = '#7dc2cb',\n    N2104 = '#52aeba',\n    N2105 = '#019baa',\n    N2106 = '#1c8490',\n    N2107 = '#246d76',\n    N2108 = '#27575e',\n    N2109 = '#264246',\n\n    // Sky\n    // ------------------------------------------------------------------------\n\n    N2251 = '#cae8f2',\n    N2252 = '#a6d4e3',\n    N2253 = '#81c0d4',\n    N2254 = '#58acc6',\n    N2255 = '#1a99b7',\n    N2256 = '#25829a',\n    N2257 = '#2a6c7e',\n    N2258 = '#2a5664',\n    N2259 = '#27424a',\n\n    // Blue\n    // ------------------------------------------------------------------------\n\n    N2401 = '#cee6f6',\n    N2402 = '#acd2e9',\n    N2403 = '#8abedc',\n    N2404 = '#65aace',\n    N2405 = '#3696c1',\n    N2406 = '#3680a3',\n    N2407 = '#346a85',\n    N2408 = '#305568',\n    N2409 = '#2b414d',\n\n    // Azure\n    // ------------------------------------------------------------------------\n\n    N2551 = '#d3e5f8',\n    N2552 = '#b5cfec',\n    N2553 = '#95bbe0',\n    N2554 = '#75a6d4',\n    N2555 = '#5192c8',\n    N2556 = '#497ca8',\n    N2557 = '#416789',\n    N2558 = '#39536b',\n    N2559 = '#303f4f',\n\n    // Indigo\n    // ------------------------------------------------------------------------\n\n    N2701 = '#dae3f9',\n    N2702 = '#becdee',\n    N2703 = '#a3b7e2',\n    N2704 = '#87a2d6',\n    N2705 = '#6a8dca',\n    N2706 = '#5d78aa',\n    N2707 = '#4f648b',\n    N2708 = '#42516c',\n    N2709 = '#353e50',\n\n    // Violet\n    // ------------------------------------------------------------------------\n\n    N2851 = '#e0e1f9',\n    N2852 = '#c8caed',\n    N2853 = '#b1b3e1',\n    N2854 = '#999dd5',\n    N2855 = '#8188c8',\n    N2856 = '#6f74a8',\n    N2857 = '#5d6189',\n    N2858 = '#4c4e6c',\n    N2859 = '#3b3c4f',\n\n    // Magenta\n    // ------------------------------------------------------------------------\n\n    N3001 = '#e7dff6',\n    N3002 = '#d3c7e9',\n    N3003 = '#beafdc',\n    N3004 = '#aa98cf',\n    N3005 = '#9582c2',\n    N3006 = '#7f6fa3',\n    N3007 = '#6a5d86',\n    N3008 = '#554c69',\n    N3009 = '#413b4d',\n\n    // Purple\n    // ------------------------------------------------------------------------\n\n    N3151 = '#edddf3',\n    N3152 = '#dcc4e4',\n    N3153 = '#caacd6',\n    N3154 = '#b994c7',\n    N3155 = '#a77cb9',\n    N3156 = '#8d6b9c',\n    N3157 = '#755a7f',\n    N3158 = '#5d4964',\n    N3159 = '#46394b',\n\n    // Rose\n    // ------------------------------------------------------------------------\n\n    N3301 = '#f3dcee',\n    N3302 = '#e3c2dd',\n    N3303 = '#d4a9cd',\n    N3304 = '#c590bc',\n    N3305 = '#b577ac',\n    N3306 = '#996791',\n    N3307 = '#7d5777',\n    N3308 = '#63475f',\n    N3309 = '#4a3847',\n\n    // Pink\n    // ------------------------------------------------------------------------\n\n    N3451 = '#f7dbe9',\n    N3452 = '#e9c1d5',\n    N3453 = '#dba7c2',\n    N3454 = '#cd8daf',\n    N3455 = '#bf739d',\n    N3456 = '#a16485',\n    N3457 = '#84546e',\n    N3458 = '#684658',\n    N3459 = '#4d3743',\n\n    // Red\n    // ------------------------------------------------------------------------\n\n    N3601 = '#f9dbe3',\n    N3602 = '#edc0cd',\n    N3603 = '#e0a6b7',\n    N3604 = '#d38ca2',\n    N3605 = '#c5728d',\n    N3606 = '#a66278',\n    N3607 = '#885464',\n    N3608 = '#6b4551',\n    N3609 = '#4f373e',\n\n\n}\n\n\n","// ============================================================================\n//\n// hue.gl\n// 0.1.1\n//\n// ============================================================================\n\n\n// General\n// ============================================================================\n\nexport enum hue_rgb {\n\n    // Grey\n    // ------------------------------------------------------------------------\n\n    N0001 = \"rgb(226, 226, 226)\",\n    N0002 = \"rgb(204, 204, 204)\",\n    N0003 = \"rgb(182, 182, 182)\",\n    N0004 = \"rgb(160, 160, 160)\",\n    N0005 = \"rgb(139, 139, 139)\",\n    N0006 = \"rgb(119, 119, 119)\",\n    N0007 = \"rgb(99, 99, 99)\",\n    N0008 = \"rgb(80, 80, 80)\",\n    N0009 = \"rgb(62, 62, 62)\",\n\n    // Salmon\n    // ------------------------------------------------------------------------\n\n    N0151 = \"rgb(250, 219, 221)\",\n    N0152 = \"rgb(238, 192, 196)\",\n    N0153 = \"rgb(226, 166, 172)\",\n    N0154 = \"rgb(212, 140, 148)\",\n    N0155 = \"rgb(198, 114, 125)\",\n    N0156 = \"rgb(167, 99, 107)\",\n    N0157 = \"rgb(137, 84, 90)\",\n    N0158 = \"rgb(107, 69, 73)\",\n    N0159 = \"rgb(79, 55, 57)\",\n\n    // Orange\n    // ------------------------------------------------------------------------\n\n    N0301 = \"rgb(250, 219, 215)\",\n    N0302 = \"rgb(237, 193, 188)\",\n    N0303 = \"rgb(224, 168, 161)\",\n    N0304 = \"rgb(210, 142, 135)\",\n    N0305 = \"rgb(196, 117, 110)\",\n    N0306 = \"rgb(165, 101, 95)\",\n    N0307 = \"rgb(135, 86, 80)\",\n    N0308 = \"rgb(107, 70, 66)\",\n    N0309 = \"rgb(79, 56, 53)\",\n\n    // Amber\n    // ------------------------------------------------------------------------\n\n    N0451 = \"rgb(248, 220, 211)\",\n    N0452 = \"rgb(234, 195, 181)\",\n    N0453 = \"rgb(220, 170, 152)\",\n    N0454 = \"rgb(205, 146, 124)\",\n    N0455 = \"rgb(190, 121, 96)\",\n    N0456 = \"rgb(160, 105, 84)\",\n    N0457 = \"rgb(132, 88, 72)\",\n    N0458 = \"rgb(104, 72, 60)\",\n    N0459 = \"rgb(77, 57, 49)\",\n\n    // Yellow\n    // ------------------------------------------------------------------------\n\n    N0601 = \"rgb(244, 222, 207)\",\n    N0602 = \"rgb(229, 198, 175)\",\n    N0603 = \"rgb(213, 173, 144)\",\n    N0604 = \"rgb(197, 150, 114)\",\n    N0605 = \"rgb(181, 127, 85)\",\n    N0606 = \"rgb(153, 109, 75)\",\n    N0607 = \"rgb(126, 91, 65)\",\n    N0608 = \"rgb(100, 74, 56)\",\n    N0609 = \"rgb(74, 58, 46)\",\n\n    // Lime\n    // ------------------------------------------------------------------------\n\n    N0751 = \"rgb(239, 224, 204)\",\n    N0752 = \"rgb(222, 200, 172)\",\n    N0753 = \"rgb(205, 177, 140)\",\n    N0754 = \"rgb(187, 155, 108)\",\n    N0755 = \"rgb(169, 133, 78)\",\n    N0756 = \"rgb(143, 113, 69)\",\n    N0757 = \"rgb(118, 95, 61)\",\n    N0758 = \"rgb(94, 77, 52)\",\n    N0759 = \"rgb(71, 60, 44)\",\n\n    // Ecru\n    // ------------------------------------------------------------------------\n\n    N0901 = \"rgb(234, 226, 203)\",\n    N0902 = \"rgb(214, 203, 170)\",\n    N0903 = \"rgb(194, 181, 138)\",\n    N0904 = \"rgb(175, 159, 106)\",\n    N0905 = \"rgb(155, 138, 75)\",\n    N0906 = \"rgb(132, 118, 67)\",\n    N0907 = \"rgb(109, 98, 59)\",\n    N0908 = \"rgb(88, 79, 51)\",\n    N0909 = \"rgb(67, 61, 43)\",\n\n    // Olive\n    // ------------------------------------------------------------------------\n\n    N1051 = \"rgb(227, 228, 204)\",\n    N1052 = \"rgb(205, 206, 171)\",\n    N1053 = \"rgb(183, 185, 139)\",\n    N1054 = \"rgb(161, 164, 107)\",\n    N1055 = \"rgb(139, 143, 76)\",\n    N1056 = \"rgb(119, 122, 68)\",\n    N1057 = \"rgb(99, 102, 60)\",\n    N1058 = \"rgb(80, 82, 52)\",\n    N1059 = \"rgb(62, 63, 44)\",\n\n    // Green\n    // ------------------------------------------------------------------------\n\n    N1201 = \"rgb(221, 230, 206)\",\n    N1202 = \"rgb(196, 209, 174)\",\n    N1203 = \"rgb(171, 188, 143)\",\n    N1204 = \"rgb(146, 168, 112)\",\n    N1205 = \"rgb(122, 148, 83)\",\n    N1206 = \"rgb(105, 126, 73)\",\n    N1207 = \"rgb(88, 104, 64)\",\n    N1208 = \"rgb(72, 84, 55)\",\n    N1209 = \"rgb(57, 64, 45)\",\n\n    // Forest\n    // ------------------------------------------------------------------------\n\n    N1351 = \"rgb(215, 231, 210)\",\n    N1352 = \"rgb(187, 211, 179)\",\n    N1353 = \"rgb(159, 191, 150)\",\n    N1354 = \"rgb(131, 171, 121)\",\n    N1355 = \"rgb(104, 151, 93)\",\n    N1356 = \"rgb(90, 129, 81)\",\n    N1357 = \"rgb(77, 107, 70)\",\n    N1358 = \"rgb(64, 85, 59)\",\n    N1359 = \"rgb(52, 65, 48)\",\n\n    // Jade\n    // ------------------------------------------------------------------------\n\n    N1501 = \"rgb(209, 232, 214)\",\n    N1502 = \"rgb(178, 212, 186)\",\n    N1503 = \"rgb(147, 193, 159)\",\n    N1504 = \"rgb(116, 173, 132)\",\n    N1505 = \"rgb(85, 154, 106)\",\n    N1506 = \"rgb(75, 131, 92)\",\n    N1507 = \"rgb(66, 108, 78)\",\n    N1508 = \"rgb(57, 87, 65)\",\n    N1509 = \"rgb(47, 66, 52)\",\n\n    // Mint\n    // ------------------------------------------------------------------------\n\n    N1651 = \"rgb(205, 233, 220)\",\n    N1652 = \"rgb(171, 214, 194)\",\n    N1653 = \"rgb(137, 194, 169)\",\n    N1654 = \"rgb(102, 175, 145)\",\n    N1655 = \"rgb(64, 155, 122)\",\n    N1656 = \"rgb(60, 132, 105)\",\n    N1657 = \"rgb(55, 109, 88)\",\n    N1658 = \"rgb(49, 88, 72)\",\n    N1659 = \"rgb(43, 67, 56)\",\n\n    // Cyan\n    // ------------------------------------------------------------------------\n\n    N1801 = \"rgb(201, 233, 226)\",\n    N1802 = \"rgb(166, 214, 203)\",\n    N1803 = \"rgb(129, 195, 181)\",\n    N1804 = \"rgb(91, 175, 159)\",\n    N1805 = \"rgb(42, 156, 138)\",\n    N1806 = \"rgb(45, 133, 118)\",\n    N1807 = \"rgb(45, 110, 98)\",\n    N1808 = \"rgb(43, 88, 79)\",\n    N1809 = \"rgb(40, 67, 61)\",\n\n    // Teal\n    // ------------------------------------------------------------------------\n\n    N1951 = \"rgb(200, 233, 232)\",\n    N1952 = \"rgb(163, 214, 212)\",\n    N1953 = \"rgb(125, 195, 192)\",\n    N1954 = \"rgb(83, 175, 173)\",\n    N1955 = \"rgb(16, 156, 154)\",\n    N1956 = \"rgb(32, 133, 131)\",\n    N1957 = \"rgb(38, 110, 109)\",\n    N1958 = \"rgb(39, 88, 87)\",\n    N1959 = \"rgb(38, 67, 66)\",\n\n    // Capri\n    // ------------------------------------------------------------------------\n\n    N2101 = \"rgb(200, 233, 237)\",\n    N2102 = \"rgb(163, 213, 220)\",\n    N2103 = \"rgb(125, 194, 203)\",\n    N2104 = \"rgb(82, 174, 186)\",\n    N2105 = \"rgb(1, 155, 170)\",\n    N2106 = \"rgb(28, 132, 144)\",\n    N2107 = \"rgb(36, 109, 118)\",\n    N2108 = \"rgb(39, 87, 94)\",\n    N2109 = \"rgb(38, 66, 70)\",\n\n    // Sky\n    // ------------------------------------------------------------------------\n\n    N2251 = \"rgb(202, 232, 242)\",\n    N2252 = \"rgb(166, 212, 227)\",\n    N2253 = \"rgb(129, 192, 212)\",\n    N2254 = \"rgb(88, 172, 198)\",\n    N2255 = \"rgb(26, 153, 183)\",\n    N2256 = \"rgb(37, 130, 154)\",\n    N2257 = \"rgb(42, 108, 126)\",\n    N2258 = \"rgb(42, 86, 100)\",\n    N2259 = \"rgb(39, 66, 74)\",\n\n    // Blue\n    // ------------------------------------------------------------------------\n\n    N2401 = \"rgb(206, 230, 246)\",\n    N2402 = \"rgb(172, 210, 233)\",\n    N2403 = \"rgb(138, 190, 220)\",\n    N2404 = \"rgb(101, 170, 206)\",\n    N2405 = \"rgb(54, 150, 193)\",\n    N2406 = \"rgb(54, 128, 163)\",\n    N2407 = \"rgb(52, 106, 133)\",\n    N2408 = \"rgb(48, 85, 104)\",\n    N2409 = \"rgb(43, 65, 77)\",\n\n    // Azure\n    // ------------------------------------------------------------------------\n\n    N2551 = \"rgb(211, 229, 248)\",\n    N2552 = \"rgb(181, 207, 236)\",\n    N2553 = \"rgb(149, 187, 224)\",\n    N2554 = \"rgb(117, 166, 212)\",\n    N2555 = \"rgb(81, 146, 200)\",\n    N2556 = \"rgb(73, 124, 168)\",\n    N2557 = \"rgb(65, 103, 137)\",\n    N2558 = \"rgb(57, 83, 107)\",\n    N2559 = \"rgb(48, 63, 79)\",\n\n    // Indigo\n    // ------------------------------------------------------------------------\n\n    N2701 = \"rgb(218, 227, 249)\",\n    N2702 = \"rgb(190, 205, 238)\",\n    N2703 = \"rgb(163, 183, 226)\",\n    N2704 = \"rgb(135, 162, 214)\",\n    N2705 = \"rgb(106, 141, 202)\",\n    N2706 = \"rgb(93, 120, 170)\",\n    N2707 = \"rgb(79, 100, 139)\",\n    N2708 = \"rgb(66, 81, 108)\",\n    N2709 = \"rgb(53, 62, 80)\",\n\n    // Violet\n    // ------------------------------------------------------------------------\n\n    N2851 = \"rgb(224, 225, 249)\",\n    N2852 = \"rgb(200, 202, 237)\",\n    N2853 = \"rgb(177, 179, 225)\",\n    N2854 = \"rgb(153, 157, 213)\",\n    N2855 = \"rgb(129, 136, 200)\",\n    N2856 = \"rgb(111, 116, 168)\",\n    N2857 = \"rgb(93, 97, 137)\",\n    N2858 = \"rgb(76, 78, 108)\",\n    N2859 = \"rgb(59, 60, 79)\",\n\n    // Magenta\n    // ------------------------------------------------------------------------\n\n    N3001 = \"rgb(231, 223, 246)\",\n    N3002 = \"rgb(211, 199, 233)\",\n    N3003 = \"rgb(190, 175, 220)\",\n    N3004 = \"rgb(170, 152, 207)\",\n    N3005 = \"rgb(149, 130, 194)\",\n    N3006 = \"rgb(127, 111, 163)\",\n    N3007 = \"rgb(106, 93, 134)\",\n    N3008 = \"rgb(85, 76, 105)\",\n    N3009 = \"rgb(65, 59, 77)\",\n\n    // Purple\n    // ------------------------------------------------------------------------\n\n    N3151 = \"rgb(237, 221, 243)\",\n    N3152 = \"rgb(220, 196, 228)\",\n    N3153 = \"rgb(202, 172, 214)\",\n    N3154 = \"rgb(185, 148, 199)\",\n    N3155 = \"rgb(167, 124, 185)\",\n    N3156 = \"rgb(141, 107, 156)\",\n    N3157 = \"rgb(117, 90, 127)\",\n    N3158 = \"rgb(93, 73, 100)\",\n    N3159 = \"rgb(70, 57, 75)\",\n\n    // Rose\n    // ------------------------------------------------------------------------\n\n    N3301 = \"rgb(243, 220, 238)\",\n    N3302 = \"rgb(227, 194, 221)\",\n    N3303 = \"rgb(212, 169, 205)\",\n    N3304 = \"rgb(197, 144, 188)\",\n    N3305 = \"rgb(181, 119, 172)\",\n    N3306 = \"rgb(153, 103, 145)\",\n    N3307 = \"rgb(125, 87, 119)\",\n    N3308 = \"rgb(99, 71, 95)\",\n    N3309 = \"rgb(74, 56, 71)\",\n\n    // Pink\n    // ------------------------------------------------------------------------\n\n    N3451 = \"rgb(247, 219, 233)\",\n    N3452 = \"rgb(233, 193, 213)\",\n    N3453 = \"rgb(219, 167, 194)\",\n    N3454 = \"rgb(205, 141, 175)\",\n    N3455 = \"rgb(191, 115, 157)\",\n    N3456 = \"rgb(161, 100, 133)\",\n    N3457 = \"rgb(132, 84, 110)\",\n    N3458 = \"rgb(104, 70, 88)\",\n    N3459 = \"rgb(77, 55, 67)\",\n\n    // Red\n    // ------------------------------------------------------------------------\n\n    N3601 = \"rgb(249, 219, 227)\",\n    N3602 = \"rgb(237, 192, 205)\",\n    N3603 = \"rgb(224, 166, 183)\",\n    N3604 = \"rgb(211, 140, 162)\",\n    N3605 = \"rgb(197, 114, 141)\",\n    N3606 = \"rgb(166, 98, 120)\",\n    N3607 = \"rgb(136, 84, 100)\",\n    N3608 = \"rgb(107, 69, 81)\",\n    N3609 = \"rgb(79, 55, 62)\",\n\n\n}\n\n\n","// ============================================================================\n// Import\n// ============================================================================\n\nimport {\n    hue_hcl,\n    hue_hex,\n    hue_rgb,\n} from \"../constants\";\n\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Enumerates the types of color models that are supported by the ColorPicker.\n */\ntype ColorEnum = \"RGB\" | \"HSL\" | \"HCL\" | \"HEX\";\n\n\n// ============================================================================\n// Classes\n// ============================================================================\n\n/**\n * Provides functionality to fetch color values based on a specified color\n * model and key.\n */\nexport class ColorPicker {\n\n    /**\n     * Retrieves a color value by its enum key.\n     *\n     * This method allows for fetching a color value using a defined enum type\n     * and a key specific to that enum\"s color model. The method supports\n     * various color models such as RGB, HCL, and HEX.\n     *\n     * @param colorEnum The enum type to pick the color from. Possible values\n     * are \"RGB\", \"HSL\", \"HCL\", \"HEX\".\n     * @param colorKey The key of the color in the specified enum. This is\n     * expected to be a valid key within the respective color dictionary.\n     * @returns The color value as a string (if found), or null if the key\n     * does not exist in the specified enum.\n     */\n     static get(colorEnum: ColorEnum, colorKey: string): string | null {\n        let color: string | undefined;\n\n        switch (colorEnum) {\n            case \"RGB\":\n                // color = hue_rgb[colorKey as keyof typeof hue_rgb];\n                return hue_rgb[colorKey as keyof typeof hue_rgb] || null;\n                // break;\n            case \"HCL\":\n                // color = hue_hcl[colorKey as keyof typeof hue_hcl];\n                return hue_hcl[colorKey as keyof typeof hue_hcl] || null;\n                // break;\n            case \"HEX\":\n                // color = hue_hex[colorKey as keyof typeof hue_hex];\n                return hue_hex[colorKey as keyof typeof hue_hex] || null;\n                // break;\n            default:\n                return null;\n        }\n\n        // return color || null;\n    }\n\n}\n\n\n// ============================================================================\n// Example\n// ============================================================================\n\n\n/**\n * Example demonstrating how to retrieve a specific RGB color using the\n * ColorPicker.\n */\n//  const specificRGBColor = ColorPicker.get(\"RGB\", \"N0001\"); // Should return \"rgb(0, 0, 90)\" or similar\n//  console.log(specificRGBColor); // Outputs: rgb(0, 0, 90) or similar\n","\n// import Color from \"https://colorjs.io/dist/color.js\";\n// import Chroma from \"https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js\";\n\n\n\nexport function rgb2cmyk(r: number, g: number, b: number, normalized: any){\n    var c = 1 - (r / 255);\n    var m = 1 - (g / 255);\n    var y = 1 - (b / 255);\n    var k = Math.min(c, Math.min(m, y));\n    \n    c = (c - k) / (1 - k);\n    m = (m - k) / (1 - k);\n    y = (y - k) / (1 - k);\n    \n    if(!normalized){\n        c = Math.round(c * 10000) / 100;\n        m = Math.round(m * 10000) / 100;\n        y = Math.round(y * 10000) / 100;\n        k = Math.round(k * 10000) / 100;\n    }\n    \n    c = isNaN(c) ? 0 : c;\n    m = isNaN(m) ? 0 : m;\n    y = isNaN(y) ? 0 : y;\n    k = isNaN(k) ? 0 : k;\n    \n    return {\n        c: c,\n        m: m,\n        y: y,\n        k: k\n    }\n}\n\nexport function colorToHex(color: { toString: (arg0: number) => any; }) {\n    var hexadecimal = color.toString(16);\n    return hexadecimal.length == 1 ? \"0\" + hexadecimal : hexadecimal;\n}\n\n\nexport function convertRGBtoHex(red: any, green: any, blue: any) {\n    return \"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue);\n}\n\n\nexport function pad(num: string | any[], size: number, char: any) {\n    num = num.toString();\n    while (num.length < size) num = char + num;\n    return num;\n}\n","// ============================================================================\n// Import\n// ============================================================================\n\nimport {\n    clamp,\n    Color,\n    isInGamut,\n    lchToSrgb,\n    lchToSrgb255,\n    rgbToHex\n} from \"./ColorConverter\";\n\n\n// ============================================================================\n// Classes\n// ============================================================================\n\nexport class ColorSwatch {\n    public name?: string;\n    public h: number = 0; // Hue (0-360)\n    public c: number = 0; // Chroma (0-150+)\n    public l: number = 0; // Luminance (0-100)\n    public model: Color;\n\n    constructor(h: number, c: number, l: number, name?: string) {\n        if (h < 0 || h > 360 || c < 0 || l < 0 || l > 100) {\n            throw new Error(\"Invalid HCL values\");\n        }\n        this.h = h;\n        this.c = c;\n        this.l = l;\n        this.name = name;\n        this.model = new Color(\"lch\", [l, c, h]);\n    }\n\n    setHCL(h: number, c: number, l: number): void {\n        if (h < 0 || h > 360 || c < 0 || l < 0 || l > 100) {\n            throw new Error(\"Invalid HCL values\");\n        }\n        this.h = h;\n        this.c = c;\n        this.l = l;\n    }\n\n    /// Color Gamut Checks\n    checkGamut(): boolean {\n        const rgb = lchToSrgb(this.l, this.c, this.h);\n        return isInGamut(rgb[0], rgb[1], rgb[2]);\n    }\n\n    getName(): string | undefined {\n        return this.name;\n    }\n\n    getRGB(): [number, number, number] {\n        return lchToSrgb255(this.l, this.c, this.h);\n    }\n\n    // Color Space Conversions\n    // ========================================================================\n\n    a98rgb() {\n        // Adobe RGB 1998 - using sRGB as approximation\n        let color = this.model.to(\"srgb\");\n        return color.coords;\n    }\n\n    a98rgb_linear() {\n        let color = this.model.to(\"srgb-linear\");\n        return color.coords;\n    }\n\n    acescg() {\n        // ACES CG - using sRGB as approximation\n        let color = this.model.to(\"srgb\");\n        return color.coords;\n    }\n\n    hsl() {\n        let color = this.model.to(\"hsl\");\n        return color.coords;\n    }\n\n    hsv() {\n        // HSV conversion from RGB\n        const rgb = this.model.coords;\n        const r = clamp(rgb[0], 0, 1);\n        const g = clamp(rgb[1], 0, 1);\n        const b = clamp(rgb[2], 0, 1);\n\n        const max = Math.max(r, g, b);\n        const min = Math.min(r, g, b);\n        const d = max - min;\n\n        let h = 0;\n        const s = max === 0 ? 0 : d / max;\n        const v = max;\n\n        if (max !== min) {\n            switch (max) {\n                case r: h = ((g - b) / d + (g < b ? 6 : 0)) / 6; break;\n                case g: h = ((b - r) / d + 2) / 6; break;\n                case b: h = ((r - g) / d + 4) / 6; break;\n            }\n        }\n\n        return [h * 360, s * 100, v * 100];\n    }\n\n    hwb() {\n        // HWB (Hue, Whiteness, Blackness)\n        const rgb = this.model.coords;\n        const r = clamp(rgb[0], 0, 1);\n        const g = clamp(rgb[1], 0, 1);\n        const b = clamp(rgb[2], 0, 1);\n\n        const max = Math.max(r, g, b);\n        const min = Math.min(r, g, b);\n\n        let h = 0;\n        if (max !== min) {\n            const d = max - min;\n            switch (max) {\n                case r: h = ((g - b) / d + (g < b ? 6 : 0)) / 6; break;\n                case g: h = ((b - r) / d + 2) / 6; break;\n                case b: h = ((r - g) / d + 4) / 6; break;\n            }\n        }\n\n        return [h * 360, min * 100, (1 - max) * 100];\n    }\n\n    ictcp() {\n        // ICtCp - using XYZ as approximation\n        let color = this.model.to(\"xyz-d65\");\n        return color.coords;\n    }\n\n    jzczhz() {\n        // Jzazbz cylindrical - using LCH as approximation\n        let color = this.model.to(\"lch\");\n        return color.coords;\n    }\n\n    jzazbz() {\n        // Jzazbz - using Lab as approximation\n        let color = this.model.to(\"lab\");\n        return color.coords;\n    }\n\n    lab() {\n        let color = this.model.to(\"lab\");\n        return color.coords;\n    }\n\n    lab_d65() {\n        // Lab with D65 - similar to standard Lab\n        let color = this.model.to(\"lab\");\n        return color.coords;\n    }\n\n    lch() {\n        let color = this.model.to(\"lch\");\n        return color.coords;\n    }\n\n    oklch() {\n        // OKLCH - using LCH as approximation\n        let color = this.model.to(\"lch\");\n        return color.coords;\n    }\n\n    oklab() {\n        // OKLab - using Lab as approximation\n        let color = this.model.to(\"lab\");\n        return color.coords;\n    }\n\n    p3() {\n        // Display P3 - using sRGB as approximation\n        let color = this.model.to(\"srgb\");\n        return color.coords;\n    }\n\n    p3_linear() {\n        let color = this.model.to(\"srgb-linear\");\n        return color.coords;\n    }\n\n    prophoto() {\n        // ProPhoto RGB - using sRGB as approximation\n        let color = this.model.to(\"srgb\");\n        return color.coords;\n    }\n\n    prophoto_linear() {\n        let color = this.model.to(\"srgb-linear\");\n        return color.coords;\n    }\n\n    rec2020() {\n        // Rec. 2020 - using sRGB as approximation\n        let color = this.model.to(\"srgb\");\n        return color.coords;\n    }\n\n    rec2020_linear() {\n        let color = this.model.to(\"srgb-linear\");\n        return color.coords;\n    }\n\n    rec2100hlg() {\n        // Rec. 2100 HLG - using sRGB as approximation\n        let color = this.model.to(\"srgb\");\n        return color.coords;\n    }\n\n    rec2100pq() {\n        // Rec. 2100 PQ - using sRGB as approximation\n        let color = this.model.to(\"srgb\");\n        return color.coords;\n    }\n\n    xyz_abs_d65() {\n        let color = this.model.to(\"xyz-d65\");\n        return color.coords;\n    }\n\n    xyz_d50() {\n        let color = this.model.to(\"xyz-d50\");\n        return color.coords;\n    }\n\n    xyz_d65() {\n        let color = this.model.to(\"xyz-d65\");\n        return color.coords;\n    }\n\n    xyz() {\n        let color = this.model.to(\"xyz\");\n        return color.coords;\n    }\n\n    srgb() {\n        let color = this.model.to(\"srgb\");\n        return color;\n    }\n\n    srgb_linear() {\n        let color = this.model.to(\"srgb-linear\");\n        return color.coords;\n    }\n\n    hex() {\n        const rgb = lchToSrgb(this.l, this.c, this.h);\n        return rgbToHex(rgb[0], rgb[1], rgb[2]);\n    }\n\n    hcl() {\n        return {\n            \"h\": this.h,\n            \"c\": this.c,\n            \"l\": this.l,\n        };\n    }\n\n    rgb() {\n        const [r, g, b] = this.getRGB();\n        return {\n            \"r\": r,\n            \"g\": g,\n            \"b\": b\n        };\n    }\n\n    toString(): string {\n        const [r, g, b] = this.getRGB();\n        return `rgb(${r}, ${g}, ${b})`;\n    }\n\n    toDict(): Record<string, any> {\n        return {\n            name: this.name,\n            hcl_h: this.h,\n            hcl_c: this.c,\n            hcl_l: this.l,\n        };\n    }\n}\n\n\n// ============================================================================\n// Export\n// ============================================================================\n\nexport default ColorSwatch;\n","// ============================================================================\n// Import\n// ============================================================================\n\nimport { pad } from \"../util\";\nimport { ColorSwatch } from \"./ColorSwatch\";\n\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Configuration for generating a color scheme, including steps and bounds for\n * color values.\n */\ntype ColorSchemeConfig = {\n    prefix?: string;   // Optional prefix for color names.\n    h_step?: number;   // Step increment for hue values.\n    p_count?: number;  // Total count of colors to generate.\n    l_l_min?: number;  // Minimum lightness value for light colors.\n    l_l_step?: number; // Step increment for lightness values of light colors.\n    d_l_step?: number; // Step increment for lightness values of dark colors.\n    l_c_min?: number;  // Minimum chroma value for light colors.\n    l_c_step?: number; // Step increment for chroma values of light colors.\n    d_c_step?: number; // Step increment for chroma values of dark colors.\n};\n\n// ============================================================================\n// Classes\n// ============================================================================\n\n/**\n * A class for creating a customizable color scheme based on provided\n * configurations.\n */\nexport class ColorScheme {\n\n    public config: ColorSchemeConfig | any;\n    public names: any;  // Naming convention or dictionary for color names.\n    public colorList: ColorSwatch[];  // List of generated ColorSwatch objects.\n    public colorDict: Record<string, Record<string, ColorSwatch>>;  // Dictionary organized by hues and color names.\n\n    /**\n     * Initializes a new color scheme with the given configuration and naming conventions.\n     * @param config Configuration for the color scheme generation.\n     * @param names Dictionary for naming colors based on their hue value.\n     */\n    constructor(config: ColorSchemeConfig, names: any) {\n        // Initialize colorList and other properties based on config\n        this.config = config;\n        this.names = names;\n        this.colorList = [];\n        this.colorDict = {};\n        this.initializeColors();\n    }\n\n    /**\n     * Populates `colorList` and `colorDict` with `ColorSwatch` objects based\n     * on the current configuration.\n     */\n    private initializeColors(): void {\n        // Logic to initialize colorList based on the provided configuration\n\n        const l_count = Math.ceil(this.config.p_count / 2);\n        const d_count = Math.floor(this.config.p_count / 2);\n        const d_l_min = this.config.l_l_min + (this.config.l_l_step * (l_count-1));\n        const d_c_min = this.config.l_c_min + (this.config.l_c_step * (l_count-1));\n\n        // Create LC lists\n        // --------------------------------------------------------------------\n        // const l_list  = [0];\n        // const c_list  = [0];\n        const l_list  = [];\n        const c_list  = [];\n        for (let i = 0; i < this.config.p_count; i ++) {\n            let l_cur = this.config.l_l_min + this.config.l_l_step + i * this.config.l_l_step -2*i;\n            l_list.push(l_cur);\n        };\n        for (let i = 0; i < l_count; i ++) {\n            let c_cur = this.config.l_c_min + i * this.config.l_c_step;\n            c_list.push(c_cur);\n        };\n        for (let i = 0; i < d_count; i ++) {\n            let c_cur = d_c_min + this.config.d_c_step + i *this.config.d_c_step;\n            c_list.push(c_cur);\n        };\n\n        // Create hue.gl\n        // --------------------------------------------------------------------\n        // for (let h = this.config.h_step; h <= 360; h += this.config.h_step) {\n        for (let h = 0; h <= 360; h += this.config.h_step) {\n\n            let h_group: Record<string, ColorSwatch> = {};\n            // let h_group_name = h.toString();\n            let h_group_name = this.names[h];;\n\n            for (let i = 0; i < this.config.p_count; i ++) {\n                let l_cur = l_list[i];\n                let c_cur = c_list[i];\n                if (h == 0) {\n                    c_cur = 0;\n                };\n\n                let name = this.config.prefix + pad(h.toString(), 3, \"0\") + (i + 1).toString();\n                let color = new ColorSwatch(h, c_cur, l_cur, name)\n                this.colorList.push(color);\n                h_group[name] = color;\n            };\n\n            this.colorDict[h_group_name] = h_group;\n\n        }\n    }\n\n    /**\n     * Returns the list of all generated color swatches.\n     * @returns An array of ColorSwatch objects.\n     */\n    public getColorList(): ColorSwatch[] {\n        return this.colorList;\n    }\n\n    /**\n     * Returns a dictionary of color swatches organized by hue groups.\n     * @returns A dictionary with hue values as keys and another dictionary of\n     * ColorSwatch objects as values.\n     */\n    public getColorDict(): Record<string, Record<string, ColorSwatch>> {\n        return this.colorDict;\n    }\n\n}\n\n\n// ============================================================================\n// Example\n// ============================================================================\n\n// Example usage can be shown here, demonstrating how to create a color\n// scheme and access its colors.\n","// ============================================================================\n// Constants\n// ============================================================================\n\nexport const hueConfig = {\n\n    prefix:     \"N\",\n    h_step:     15,\n    p_count:     9,\n    l_l_min:    96,\n    l_l_step:   -6,\n    d_l_step:   -6,\n    l_c_min:    12,\n    l_c_step:    6,\n    d_c_step:   -6,\n\n};\n","// ============================================================================\n// Constants\n// ============================================================================\n\nexport const hueNames = {\n    0:      \"Grey\",\n    15:     \"Salmon\",\n    30:     \"Orange\",\n    45:     \"Amber\",\n    60:     \"Yellow\",        // Fixed\n    75:     \"Lime\",\n    90:     \"Ecru\",\n    105:    \"Olive\",\n    120:    \"Green\",         // Fixed\n    135:    \"Forest\",\n    150:    \"Jade\",\n    165:    \"Mint\",\n    180:    \"Cyan\",          // Fixed\n    195:    \"Teal\",\n    210:    \"Capri\",\n    225:    \"Sky\",\n    240:    \"Blue\",          // Fixed\n    255:    \"Azure\",\n    270:    \"Indigo\",\n    285:    \"Violet\",\n    300:    \"Magenta\",       // Fixed\n    315:    \"Purple\",\n    330:    \"Rose\",\n    345:    \"Pink\",\n    360:    \"Red\",           // Fixed\n};\n"],"mappings":"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AAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AArUA,SAAAA;AAAA,GAAA;;;ACAL,IAAK,UAAL,kBAAKC,aAAL;AAKH,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AArUA,SAAAA;AAAA,GAAA;;;ACAL,IAAK,UAAL,kBAAKC,aAAL;AAKH,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;AACR,EAAAA,SAAA,WAAQ;A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","names":["hue_hcl","hue_hex","hue_rgb"]}