diff --git a/.vscode/launch.json b/.vscode/launch.json index 289249c..1d6002f 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -128,6 +128,17 @@ }, "args": ["png", "svg"] }, + { + "type": "lldb", + "request": "launch", + "name": "stars example", + "cargo": { + "args": [ + "build", "--example", "stars", + "--features", "data-csv" + ] + }, + }, { "type": "lldb", "request": "launch", diff --git a/Cargo.lock b/Cargo.lock index e1a1261..373ed8c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3832,6 +3832,9 @@ dependencies = [ "plotive", "plotive-pxl", "plotive-svg", + "rand", + "rand_chacha", + "rand_distr", "similar", "tiny-skia", ] diff --git a/Cargo.toml b/Cargo.toml index 744918d..dff085c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,9 +26,9 @@ polars = { workspace = true, optional = true } plotive-iced = { path = "iced", features = ["clipboard"] } plotive-svg = { path = "svg" } plotive-pxl = { path = "pxl" } -rand = "0.9.2" -rand_distr = "0.5.1" -rand_chacha = "0.9.0" +rand.workspace = true +rand_distr.workspace = true +rand_chacha.workspace = true ode_solvers = "0.6.1" [features] @@ -100,6 +100,10 @@ name = "readme" [[example]] name = "sine" +[[example]] +name = "stars" +required-features = ["data-csv"] + [[example]] name = "subplots" required-features = ["utils"] @@ -142,6 +146,9 @@ iced_font_awesome = "0.4.0" log = "0.4" miette = { version = "7.6.0", features = ["fancy"] } polars = { version = "0.50.0", features = ["lazy"] } +rand = "0.9.2" +rand_distr = "0.5.1" +rand_chacha = "0.9.0" rfd = "0.17.1" rustybuzz = "0.20.1" tiny-skia = "0.11.4" diff --git a/base/src/color.rs b/base/src/color.rs index d6f129c..c5751df 100644 --- a/base/src/color.rs +++ b/base/src/color.rs @@ -1,3 +1,4 @@ +//! This module defines color types and conversions between them. use std::str::FromStr; use std::{error, fmt}; @@ -7,12 +8,12 @@ mod xkcd; pub use css4::*; pub trait ResolveColor { - fn resolve_color(&self, color: &Color) -> ColorU8; + fn resolve_color(&self, color: &Color) -> Rgba8; } pub trait Color: Clone + Copy { #[inline] - fn resolve(&self, rc: &R) -> ColorU8 + fn resolve(&self, rc: &R) -> Rgba8 where R: ResolveColor, Self: Sized, @@ -21,51 +22,94 @@ pub trait Color: Clone + Copy { } } -impl Color for ColorU8 {} +impl Color for Rgba8 {} -impl ResolveColor for () { - fn resolve_color(&self, color: &ColorU8) -> ColorU8 { +impl ResolveColor for () { + fn resolve_color(&self, color: &Rgba8) -> Rgba8 { *color } } +/// A simple color type with 8-bit RGB components, including an alpha channel. #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] -pub struct ColorU8 { - r: u8, - g: u8, - b: u8, - a: u8, -} +pub struct Rgba8(u8, u8, u8, u8); + +impl Rgba8 { + pub const fn new(r: u8, g: u8, b: u8, a: u8) -> Self { + Self(r, g, b, a) + } + + /// Get the red component of the color. + pub const fn r(&self) -> u8 { + self.0 + } + + /// Get the green component of the color. + pub const fn g(&self) -> u8 { + self.1 + } + + /// Get the blue component of the color. + pub const fn b(&self) -> u8 { + self.2 + } + + /// Get the alpha channel of the color. + pub const fn a(&self) -> u8 { + self.3 + } + + /// Get the HTML hex string representation of the color, e.g. `#ff0000` for red. + pub fn html(&self) -> String { + if self.a() == 255 { + format!("#{:02x}{:02x}{:02x}", self.r(), self.g(), self.b()) + } else { + format!( + "#{:02x}{:02x}{:02x}{:02x}", + self.r(), + self.g(), + self.b(), + self.a() + ) + } + } -impl ColorU8 { - pub const fn from_rgb_f32(r: f32, g: f32, b: f32) -> Self { - let r = (r.clamp(0.0, 1.0) * 255.0) as u8; - let g = (g.clamp(0.0, 1.0) * 255.0) as u8; - let b = (b.clamp(0.0, 1.0) * 255.0) as u8; - ColorU8 { r, g, b, a: 255 } + /// Get the RGBA components of the color as an array. + pub const fn arr(&self) -> [u8; 4] { + [self.0, self.1, self.2, self.3] } - pub const fn from_rgba_f32(r: f32, g: f32, b: f32, a: f32) -> Self { - let r = (r.clamp(0.0, 1.0) * 255.0) as u8; - let g = (g.clamp(0.0, 1.0) * 255.0) as u8; - let b = (b.clamp(0.0, 1.0) * 255.0) as u8; - let a = (a.clamp(0.0, 1.0) * 255.0) as u8; - ColorU8 { r, g, b, a } + /// Get the Rgb8 representation of the color, ignoring the alpha channel. + pub const fn rgb(&self) -> Rgb8 { + Rgb8(self.0, self.1, self.2) } - pub const fn from_rgb(r: u8, g: u8, b: u8) -> Self { - ColorU8 { r, g, b, a: 255 } + /// Split the representation into Rgb8 representation and the optional opacity value. + /// The opacity value is None if the alpha channel is 255 (fully opaque), otherwise it is Some(alpha / 255.0). + pub const fn split_rgb_opacity(&self) -> (Rgb8, Option) { + let opacity = if self.a() == 255 { + None + } else { + Some(self.a() as f32 / 255.0) + }; + (Rgb8(self.0, self.1, self.2), opacity) } - pub const fn from_rgba(r: u8, g: u8, b: u8, a: u8) -> Self { - ColorU8 { r, g, b, a } + /// Compute the relative luminance of the color, in linear RGB space. + /// The alpha channel is ignored for this computation. + pub fn luminance(&self) -> f32 { + let lin: LinRgb = self.rgb().into(); + lin.luminance() } /// Parse a color from an HTML hex string, e.g. `#ff0000` or `#f00` for red. /// Supports also alpha channel: `#ff000080` or `#f008`. - pub const fn from_html(hex: &[u8]) -> Self { + /// The hex string must start with a `#` and be followed by either 3, 4, 6, or 8 hexadecimal digits. + /// + /// Panics if the hex string is invalid, e.g. if it contains non-hexadecimal characters or has an invalid length. + pub const fn from_hex(hex: &[u8]) -> Self { if hex[0] != b'#' { - panic!("Invalid hex color"); + panic!("Hex color must start with a #"); } match hex.len() { 4 => { @@ -75,7 +119,7 @@ impl ColorU8 { let r = r << 4 | r; let g = g << 4 | g; let b = b << 4 | b; - ColorU8::from_rgb(r, g, b) + Rgba8::new(r, g, b, 255) } 5 => { let r = hex_to_u8(hex[1]); @@ -86,110 +130,102 @@ impl ColorU8 { let g = g << 4 | g; let b = b << 4 | b; let a = a << 4 | a; - ColorU8::from_rgba(r, g, b, a) + Rgba8::new(r, g, b, a) } 7 => { let r = hex_to_u8(hex[1]) << 4 | hex_to_u8(hex[2]); let g = hex_to_u8(hex[3]) << 4 | hex_to_u8(hex[4]); let b = hex_to_u8(hex[5]) << 4 | hex_to_u8(hex[6]); - ColorU8::from_rgb(r, g, b) + Rgba8::new(r, g, b, 255) } 9 => { let r = hex_to_u8(hex[1]) << 4 | hex_to_u8(hex[2]); let g = hex_to_u8(hex[3]) << 4 | hex_to_u8(hex[4]); let b = hex_to_u8(hex[5]) << 4 | hex_to_u8(hex[6]); let a = hex_to_u8(hex[7]) << 4 | hex_to_u8(hex[8]); - ColorU8::from_rgba(r, g, b, a) + Rgba8::new(r, g, b, a) } _ => panic!("Invalid hex color"), } } +} - pub const fn rgb(&self) -> [u8; 3] { - [self.r, self.g, self.b] - } - - pub const fn rgba(&self) -> [u8; 4] { - [self.r, self.g, self.b, self.a] - } - - pub const fn rgb_f32(&self) -> [f32; 3] { - [ - self.r as f32 / 255.0, - self.g as f32 / 255.0, - self.b as f32 / 255.0, - ] - } - - pub const fn rgba_f32(&self) -> [f32; 4] { - [ - self.r as f32 / 255.0, - self.g as f32 / 255.0, - self.b as f32 / 255.0, - self.a as f32 / 255.0, - ] - } - - pub const fn red(&self) -> u8 { - self.r - } +/// A simple color type with 8-bit RGB components. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct Rgb8(u8, u8, u8); - pub const fn green(&self) -> u8 { - self.g +impl Rgb8 { + pub const fn new(r: u8, g: u8, b: u8) -> Self { + Self(r, g, b) } - pub const fn blue(&self) -> u8 { - self.b + /// Get the red component of the color. + pub const fn r(&self) -> u8 { + self.0 } - pub const fn alpha(&self) -> u8 { - self.a + /// Get the green component of the color. + pub const fn g(&self) -> u8 { + self.1 } - pub const fn opacity(&self) -> Option { - if self.a == 255 { - None - } else { - Some(self.a as f32 / 255.0) - } + /// Get the blue component of the color. + pub const fn b(&self) -> u8 { + self.2 } + /// Get the HTML hex string representation of the color, e.g. `#ff0000` for red. pub fn html(&self) -> String { - format!("#{:02x}{:02x}{:02x}", self.r, self.g, self.b) + format!("#{:02x}{:02x}{:02x}", self.r(), self.g(), self.b()) } - pub const fn with_red(self, r: u8) -> Self { - ColorU8 { r, ..self } + /// Get the RGB components of the color as an array. + pub const fn arr(&self) -> [u8; 3] { + [self.0, self.1, self.2] } - pub const fn with_green(self, g: u8) -> Self { - ColorU8 { g, ..self } + /// Compute the relative luminance of the color, in linear RGB space. + pub fn luminance(&self) -> f32 { + let lin: LinRgb = (*self).into(); + lin.luminance() } - pub const fn with_blue(self, b: u8) -> Self { - ColorU8 { b, ..self } + /// Get this color with an alpha channel, with the given alpha value. + pub const fn with_a(&self, a: u8) -> Rgba8 { + Rgba8(self.0, self.1, self.2, a) } - pub const fn with_alpha(self, a: u8) -> Self { - ColorU8 { a, ..self } + /// Get this color with an opaque alpha channel + pub const fn opaque(&self) -> Rgba8 { + Rgba8(self.0, self.1, self.2, 255) } - pub const fn with_opacity(self, opacity: f32) -> Self { - assert!(0.0 <= opacity && opacity <= 1.0); - ColorU8 { - a: (self.a as f32 * opacity) as u8, - ..self + /// Parse a color from an HTML hex string, e.g. `#ff0000` or `#f00` for red. + /// The hex string must start with a `#` and be followed by either 3 or 6 hexadecimal digits. + /// + /// Panics if the hex string is invalid, e.g. if it contains non-hexadecimal characters or has an invalid length. + pub const fn from_hex(hex: &[u8]) -> Self { + if hex[0] != b'#' { + panic!("Hex color must start with a #"); + } + match hex.len() { + 4 => { + let r = hex_to_u8(hex[1]); + let g = hex_to_u8(hex[2]); + let b = hex_to_u8(hex[3]); + let r = r << 4 | r; + let g = g << 4 | g; + let b = b << 4 | b; + Rgb8::new(r, g, b) + } + 7 => { + let r = hex_to_u8(hex[1]) << 4 | hex_to_u8(hex[2]); + let g = hex_to_u8(hex[3]) << 4 | hex_to_u8(hex[4]); + let b = hex_to_u8(hex[5]) << 4 | hex_to_u8(hex[6]); + Rgb8::new(r, g, b) + } + _ => panic!("Invalid hex color"), } - } - - pub const fn without_opacity(self) -> Self { - ColorU8 { a: 255, ..self } - } - - pub const fn luminance(&self) -> f32 { - 0.2126 * (self.r as f32 / 255.0) - + 0.7152 * (self.g as f32 / 255.0) - + 0.0722 * (self.b as f32 / 255.0) } } @@ -206,7 +242,21 @@ const fn is_hex_char(c: u8) -> bool { matches!(c, b'0'..=b'9' | b'a'..=b'f' | b'A'..=b'F') } -/// Parsing error for ColorU8 +/// Rgba8 and Rgb8 are considered equal if their RGB components are equal and the alpha channel of Rgba8 is 255. +impl PartialEq for Rgba8 { + fn eq(&self, other: &Rgb8) -> bool { + self.0 == other.0 && self.1 == other.1 && self.2 == other.2 && self.3 == 255 + } +} + +/// Rgba8 and Rgb8 are considered equal if their RGB components are equal and the alpha channel of Rgba8 is 255. +impl PartialEq for Rgb8 { + fn eq(&self, other: &Rgba8) -> bool { + self.0 == other.0 && self.1 == other.1 && self.2 == other.2 && other.3 == 255 + } +} + +/// Parsing error for Rgba8 #[derive(Debug)] pub enum ParseError { InvalidFormat, @@ -282,12 +332,66 @@ fn parse_alpha(s: &str) -> Result { } } -/// Implement FromStr for ColorU8 to parse color from strings +/// Implement FromStr for Rgb8 to parse color from strings +/// Supported formats: +/// - HTML hex: `#rrggbb`, `#rgb` +/// - CSS rgb(): `rgb(r,g,b)` where r,g,b are 0-255 or percentages +/// - named color from CSS4 or XKCD color names +impl FromStr for Rgb8 { + type Err = ParseError; + + fn from_str(s: &str) -> Result { + let raw = s.trim(); + if raw.is_empty() { + return Err(ParseError::InvalidFormat); + } + + // HTML hex: starts with '#' + if raw.starts_with('#') { + // safe to call from_hex, but we should validate length first + let bytes = raw.as_bytes(); + match bytes.len() { + 4 | 7 => { + if bytes[1..].iter().all(|&c| is_hex_char(c)) { + Ok(Rgb8::from_hex(bytes)) + } else { + Err(ParseError::InvalidHex) + } + } + _ => Err(ParseError::InvalidHex), + } + } + // rgb(...) + else if raw.to_ascii_lowercase().starts_with("rgb(") && raw.ends_with(')') { + let inner = &raw[4..raw.len() - 1]; + let parts: Vec<&str> = inner.split(',').collect(); + if parts.len() != 3 { + return Err(ParseError::InvalidFormat); + } + let r = parse_component_0_255(parts[0])?; + let g = parse_component_0_255(parts[1])?; + let b = parse_component_0_255(parts[2])?; + Ok(Rgb8::new(r, g, b)) + } + // named color + else { + if let Some(col) = css4::lookup_name(raw) { + Ok(col.rgb()) + } else if let Some(col) = xkcd::lookup_name(raw) { + Ok(col.rgb()) + } else { + Err(ParseError::UnknownName) + } + } + } +} + +/// Implement FromStr for Rgba8 to parse color from strings /// Supported formats: /// - HTML hex: `#rrggbb`, `#rgb`, `#rrggbbaa`, `#rgba` /// - CSS rgb(): `rgb(r,g,b)` where r,g,b are 0-255 or percentages /// - CSS rgba(): `rgba(r,g,b,a)` where r,g,b are 0-255 or percentages, a is 0.0-1.0 -impl FromStr for ColorU8 { +impl FromStr for Rgba8 { type Err = ParseError; fn from_str(s: &str) -> Result { @@ -298,12 +402,12 @@ impl FromStr for ColorU8 { // HTML hex: starts with '#' if raw.starts_with('#') { - // safe to call from_html, but we should validate length first + // safe to call from_hex, but we should validate length first let bytes = raw.as_bytes(); match bytes.len() { 4 | 5 | 7 | 9 => { if bytes[1..].iter().all(|&c| is_hex_char(c)) { - Ok(ColorU8::from_html(bytes)) + Ok(Rgba8::from_hex(bytes)) } else { Err(ParseError::InvalidHex) } @@ -321,7 +425,7 @@ impl FromStr for ColorU8 { let r = parse_component_0_255(parts[0])?; let g = parse_component_0_255(parts[1])?; let b = parse_component_0_255(parts[2])?; - Ok(ColorU8::from_rgb(r, g, b)) + Ok(Rgb8::new(r, g, b).with_a(255)) } else if raw.to_ascii_lowercase().starts_with("rgba(") && raw.ends_with(')') { let inner = &raw[5..raw.len() - 1]; let parts: Vec<&str> = inner.split(',').collect(); @@ -332,7 +436,7 @@ impl FromStr for ColorU8 { let g = parse_component_0_255(parts[1])?; let b = parse_component_0_255(parts[2])?; let a = parse_alpha(parts[3])?; - Ok(ColorU8::from_rgba(r, g, b, a)) + Ok(Rgba8::new(r, g, b, a)) } // named color else { @@ -347,6 +451,352 @@ impl FromStr for ColorU8 { } } +/// A trait for interpolating between two colors, used for color scales in heatmaps and similar plots. +pub trait Lerp { + /// Interpolate between two colors using a parameter t in the range [0.0, 1.0]. + fn lerp(self, other: Self, t: f32) -> Self; +} + +/// Non-linear sRGB color with f32 RGB components in the range [0.0, 1.0]. +/// This is the same colorspace as Rgb8 but represented as f32. +#[derive(Debug, Clone, Copy, PartialEq)] +pub struct SRgb(f32, f32, f32); + +impl SRgb { + /// Create a Srgb from the 3 components, already in the sRGB colorspace, in the range [0.0, 1.0]. + /// Returns None if any component is out of range. + pub const fn new(r: f32, g: f32, b: f32) -> Option { + if r >= 0.0 && r <= 1.0 && g >= 0.0 && g <= 1.0 && b >= 0.0 && b <= 1.0 { + Some(Self(r, g, b)) + } else { + None + } + } + + /// Get the red component of the color. + pub const fn r(&self) -> f32 { + self.0 + } + + /// Get the green component of the color. + pub const fn g(&self) -> f32 { + self.1 + } + + /// Get the blue component of the color. + pub const fn b(&self) -> f32 { + self.2 + } + + /// Compute the relative luminance of the color, in linear RGB space. + pub fn luminance(&self) -> f32 { + let lin: LinRgb = (*self).into(); + lin.luminance() + } +} + +// It is checked that the components of the color are valid, so we can safely implement Eq. +impl Eq for SRgb {} + +/// A linear RGB color with f32 components in the range [0.0, 1.0]. +/// This is a linear colorspace where the components are proportional to the actual light intensity. +#[derive(Debug, Clone, Copy, PartialEq)] +pub struct LinRgb(f32, f32, f32); + +impl LinRgb { + /// Create a LinRgb from the 3 components, already in the linear RGB colorspace, in the range [0.0, 1.0]. + /// Returns None if any component is out of range. + pub const fn new(r: f32, g: f32, b: f32) -> Option { + if r >= 0.0 && r <= 1.0 && g >= 0.0 && g <= 1.0 && b >= 0.0 && b <= 1.0 { + Some(Self(r, g, b)) + } else { + None + } + } + + /// Get the red component of the color. + pub const fn r(&self) -> f32 { + self.0 + } + + /// Get the green component of the color. + pub const fn g(&self) -> f32 { + self.1 + } + + /// Get the blue component of the color. + pub const fn b(&self) -> f32 { + self.2 + } + + /// Compute the relative luminance of the color, in linear RGB space. + pub const fn luminance(&self) -> f32 { + 0.2126 * self.0 + 0.7152 * self.1 + 0.0722 * self.2 + } +} + +// It is checked that the components of the color are valid, so we can safely implement Eq. +impl Eq for LinRgb {} + +impl Lerp for LinRgb { + fn lerp(self, other: Self, t: f32) -> Self { + debug_assert!( + t >= 0.0 && t <= 1.0, + "t must be in the range [0.0, 1.0] (got {})", + t + ); + let r = self.0 * (1.0 - t) + other.0 * t; + let g = self.1 * (1.0 - t) + other.1 * t; + let b = self.2 * (1.0 - t) + other.2 * t; + Self(r, g, b) + } +} + +/// A perceptually uniform color space based on the OkLab model, with f32 components. +/// Very useful for interpolation of colors, as it produces much smoother gradients than sRGB or linear RGB. +#[derive(Debug, Clone, Copy, PartialEq)] +pub struct OkLab(f32, f32, f32); + +impl OkLab { + /// Create a OkLab from the 3 components, already in the OkLab colorspace. + /// Returns None if it can't be mapped to a valid linear RGB color. + pub fn new(l: f32, a: f32, b: f32) -> Option { + let lin: LinRgb = LinRgb::from(Self(l, a, b)); + if LinRgb::new(lin.0, lin.1, lin.2).is_none() { + return None; + } + + Some(Self(l, a, b)) + } + + /// Get the L component of the color. + pub const fn l(&self) -> f32 { + self.0 + } + + /// Get the a component of the color. + pub const fn a(&self) -> f32 { + self.1 + } + + /// Get the b component of the color. + pub const fn b(&self) -> f32 { + self.2 + } +} + +// It is checked that the components of the color are valid, so we can safely implement Eq. +impl Eq for OkLab {} + +impl Lerp for OkLab { + fn lerp(self, other: Self, t: f32) -> Self { + debug_assert!( + t >= 0.0 && t <= 1.0, + "t must be in the range [0.0, 1.0], got {}", + t + ); + let r = self.0 * (1.0 - t) + other.0 * t; + let g = self.1 * (1.0 - t) + other.1 * t; + let b = self.2 * (1.0 - t) + other.2 * t; + Self(r, g, b) + } +} + +#[derive(Debug, Clone, Copy, PartialEq)] +pub struct Xyz(f32, f32, f32); + +impl Xyz { + pub const fn new(x: f32, y: f32, z: f32) -> Option { + if x >= 0.0 && y >= 0.0 && z >= 0.0 { + Some(Self(x, y, z)) + } else { + None + } + } +} + +impl Eq for Xyz {} + +impl Lerp for Xyz { + fn lerp(self, other: Self, t: f32) -> Self { + debug_assert!(t >= 0.0 && t <= 1.0, "t must be in the range [0.0, 1.0]"); + let x = self.0 * (1.0 - t) + other.0 * t; + let y = self.1 * (1.0 - t) + other.1 * t; + let z = self.2 * (1.0 - t) + other.2 * t; + Self(x, y, z) + } +} + +impl From for Rgb8 { + fn from(srgb: SRgb) -> Self { + let r = (srgb.0 * 255.0).round() as u8; + let g = (srgb.1 * 255.0).round() as u8; + let b = (srgb.2 * 255.0).round() as u8; + Self(r, g, b) + } +} + +impl From for SRgb { + fn from(rgb: Rgb8) -> Self { + let r = rgb.0 as f32 / 255.0; + let g = rgb.1 as f32 / 255.0; + let b = rgb.2 as f32 / 255.0; + Self(r, g, b) + } +} + +impl From for LinRgb { + fn from(srgb: SRgb) -> Self { + fn comp(c: f32) -> f32 { + if c >= 0.04045 { + ((c + 0.055) / 1.055).powf(2.4) + } else { + c / 12.92 + } + } + + Self(comp(srgb.0), comp(srgb.1), comp(srgb.2)) + } +} + +impl From for SRgb { + fn from(linrgb: LinRgb) -> Self { + fn comp(c: f32) -> f32 { + if c >= 0.0031308 { + 1.055 * c.powf(1.0 / 2.4) - 0.055 + } else { + 12.92 * c + } + } + + Self(comp(linrgb.0), comp(linrgb.1), comp(linrgb.2)) + } +} + +impl From for OkLab { + fn from(linrgb: LinRgb) -> Self { + let l = 0.4122214708 * linrgb.0 + 0.5363325363 * linrgb.1 + 0.0514459929 * linrgb.2; + let m = 0.2119034982 * linrgb.0 + 0.6806995451 * linrgb.1 + 0.1073969566 * linrgb.2; + let s = 0.0883024619 * linrgb.0 + 0.2817188376 * linrgb.1 + 0.6299787005 * linrgb.2; + + let l = l.cbrt(); + let m = m.cbrt(); + let s = s.cbrt(); + + Self( + 0.2104542553 * l + 0.7936177850 * m - 0.0040720468 * s, + 1.9779984951 * l - 2.4285922050 * m + 0.4505937099 * s, + 0.0259040371 * l + 0.7827717662 * m - 0.8086757660 * s, + ) + } +} + +impl From for LinRgb { + fn from(oklab: OkLab) -> Self { + let l = oklab.0 + 0.3963377774 * oklab.1 + 0.2158037573 * oklab.2; + let m = oklab.0 - 0.1055613458 * oklab.1 - 0.0638541728 * oklab.2; + let s = oklab.0 - 0.0894841775 * oklab.1 - 1.2914855480 * oklab.2; + + let l = l * l * l; + let m = m * m * m; + let s = s * s * s; + + Self( + 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s, + -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s, + -0.0041960863 * l - 0.7034186147 * m + 1.7076147010 * s, + ) + } +} + +impl From for Xyz { + fn from(LinRgb(r, g, b): LinRgb) -> Self { + let x = 0.4124564 * r + 0.3575761 * g + 0.1804375 * b; + let y = 0.2126729 * r + 0.7151522 * g + 0.0721750 * b; + let z = 0.0193339 * r + 0.1191920 * g + 0.9503041 * b; + Self(x, y, z) + } +} + +impl From for LinRgb { + fn from(Xyz(x, y, z): Xyz) -> Self { + let r = 3.2404542 * x - 1.5371385 * y - 0.4985314 * z; + let g = -0.9692660 * x + 1.8760108 * y + 0.0415560 * z; + let b = 0.0556434 * x - 0.2040259 * y + 1.0572252 * z; + Self(r, g, b) + } +} + +impl From for LinRgb { + fn from(rgb: Rgb8) -> Self { + let srgb: SRgb = SRgb::from(rgb); + Self::from(srgb) + } +} + +impl From for OkLab { + fn from(rgb: Rgb8) -> Self { + let linrgb: LinRgb = LinRgb::from(rgb); + Self::from(linrgb) + } +} + +impl From for Xyz { + fn from(rgb: Rgb8) -> Self { + let linrgb: LinRgb = LinRgb::from(rgb); + Self::from(linrgb) + } +} + +impl From for Rgb8 { + fn from(linrgb: LinRgb) -> Self { + let srgb: SRgb = SRgb::from(linrgb); + Self::from(srgb) + } +} + +impl From for Rgb8 { + fn from(oklab: OkLab) -> Self { + let linrgb: LinRgb = LinRgb::from(oklab); + Self::from(linrgb) + } +} + +impl From for Rgb8 { + fn from(xyz: Xyz) -> Self { + let linrgb: LinRgb = LinRgb::from(xyz); + Self::from(linrgb) + } +} + +impl From for OkLab { + fn from(srgb: SRgb) -> Self { + let linrgb: LinRgb = LinRgb::from(srgb); + Self::from(linrgb) + } +} + +impl From for Xyz { + fn from(srgb: SRgb) -> Self { + let linrgb: LinRgb = LinRgb::from(srgb); + Self::from(linrgb) + } +} + +impl From for SRgb { + fn from(oklab: OkLab) -> Self { + let linrgb: LinRgb = LinRgb::from(oklab); + Self::from(linrgb) + } +} + +impl From for SRgb { + fn from(xyz: Xyz) -> Self { + let linrgb: LinRgb = LinRgb::from(xyz); + Self::from(linrgb) + } +} + #[cfg(test)] mod tests { use super::*; @@ -354,77 +804,88 @@ mod tests { #[test] fn parse_html_hex() { // full and short hex - assert_eq!("#ff0000".parse::().unwrap(), RED); - assert_eq!("#f00".parse::().unwrap(), RED); + assert_eq!("#ff0000".parse::().unwrap(), RED); + assert_eq!("#f00".parse::().unwrap(), RED); // hex with alpha - let c = "#ff000080".parse::().unwrap(); - assert_eq!(c.rgba(), [255, 0, 0, 128]); + let c = "#ff000080".parse::().unwrap(); + assert_eq!(c.arr(), [255, 0, 0, 128]); } #[test] fn parse_css_rgb_rgba() { // integer rgb - assert_eq!("rgb(255,0,0)".parse::().unwrap(), RED); + assert_eq!("rgb(255,0,0)".parse::().unwrap(), RED); // percentage rgb assert_eq!( - "rgb(40.5%,0%,0%)".parse::().unwrap(), - ColorU8::from_rgb(103, 0, 0) + "rgb(40.5%,0%,0%)".parse::().unwrap(), + Rgb8::new(103, 0, 0) ); + // rgb with spaces + let c = "rgb(255, 0, 0)".parse::().unwrap(); + assert_eq!(c.arr(), [255, 0, 0]); + // rgba with float alpha - let c = "rgba(255,0,0,0.5)".parse::().unwrap(); - assert_eq!(c.rgba(), [255, 0, 0, 128]); + let c = "rgba(255,0,0,0.5)".parse::().unwrap(); + assert_eq!(c.arr(), [255, 0, 0, 128]); // rgba with percentage alpha - let c2 = "rgba(255,0,0,50%)".parse::().unwrap(); - assert_eq!(c2.rgba(), [255, 0, 0, 128]); + let c = "rgba(255,0,0,50%)".parse::().unwrap(); + assert_eq!(c.arr(), [255, 0, 0, 128]); // rgba with float alpha 0.0-1.0 - let c3 = "rgba(255, 0, 0, 0.5)".parse::().unwrap(); - assert_eq!(c3.rgba(), [255, 0, 0, 128]); + let c = "rgba(255, 0, 0, 0.5)".parse::().unwrap(); + assert_eq!(c.arr(), [255, 0, 0, 128]); } #[test] fn parse_named_colors() { // simple name - assert_eq!("red".parse::().unwrap(), RED); + assert_eq!("red".parse::().unwrap(), RED); // case-insensitive - assert_eq!("AliceBlue".parse::().unwrap(), ALICEBLUE); + assert_eq!("AliceBlue".parse::().unwrap(), ALICEBLUE); } #[test] fn parse_errors() { // empty assert!(matches!( - "".parse::(), + "".parse::(), Err(ParseError::InvalidFormat) )); // invalid hex length assert!(matches!( - "#12345".parse::(), + "#12345".parse::(), Err(ParseError::InvalidHex) )); // invalid rgb component (out of 0-255) assert!(matches!( - "rgb(300,0,0)".parse::(), + "rgb(300,0,0)".parse::(), Err(ParseError::InvalidComponent) )); // invalid rgba alpha (float > 1.0) assert!(matches!( - "rgba(255,0,0,2.0)".parse::(), + "rgba(255,0,0,2.0)".parse::(), Err(ParseError::InvalidAlphaComponent) )); // unknown name assert!(matches!( - "notacolor".parse::(), + "notacolor".parse::(), Err(ParseError::UnknownName) )); } + + #[test] + fn test_srgb_nan_fails() { + assert!(SRgb::new(f32::NAN, 0.0, 0.0).is_none()); + assert!(SRgb::new(0.0, f32::NAN, 0.0).is_none()); + assert!(SRgb::new(0.0, 0.0, f32::NAN).is_none()); + } } diff --git a/base/src/color/css4.rs b/base/src/color/css4.rs index c4b7072..d7552b0 100644 --- a/base/src/color/css4.rs +++ b/base/src/color/css4.rs @@ -1,313 +1,312 @@ -use super::ColorU8; +use super::Rgba8; +// standard CSS colors ///
-pub const TRANSPARENT: ColorU8 = ColorU8::from_rgba(0, 0, 0, 0); +pub const TRANSPARENT: Rgba8 = Rgba8::new(0, 0, 0, 0); -// standard CSS colors ///
-pub const BLACK: ColorU8 = ColorU8::from_html(b"#000000"); +pub const BLACK: Rgba8 = Rgba8::from_hex(b"#000000"); ///
-pub const SILVER: ColorU8 = ColorU8::from_html(b"#c0c0c0"); +pub const SILVER: Rgba8 = Rgba8::from_hex(b"#c0c0c0"); ///
-pub const GRAY: ColorU8 = ColorU8::from_html(b"#808080"); +pub const GRAY: Rgba8 = Rgba8::from_hex(b"#808080"); ///
-pub const WHITE: ColorU8 = ColorU8::from_html(b"#ffffff"); +pub const WHITE: Rgba8 = Rgba8::from_hex(b"#ffffff"); ///
-pub const MAROON: ColorU8 = ColorU8::from_html(b"#800000"); +pub const MAROON: Rgba8 = Rgba8::from_hex(b"#800000"); ///
-pub const RED: ColorU8 = ColorU8::from_html(b"#ff0000"); +pub const RED: Rgba8 = Rgba8::from_hex(b"#ff0000"); ///
-pub const PURPLE: ColorU8 = ColorU8::from_html(b"#800080"); +pub const PURPLE: Rgba8 = Rgba8::from_hex(b"#800080"); ///
-pub const FUCHSIA: ColorU8 = ColorU8::from_html(b"#ff00ff"); +pub const FUCHSIA: Rgba8 = Rgba8::from_hex(b"#ff00ff"); ///
-pub const GREEN: ColorU8 = ColorU8::from_html(b"#008000"); +pub const GREEN: Rgba8 = Rgba8::from_hex(b"#008000"); ///
-pub const LIME: ColorU8 = ColorU8::from_html(b"#00ff00"); +pub const LIME: Rgba8 = Rgba8::from_hex(b"#00ff00"); ///
-pub const OLIVE: ColorU8 = ColorU8::from_html(b"#808000"); +pub const OLIVE: Rgba8 = Rgba8::from_hex(b"#808000"); ///
-pub const YELLOW: ColorU8 = ColorU8::from_html(b"#ffff00"); +pub const YELLOW: Rgba8 = Rgba8::from_hex(b"#ffff00"); ///
-pub const NAVY: ColorU8 = ColorU8::from_html(b"#000080"); +pub const NAVY: Rgba8 = Rgba8::from_hex(b"#000080"); ///
-pub const BLUE: ColorU8 = ColorU8::from_html(b"#0000ff"); +pub const BLUE: Rgba8 = Rgba8::from_hex(b"#0000ff"); ///
-pub const TEAL: ColorU8 = ColorU8::from_html(b"#008080"); +pub const TEAL: Rgba8 = Rgba8::from_hex(b"#008080"); ///
-pub const AQUA: ColorU8 = ColorU8::from_html(b"#00ffff"); +pub const AQUA: Rgba8 = Rgba8::from_hex(b"#00ffff"); // other named colors ///
-pub const ALICEBLUE: ColorU8 = ColorU8::from_html(b"#f0f8ff"); +pub const ALICEBLUE: Rgba8 = Rgba8::from_hex(b"#f0f8ff"); ///
-pub const ANTIQUEWHITE: ColorU8 = ColorU8::from_html(b"#faebd7"); +pub const ANTIQUEWHITE: Rgba8 = Rgba8::from_hex(b"#faebd7"); ///
-pub const AQUAMARINE: ColorU8 = ColorU8::from_html(b"#7fffd4"); +pub const AQUAMARINE: Rgba8 = Rgba8::from_hex(b"#7fffd4"); ///
-pub const AZURE: ColorU8 = ColorU8::from_html(b"#f0ffff"); +pub const AZURE: Rgba8 = Rgba8::from_hex(b"#f0ffff"); ///
-pub const BEIGE: ColorU8 = ColorU8::from_html(b"#f5f5dc"); +pub const BEIGE: Rgba8 = Rgba8::from_hex(b"#f5f5dc"); ///
-pub const BISQUE: ColorU8 = ColorU8::from_html(b"#ffe4c4"); +pub const BISQUE: Rgba8 = Rgba8::from_hex(b"#ffe4c4"); ///
-pub const BLANCHEDALMOND: ColorU8 = ColorU8::from_html(b"#ffebcd"); +pub const BLANCHEDALMOND: Rgba8 = Rgba8::from_hex(b"#ffebcd"); ///
-pub const BLUEVIOLET: ColorU8 = ColorU8::from_html(b"#8a2be2"); +pub const BLUEVIOLET: Rgba8 = Rgba8::from_hex(b"#8a2be2"); ///
-pub const BROWN: ColorU8 = ColorU8::from_html(b"#a52a2a"); +pub const BROWN: Rgba8 = Rgba8::from_hex(b"#a52a2a"); ///
-pub const BURLYWOOD: ColorU8 = ColorU8::from_html(b"#deb887"); +pub const BURLYWOOD: Rgba8 = Rgba8::from_hex(b"#deb887"); ///
-pub const CADETBLUE: ColorU8 = ColorU8::from_html(b"#5f9ea0"); +pub const CADETBLUE: Rgba8 = Rgba8::from_hex(b"#5f9ea0"); ///
-pub const CHARTREUSE: ColorU8 = ColorU8::from_html(b"#7fff00"); +pub const CHARTREUSE: Rgba8 = Rgba8::from_hex(b"#7fff00"); ///
-pub const CHOCOLATE: ColorU8 = ColorU8::from_html(b"#d2691e"); +pub const CHOCOLATE: Rgba8 = Rgba8::from_hex(b"#d2691e"); ///
-pub const CORAL: ColorU8 = ColorU8::from_html(b"#ff7f50"); +pub const CORAL: Rgba8 = Rgba8::from_hex(b"#ff7f50"); ///
-pub const CORNFLOWERBLUE: ColorU8 = ColorU8::from_html(b"#6495ed"); +pub const CORNFLOWERBLUE: Rgba8 = Rgba8::from_hex(b"#6495ed"); ///
-pub const CORNSILK: ColorU8 = ColorU8::from_html(b"#fff8dc"); +pub const CORNSILK: Rgba8 = Rgba8::from_hex(b"#fff8dc"); ///
-pub const CRIMSON: ColorU8 = ColorU8::from_html(b"#dc143c"); +pub const CRIMSON: Rgba8 = Rgba8::from_hex(b"#dc143c"); ///
-pub const CYAN: ColorU8 = AQUA; +pub const CYAN: Rgba8 = AQUA; ///
-pub const DARKBLUE: ColorU8 = ColorU8::from_html(b"#00008b"); +pub const DARKBLUE: Rgba8 = Rgba8::from_hex(b"#00008b"); ///
-pub const DARKCYAN: ColorU8 = ColorU8::from_html(b"#008b8b"); +pub const DARKCYAN: Rgba8 = Rgba8::from_hex(b"#008b8b"); ///
-pub const DARKGOLDENROD: ColorU8 = ColorU8::from_html(b"#b8860b"); +pub const DARKGOLDENROD: Rgba8 = Rgba8::from_hex(b"#b8860b"); ///
-pub const DARKGRAY: ColorU8 = ColorU8::from_html(b"#a9a9a9"); +pub const DARKGRAY: Rgba8 = Rgba8::from_hex(b"#a9a9a9"); ///
-pub const DARKGREEN: ColorU8 = ColorU8::from_html(b"#006400"); +pub const DARKGREEN: Rgba8 = Rgba8::from_hex(b"#006400"); ///
-pub const DARKGREY: ColorU8 = ColorU8::from_html(b"#a9a9a9"); +pub const DARKGREY: Rgba8 = Rgba8::from_hex(b"#a9a9a9"); ///
-pub const DARKKHAKI: ColorU8 = ColorU8::from_html(b"#bdb76b"); +pub const DARKKHAKI: Rgba8 = Rgba8::from_hex(b"#bdb76b"); ///
-pub const DARKMAGENTA: ColorU8 = ColorU8::from_html(b"#8b008b"); +pub const DARKMAGENTA: Rgba8 = Rgba8::from_hex(b"#8b008b"); ///
-pub const DARKOLIVEGREEN: ColorU8 = ColorU8::from_html(b"#556b2f"); +pub const DARKOLIVEGREEN: Rgba8 = Rgba8::from_hex(b"#556b2f"); ///
-pub const DARKORANGE: ColorU8 = ColorU8::from_html(b"#ff8c00"); +pub const DARKORANGE: Rgba8 = Rgba8::from_hex(b"#ff8c00"); ///
-pub const DARKORCHID: ColorU8 = ColorU8::from_html(b"#9932cc"); +pub const DARKORCHID: Rgba8 = Rgba8::from_hex(b"#9932cc"); ///
-pub const DARKRED: ColorU8 = ColorU8::from_html(b"#8b0000"); +pub const DARKRED: Rgba8 = Rgba8::from_hex(b"#8b0000"); ///
-pub const DARKSALMON: ColorU8 = ColorU8::from_html(b"#e9967a"); +pub const DARKSALMON: Rgba8 = Rgba8::from_hex(b"#e9967a"); ///
-pub const DARKSEAGREEN: ColorU8 = ColorU8::from_html(b"#8fbc8f"); +pub const DARKSEAGREEN: Rgba8 = Rgba8::from_hex(b"#8fbc8f"); ///
-pub const DARKSLATEBLUE: ColorU8 = ColorU8::from_html(b"#483d8b"); +pub const DARKSLATEBLUE: Rgba8 = Rgba8::from_hex(b"#483d8b"); ///
-pub const DARKSLATEGRAY: ColorU8 = ColorU8::from_html(b"#2f4f4f"); +pub const DARKSLATEGRAY: Rgba8 = Rgba8::from_hex(b"#2f4f4f"); ///
-pub const DARKSLATEGREY: ColorU8 = ColorU8::from_html(b"#2f4f4f"); +pub const DARKSLATEGREY: Rgba8 = Rgba8::from_hex(b"#2f4f4f"); ///
-pub const DARKTURQUOISE: ColorU8 = ColorU8::from_html(b"#00ced1"); +pub const DARKTURQUOISE: Rgba8 = Rgba8::from_hex(b"#00ced1"); ///
-pub const DARKVIOLET: ColorU8 = ColorU8::from_html(b"#9400d3"); +pub const DARKVIOLET: Rgba8 = Rgba8::from_hex(b"#9400d3"); ///
-pub const DEEPPINK: ColorU8 = ColorU8::from_html(b"#ff1493"); +pub const DEEPPINK: Rgba8 = Rgba8::from_hex(b"#ff1493"); ///
-pub const DEEPSKYBLUE: ColorU8 = ColorU8::from_html(b"#00bfff"); +pub const DEEPSKYBLUE: Rgba8 = Rgba8::from_hex(b"#00bfff"); ///
-pub const DIMGRAY: ColorU8 = ColorU8::from_html(b"#696969"); +pub const DIMGRAY: Rgba8 = Rgba8::from_hex(b"#696969"); ///
-pub const DIMGREY: ColorU8 = ColorU8::from_html(b"#696969"); +pub const DIMGREY: Rgba8 = Rgba8::from_hex(b"#696969"); ///
-pub const DODGERBLUE: ColorU8 = ColorU8::from_html(b"#1e90ff"); +pub const DODGERBLUE: Rgba8 = Rgba8::from_hex(b"#1e90ff"); ///
-pub const FIREBRICK: ColorU8 = ColorU8::from_html(b"#b22222"); +pub const FIREBRICK: Rgba8 = Rgba8::from_hex(b"#b22222"); ///
-pub const FLORALWHITE: ColorU8 = ColorU8::from_html(b"#fffaf0"); +pub const FLORALWHITE: Rgba8 = Rgba8::from_hex(b"#fffaf0"); ///
-pub const FORESTGREEN: ColorU8 = ColorU8::from_html(b"#228b22"); +pub const FORESTGREEN: Rgba8 = Rgba8::from_hex(b"#228b22"); ///
-pub const GAINSBORO: ColorU8 = ColorU8::from_html(b"#dcdcdc"); +pub const GAINSBORO: Rgba8 = Rgba8::from_hex(b"#dcdcdc"); ///
-pub const GHOSTWHITE: ColorU8 = ColorU8::from_html(b"#f8f8ff"); +pub const GHOSTWHITE: Rgba8 = Rgba8::from_hex(b"#f8f8ff"); ///
-pub const GOLD: ColorU8 = ColorU8::from_html(b"#ffd700"); +pub const GOLD: Rgba8 = Rgba8::from_hex(b"#ffd700"); ///
-pub const GOLDENROD: ColorU8 = ColorU8::from_html(b"#daa520"); +pub const GOLDENROD: Rgba8 = Rgba8::from_hex(b"#daa520"); ///
-pub const GREENYELLOW: ColorU8 = ColorU8::from_html(b"#adff2f"); +pub const GREENYELLOW: Rgba8 = Rgba8::from_hex(b"#adff2f"); ///
-pub const GREY: ColorU8 = GRAY; +pub const GREY: Rgba8 = GRAY; ///
-pub const HONEYDEW: ColorU8 = ColorU8::from_html(b"#f0fff0"); +pub const HONEYDEW: Rgba8 = Rgba8::from_hex(b"#f0fff0"); ///
-pub const HOTPINK: ColorU8 = ColorU8::from_html(b"#ff69b4"); +pub const HOTPINK: Rgba8 = Rgba8::from_hex(b"#ff69b4"); ///
-pub const INDIANRED: ColorU8 = ColorU8::from_html(b"#cd5c5c"); +pub const INDIANRED: Rgba8 = Rgba8::from_hex(b"#cd5c5c"); ///
-pub const INDIGO: ColorU8 = ColorU8::from_html(b"#4b0082"); +pub const INDIGO: Rgba8 = Rgba8::from_hex(b"#4b0082"); ///
-pub const IVORY: ColorU8 = ColorU8::from_html(b"#fffff0"); +pub const IVORY: Rgba8 = Rgba8::from_hex(b"#fffff0"); ///
-pub const KHAKI: ColorU8 = ColorU8::from_html(b"#f0e68c"); +pub const KHAKI: Rgba8 = Rgba8::from_hex(b"#f0e68c"); ///
-pub const LAVENDER: ColorU8 = ColorU8::from_html(b"#e6e6fa"); +pub const LAVENDER: Rgba8 = Rgba8::from_hex(b"#e6e6fa"); ///
-pub const LAVENDERBLUSH: ColorU8 = ColorU8::from_html(b"#fff0f5"); +pub const LAVENDERBLUSH: Rgba8 = Rgba8::from_hex(b"#fff0f5"); ///
-pub const LAWNGREEN: ColorU8 = ColorU8::from_html(b"#7cfc00"); +pub const LAWNGREEN: Rgba8 = Rgba8::from_hex(b"#7cfc00"); ///
-pub const LEMONCHIFFON: ColorU8 = ColorU8::from_html(b"#fffacd"); +pub const LEMONCHIFFON: Rgba8 = Rgba8::from_hex(b"#fffacd"); ///
-pub const LIGHTBLUE: ColorU8 = ColorU8::from_html(b"#add8e6"); +pub const LIGHTBLUE: Rgba8 = Rgba8::from_hex(b"#add8e6"); ///
-pub const LIGHTCORAL: ColorU8 = ColorU8::from_html(b"#f08080"); +pub const LIGHTCORAL: Rgba8 = Rgba8::from_hex(b"#f08080"); ///
-pub const LIGHTCYAN: ColorU8 = ColorU8::from_html(b"#e0ffff"); +pub const LIGHTCYAN: Rgba8 = Rgba8::from_hex(b"#e0ffff"); ///
-pub const LIGHTGOLDENRODYELLOW: ColorU8 = ColorU8::from_html(b"#fafad2"); +pub const LIGHTGOLDENRODYELLOW: Rgba8 = Rgba8::from_hex(b"#fafad2"); ///
-pub const LIGHTGRAY: ColorU8 = ColorU8::from_html(b"#d3d3d3"); +pub const LIGHTGRAY: Rgba8 = Rgba8::from_hex(b"#d3d3d3"); ///
-pub const LIGHTGREEN: ColorU8 = ColorU8::from_html(b"#90ee90"); +pub const LIGHTGREEN: Rgba8 = Rgba8::from_hex(b"#90ee90"); ///
-pub const LIGHTGREY: ColorU8 = ColorU8::from_html(b"#d3d3d3"); +pub const LIGHTGREY: Rgba8 = Rgba8::from_hex(b"#d3d3d3"); ///
-pub const LIGHTPINK: ColorU8 = ColorU8::from_html(b"#ffb6c1"); +pub const LIGHTPINK: Rgba8 = Rgba8::from_hex(b"#ffb6c1"); ///
-pub const LIGHTSALMON: ColorU8 = ColorU8::from_html(b"#ffa07a"); +pub const LIGHTSALMON: Rgba8 = Rgba8::from_hex(b"#ffa07a"); ///
-pub const LIGHTSEAGREEN: ColorU8 = ColorU8::from_html(b"#20b2aa"); +pub const LIGHTSEAGREEN: Rgba8 = Rgba8::from_hex(b"#20b2aa"); ///
-pub const LIGHTSKYBLUE: ColorU8 = ColorU8::from_html(b"#87cefa"); +pub const LIGHTSKYBLUE: Rgba8 = Rgba8::from_hex(b"#87cefa"); ///
-pub const LIGHTSLATEGRAY: ColorU8 = ColorU8::from_html(b"#778899"); +pub const LIGHTSLATEGRAY: Rgba8 = Rgba8::from_hex(b"#778899"); ///
-pub const LIGHTSLATEGREY: ColorU8 = ColorU8::from_html(b"#778899"); +pub const LIGHTSLATEGREY: Rgba8 = Rgba8::from_hex(b"#778899"); ///
-pub const LIGHTSTEELBLUE: ColorU8 = ColorU8::from_html(b"#b0c4de"); +pub const LIGHTSTEELBLUE: Rgba8 = Rgba8::from_hex(b"#b0c4de"); ///
-pub const LIGHTYELLOW: ColorU8 = ColorU8::from_html(b"#ffffe0"); +pub const LIGHTYELLOW: Rgba8 = Rgba8::from_hex(b"#ffffe0"); ///
-pub const LIMEGREEN: ColorU8 = ColorU8::from_html(b"#32cd32"); +pub const LIMEGREEN: Rgba8 = Rgba8::from_hex(b"#32cd32"); ///
-pub const LINEN: ColorU8 = ColorU8::from_html(b"#faf0e6"); +pub const LINEN: Rgba8 = Rgba8::from_hex(b"#faf0e6"); ///
-pub const MAGENTA: ColorU8 = FUCHSIA; +pub const MAGENTA: Rgba8 = FUCHSIA; ///
-pub const MEDIUMAQUAMARINE: ColorU8 = ColorU8::from_html(b"#66cdaa"); +pub const MEDIUMAQUAMARINE: Rgba8 = Rgba8::from_hex(b"#66cdaa"); ///
-pub const MEDIUMBLUE: ColorU8 = ColorU8::from_html(b"#0000cd"); +pub const MEDIUMBLUE: Rgba8 = Rgba8::from_hex(b"#0000cd"); ///
-pub const MEDIUMORCHID: ColorU8 = ColorU8::from_html(b"#ba55d3"); +pub const MEDIUMORCHID: Rgba8 = Rgba8::from_hex(b"#ba55d3"); ///
-pub const MEDIUMPURPLE: ColorU8 = ColorU8::from_html(b"#9370db"); +pub const MEDIUMPURPLE: Rgba8 = Rgba8::from_hex(b"#9370db"); ///
-pub const MEDIUMSEAGREEN: ColorU8 = ColorU8::from_html(b"#3cb371"); +pub const MEDIUMSEAGREEN: Rgba8 = Rgba8::from_hex(b"#3cb371"); ///
-pub const MEDIUMSLATEBLUE: ColorU8 = ColorU8::from_html(b"#7b68ee"); +pub const MEDIUMSLATEBLUE: Rgba8 = Rgba8::from_hex(b"#7b68ee"); ///
-pub const MEDIUMSPRINGGREEN: ColorU8 = ColorU8::from_html(b"#00fa9a"); +pub const MEDIUMSPRINGGREEN: Rgba8 = Rgba8::from_hex(b"#00fa9a"); ///
-pub const MEDIUMTURQUOISE: ColorU8 = ColorU8::from_html(b"#48d1cc"); +pub const MEDIUMTURQUOISE: Rgba8 = Rgba8::from_hex(b"#48d1cc"); ///
-pub const MEDIUMVIOLETRED: ColorU8 = ColorU8::from_html(b"#c71585"); +pub const MEDIUMVIOLETRED: Rgba8 = Rgba8::from_hex(b"#c71585"); ///
-pub const MIDNIGHTBLUE: ColorU8 = ColorU8::from_html(b"#191970"); +pub const MIDNIGHTBLUE: Rgba8 = Rgba8::from_hex(b"#191970"); ///
-pub const MINTCREAM: ColorU8 = ColorU8::from_html(b"#f5fffa"); +pub const MINTCREAM: Rgba8 = Rgba8::from_hex(b"#f5fffa"); ///
-pub const MISTYROSE: ColorU8 = ColorU8::from_html(b"#ffe4e1"); +pub const MISTYROSE: Rgba8 = Rgba8::from_hex(b"#ffe4e1"); ///
-pub const MOCCASIN: ColorU8 = ColorU8::from_html(b"#ffe4b5"); +pub const MOCCASIN: Rgba8 = Rgba8::from_hex(b"#ffe4b5"); ///
-pub const NAVAJOWHITE: ColorU8 = ColorU8::from_html(b"#ffdead"); +pub const NAVAJOWHITE: Rgba8 = Rgba8::from_hex(b"#ffdead"); ///
-pub const OLDLACE: ColorU8 = ColorU8::from_html(b"#fdf5e6"); +pub const OLDLACE: Rgba8 = Rgba8::from_hex(b"#fdf5e6"); ///
-pub const OLIVEDRAB: ColorU8 = ColorU8::from_html(b"#6b8e23"); +pub const OLIVEDRAB: Rgba8 = Rgba8::from_hex(b"#6b8e23"); ///
-pub const ORANGE: ColorU8 = ColorU8::from_html(b"#ffa500"); +pub const ORANGE: Rgba8 = Rgba8::from_hex(b"#ffa500"); ///
-pub const ORANGERED: ColorU8 = ColorU8::from_html(b"#ff4500"); +pub const ORANGERED: Rgba8 = Rgba8::from_hex(b"#ff4500"); ///
-pub const ORCHID: ColorU8 = ColorU8::from_html(b"#da70d6"); +pub const ORCHID: Rgba8 = Rgba8::from_hex(b"#da70d6"); ///
-pub const PALEGOLDENROD: ColorU8 = ColorU8::from_html(b"#eee8aa"); +pub const PALEGOLDENROD: Rgba8 = Rgba8::from_hex(b"#eee8aa"); ///
-pub const PALEGREEN: ColorU8 = ColorU8::from_html(b"#98fb98"); +pub const PALEGREEN: Rgba8 = Rgba8::from_hex(b"#98fb98"); ///
-pub const PALETURQUOISE: ColorU8 = ColorU8::from_html(b"#afeeee"); +pub const PALETURQUOISE: Rgba8 = Rgba8::from_hex(b"#afeeee"); ///
-pub const PALEVIOLETRED: ColorU8 = ColorU8::from_html(b"#db7093"); +pub const PALEVIOLETRED: Rgba8 = Rgba8::from_hex(b"#db7093"); ///
-pub const PAPAYAWHIP: ColorU8 = ColorU8::from_html(b"#ffefd5"); +pub const PAPAYAWHIP: Rgba8 = Rgba8::from_hex(b"#ffefd5"); ///
-pub const PEACHPUFF: ColorU8 = ColorU8::from_html(b"#ffdab9"); +pub const PEACHPUFF: Rgba8 = Rgba8::from_hex(b"#ffdab9"); ///
-pub const PERU: ColorU8 = ColorU8::from_html(b"#cd853f"); +pub const PERU: Rgba8 = Rgba8::from_hex(b"#cd853f"); ///
-pub const PINK: ColorU8 = ColorU8::from_html(b"#ffc0cb"); +pub const PINK: Rgba8 = Rgba8::from_hex(b"#ffc0cb"); ///
-pub const PLUM: ColorU8 = ColorU8::from_html(b"#dda0dd"); +pub const PLUM: Rgba8 = Rgba8::from_hex(b"#dda0dd"); ///
-pub const POWDERBLUE: ColorU8 = ColorU8::from_html(b"#b0e0e6"); +pub const POWDERBLUE: Rgba8 = Rgba8::from_hex(b"#b0e0e6"); ///
-pub const REBECCAPURPLE: ColorU8 = ColorU8::from_html(b"#663399"); +pub const REBECCAPURPLE: Rgba8 = Rgba8::from_hex(b"#663399"); ///
-pub const ROSYBROWN: ColorU8 = ColorU8::from_html(b"#bc8f8f"); +pub const ROSYBROWN: Rgba8 = Rgba8::from_hex(b"#bc8f8f"); ///
-pub const ROYALBLUE: ColorU8 = ColorU8::from_html(b"#4169e1"); +pub const ROYALBLUE: Rgba8 = Rgba8::from_hex(b"#4169e1"); ///
-pub const SADDLEBROWN: ColorU8 = ColorU8::from_html(b"#8b4513"); +pub const SADDLEBROWN: Rgba8 = Rgba8::from_hex(b"#8b4513"); ///
-pub const SALMON: ColorU8 = ColorU8::from_html(b"#fa8072"); +pub const SALMON: Rgba8 = Rgba8::from_hex(b"#fa8072"); ///
-pub const SANDYBROWN: ColorU8 = ColorU8::from_html(b"#f4a460"); +pub const SANDYBROWN: Rgba8 = Rgba8::from_hex(b"#f4a460"); ///
-pub const SEAGREEN: ColorU8 = ColorU8::from_html(b"#2e8b57"); +pub const SEAGREEN: Rgba8 = Rgba8::from_hex(b"#2e8b57"); ///
-pub const SEASHELL: ColorU8 = ColorU8::from_html(b"#fff5ee"); +pub const SEASHELL: Rgba8 = Rgba8::from_hex(b"#fff5ee"); ///
-pub const SIENNA: ColorU8 = ColorU8::from_html(b"#a0522d"); +pub const SIENNA: Rgba8 = Rgba8::from_hex(b"#a0522d"); ///
-pub const SKYBLUE: ColorU8 = ColorU8::from_html(b"#87ceeb"); +pub const SKYBLUE: Rgba8 = Rgba8::from_hex(b"#87ceeb"); ///
-pub const SLATEBLUE: ColorU8 = ColorU8::from_html(b"#6a5acd"); +pub const SLATEBLUE: Rgba8 = Rgba8::from_hex(b"#6a5acd"); ///
-pub const SLATEGRAY: ColorU8 = ColorU8::from_html(b"#708090"); +pub const SLATEGRAY: Rgba8 = Rgba8::from_hex(b"#708090"); ///
-pub const SLATEGREY: ColorU8 = ColorU8::from_html(b"#708090"); +pub const SLATEGREY: Rgba8 = Rgba8::from_hex(b"#708090"); ///
-pub const SNOW: ColorU8 = ColorU8::from_html(b"#fffafa"); +pub const SNOW: Rgba8 = Rgba8::from_hex(b"#fffafa"); ///
-pub const SPRINGGREEN: ColorU8 = ColorU8::from_html(b"#00ff7f"); +pub const SPRINGGREEN: Rgba8 = Rgba8::from_hex(b"#00ff7f"); ///
-pub const STEELBLUE: ColorU8 = ColorU8::from_html(b"#4682b4"); +pub const STEELBLUE: Rgba8 = Rgba8::from_hex(b"#4682b4"); ///
-pub const TAN: ColorU8 = ColorU8::from_html(b"#d2b48c"); +pub const TAN: Rgba8 = Rgba8::from_hex(b"#d2b48c"); ///
-pub const THISTLE: ColorU8 = ColorU8::from_html(b"#d8bfd8"); +pub const THISTLE: Rgba8 = Rgba8::from_hex(b"#d8bfd8"); ///
-pub const TOMATO: ColorU8 = ColorU8::from_html(b"#ff6347"); +pub const TOMATO: Rgba8 = Rgba8::from_hex(b"#ff6347"); ///
-pub const TURQUOISE: ColorU8 = ColorU8::from_html(b"#40e0d0"); +pub const TURQUOISE: Rgba8 = Rgba8::from_hex(b"#40e0d0"); ///
-pub const VIOLET: ColorU8 = ColorU8::from_html(b"#ee82ee"); +pub const VIOLET: Rgba8 = Rgba8::from_hex(b"#ee82ee"); ///
-pub const WHEAT: ColorU8 = ColorU8::from_html(b"#f5deb3"); +pub const WHEAT: Rgba8 = Rgba8::from_hex(b"#f5deb3"); ///
-pub const WHITESMOKE: ColorU8 = ColorU8::from_html(b"#f5f5f5"); +pub const WHITESMOKE: Rgba8 = Rgba8::from_hex(b"#f5f5f5"); ///
-pub const YELLOWGREEN: ColorU8 = ColorU8::from_html(b"#9acd32"); +pub const YELLOWGREEN: Rgba8 = Rgba8::from_hex(b"#9acd32"); /// Lookup a named color (case-insensitive). -/// Return Some(ColorU8) if the name is known -pub(super) fn lookup_name(name: &str) -> Option { +/// Return Some(Rgba8) if the name is known +pub(super) fn lookup_name(name: &str) -> Option { match name.trim().to_ascii_lowercase().as_str() { - "transparent" => Some(TRANSPARENT), "black" => Some(BLACK), "silver" => Some(SILVER), "gray" | "grey" => Some(GRAY), diff --git a/base/src/color/xkcd.rs b/base/src/color/xkcd.rs index b5f7a34..db2270b 100644 --- a/base/src/color/xkcd.rs +++ b/base/src/color/xkcd.rs @@ -1,961 +1,961 @@ -use crate::ColorU8; +use super::Rgba8; /// Colors from the xkcd color survey. /// These are not intended to be used directly, but are available for users who want to use them. /// https://blog.xkcd.com/2010/05/03/color-survey-results/ -pub fn lookup_name(name: &str) -> Option { +pub fn lookup_name(name: &str) -> Option { // License: https://creativecommons.org/publicdomain/zero/1.0/ match name { - "cloudy blue" => Some(ColorU8::from_html(b"#acc2d9")), - "dark pastel green" => Some(ColorU8::from_html(b"#56ae57")), - "dust" => Some(ColorU8::from_html(b"#b2996e")), - "electric lime" => Some(ColorU8::from_html(b"#a8ff04")), - "fresh green" => Some(ColorU8::from_html(b"#69d84f")), - "light eggplant" => Some(ColorU8::from_html(b"#894585")), - "nasty green" => Some(ColorU8::from_html(b"#70b23f")), - "really light blue" => Some(ColorU8::from_html(b"#d4ffff")), - "tea" => Some(ColorU8::from_html(b"#65ab7c")), - "warm purple" => Some(ColorU8::from_html(b"#952e8f")), - "yellowish tan" => Some(ColorU8::from_html(b"#fcfc81")), - "cement" => Some(ColorU8::from_html(b"#a5a391")), - "dark grass green" => Some(ColorU8::from_html(b"#388004")), - "dusty teal" => Some(ColorU8::from_html(b"#4c9085")), - "grey teal" => Some(ColorU8::from_html(b"#5e9b8a")), - "macaroni and cheese" => Some(ColorU8::from_html(b"#efb435")), - "pinkish tan" => Some(ColorU8::from_html(b"#d99b82")), - "spruce" => Some(ColorU8::from_html(b"#0a5f38")), - "strong blue" => Some(ColorU8::from_html(b"#0c06f7")), - "toxic green" => Some(ColorU8::from_html(b"#61de2a")), - "windows blue" => Some(ColorU8::from_html(b"#3778bf")), - "blue blue" => Some(ColorU8::from_html(b"#2242c7")), - "blue with a hint of purple" => Some(ColorU8::from_html(b"#533cc6")), - "booger" => Some(ColorU8::from_html(b"#9bb53c")), - "bright sea green" => Some(ColorU8::from_html(b"#05ffa6")), - "dark green blue" => Some(ColorU8::from_html(b"#1f6357")), - "deep turquoise" => Some(ColorU8::from_html(b"#017374")), - "green teal" => Some(ColorU8::from_html(b"#0cb577")), - "strong pink" => Some(ColorU8::from_html(b"#ff0789")), - "bland" => Some(ColorU8::from_html(b"#afa88b")), - "deep aqua" => Some(ColorU8::from_html(b"#08787f")), - "lavender pink" => Some(ColorU8::from_html(b"#dd85d7")), - "light moss green" => Some(ColorU8::from_html(b"#a6c875")), - "light seafoam green" => Some(ColorU8::from_html(b"#a7ffb5")), - "olive yellow" => Some(ColorU8::from_html(b"#c2b709")), - "pig pink" => Some(ColorU8::from_html(b"#e78ea5")), - "deep lilac" => Some(ColorU8::from_html(b"#966ebd")), - "desert" => Some(ColorU8::from_html(b"#ccad60")), - "dusty lavender" => Some(ColorU8::from_html(b"#ac86a8")), - "purpley grey" => Some(ColorU8::from_html(b"#947e94")), - "purply" => Some(ColorU8::from_html(b"#983fb2")), - "candy pink" => Some(ColorU8::from_html(b"#ff63e9")), - "light pastel green" => Some(ColorU8::from_html(b"#b2fba5")), - "boring green" => Some(ColorU8::from_html(b"#63b365")), - "kiwi green" => Some(ColorU8::from_html(b"#8ee53f")), - "light grey green" => Some(ColorU8::from_html(b"#b7e1a1")), - "orange pink" => Some(ColorU8::from_html(b"#ff6f52")), - "tea green" => Some(ColorU8::from_html(b"#bdf8a3")), - "very light brown" => Some(ColorU8::from_html(b"#d3b683")), - "egg shell" => Some(ColorU8::from_html(b"#fffcc4")), - "eggplant purple" => Some(ColorU8::from_html(b"#430541")), - "powder pink" => Some(ColorU8::from_html(b"#ffb2d0")), - "reddish grey" => Some(ColorU8::from_html(b"#997570")), - "baby shit brown" => Some(ColorU8::from_html(b"#ad900d")), - "liliac" => Some(ColorU8::from_html(b"#c48efd")), - "stormy blue" => Some(ColorU8::from_html(b"#507b9c")), - "ugly brown" => Some(ColorU8::from_html(b"#7d7103")), - "custard" => Some(ColorU8::from_html(b"#fffd78")), - "darkish pink" => Some(ColorU8::from_html(b"#da467d")), - "deep brown" => Some(ColorU8::from_html(b"#410200")), - "greenish beige" => Some(ColorU8::from_html(b"#c9d179")), - "manilla" => Some(ColorU8::from_html(b"#fffa86")), - "off blue" => Some(ColorU8::from_html(b"#5684ae")), - "battleship grey" => Some(ColorU8::from_html(b"#6b7c85")), - "browny green" => Some(ColorU8::from_html(b"#6f6c0a")), - "bruise" => Some(ColorU8::from_html(b"#7e4071")), - "kelley green" => Some(ColorU8::from_html(b"#009337")), - "sickly yellow" => Some(ColorU8::from_html(b"#d0e429")), - "sunny yellow" => Some(ColorU8::from_html(b"#fff917")), - "azul" => Some(ColorU8::from_html(b"#1d5dec")), - "darkgreen" => Some(ColorU8::from_html(b"#054907")), - "green/yellow" => Some(ColorU8::from_html(b"#b5ce08")), - "lichen" => Some(ColorU8::from_html(b"#8fb67b")), - "light light green" => Some(ColorU8::from_html(b"#c8ffb0")), - "pale gold" => Some(ColorU8::from_html(b"#fdde6c")), - "sun yellow" => Some(ColorU8::from_html(b"#ffdf22")), - "tan green" => Some(ColorU8::from_html(b"#a9be70")), - "burple" => Some(ColorU8::from_html(b"#6832e3")), - "butterscotch" => Some(ColorU8::from_html(b"#fdb147")), - "toupe" => Some(ColorU8::from_html(b"#c7ac7d")), - "dark cream" => Some(ColorU8::from_html(b"#fff39a")), - "indian red" => Some(ColorU8::from_html(b"#850e04")), - "light lavendar" => Some(ColorU8::from_html(b"#efc0fe")), - "poison green" => Some(ColorU8::from_html(b"#40fd14")), - "baby puke green" => Some(ColorU8::from_html(b"#b6c406")), - "bright yellow green" => Some(ColorU8::from_html(b"#9dff00")), - "charcoal grey" => Some(ColorU8::from_html(b"#3c4142")), - "squash" => Some(ColorU8::from_html(b"#f2ab15")), - "cinnamon" => Some(ColorU8::from_html(b"#ac4f06")), - "light pea green" => Some(ColorU8::from_html(b"#c4fe82")), - "radioactive green" => Some(ColorU8::from_html(b"#2cfa1f")), - "raw sienna" => Some(ColorU8::from_html(b"#9a6200")), - "baby purple" => Some(ColorU8::from_html(b"#ca9bf7")), - "cocoa" => Some(ColorU8::from_html(b"#875f42")), - "light royal blue" => Some(ColorU8::from_html(b"#3a2efe")), - "orangeish" => Some(ColorU8::from_html(b"#fd8d49")), - "rust brown" => Some(ColorU8::from_html(b"#8b3103")), - "sand brown" => Some(ColorU8::from_html(b"#cba560")), - "swamp" => Some(ColorU8::from_html(b"#698339")), - "tealish green" => Some(ColorU8::from_html(b"#0cdc73")), - "burnt siena" => Some(ColorU8::from_html(b"#b75203")), - "camo" => Some(ColorU8::from_html(b"#7f8f4e")), - "dusk blue" => Some(ColorU8::from_html(b"#26538d")), - "fern" => Some(ColorU8::from_html(b"#63a950")), - "old rose" => Some(ColorU8::from_html(b"#c87f89")), - "pale light green" => Some(ColorU8::from_html(b"#b1fc99")), - "peachy pink" => Some(ColorU8::from_html(b"#ff9a8a")), - "rosy pink" => Some(ColorU8::from_html(b"#f6688e")), - "light bluish green" => Some(ColorU8::from_html(b"#76fda8")), - "light bright green" => Some(ColorU8::from_html(b"#53fe5c")), - "light neon green" => Some(ColorU8::from_html(b"#4efd54")), - "light seafoam" => Some(ColorU8::from_html(b"#a0febf")), - "tiffany blue" => Some(ColorU8::from_html(b"#7bf2da")), - "washed out green" => Some(ColorU8::from_html(b"#bcf5a6")), - "browny orange" => Some(ColorU8::from_html(b"#ca6b02")), - "nice blue" => Some(ColorU8::from_html(b"#107ab0")), - "sapphire" => Some(ColorU8::from_html(b"#2138ab")), - "greyish teal" => Some(ColorU8::from_html(b"#719f91")), - "orangey yellow" => Some(ColorU8::from_html(b"#fdb915")), - "parchment" => Some(ColorU8::from_html(b"#fefcaf")), - "straw" => Some(ColorU8::from_html(b"#fcf679")), - "very dark brown" => Some(ColorU8::from_html(b"#1d0200")), - "terracota" => Some(ColorU8::from_html(b"#cb6843")), - "ugly blue" => Some(ColorU8::from_html(b"#31668a")), - "clear blue" => Some(ColorU8::from_html(b"#247afd")), - "creme" => Some(ColorU8::from_html(b"#ffffb6")), - "foam green" => Some(ColorU8::from_html(b"#90fda9")), - "grey/green" => Some(ColorU8::from_html(b"#86a17d")), - "light gold" => Some(ColorU8::from_html(b"#fddc5c")), - "seafoam blue" => Some(ColorU8::from_html(b"#78d1b6")), - "topaz" => Some(ColorU8::from_html(b"#13bbaf")), - "violet pink" => Some(ColorU8::from_html(b"#fb5ffc")), - "wintergreen" => Some(ColorU8::from_html(b"#20f986")), - "yellow tan" => Some(ColorU8::from_html(b"#ffe36e")), - "dark fuchsia" => Some(ColorU8::from_html(b"#9d0759")), - "indigo blue" => Some(ColorU8::from_html(b"#3a18b1")), - "light yellowish green" => Some(ColorU8::from_html(b"#c2ff89")), - "pale magenta" => Some(ColorU8::from_html(b"#d767ad")), - "rich purple" => Some(ColorU8::from_html(b"#720058")), - "sunflower yellow" => Some(ColorU8::from_html(b"#ffda03")), - "green/blue" => Some(ColorU8::from_html(b"#01c08d")), - "leather" => Some(ColorU8::from_html(b"#ac7434")), - "racing green" => Some(ColorU8::from_html(b"#014600")), - "vivid purple" => Some(ColorU8::from_html(b"#9900fa")), - "dark royal blue" => Some(ColorU8::from_html(b"#02066f")), - "hazel" => Some(ColorU8::from_html(b"#8e7618")), - "muted pink" => Some(ColorU8::from_html(b"#d1768f")), - "booger green" => Some(ColorU8::from_html(b"#96b403")), - "canary" => Some(ColorU8::from_html(b"#fdff63")), - "cool grey" => Some(ColorU8::from_html(b"#95a3a6")), - "dark taupe" => Some(ColorU8::from_html(b"#7f684e")), - "darkish purple" => Some(ColorU8::from_html(b"#751973")), - "true green" => Some(ColorU8::from_html(b"#089404")), - "coral pink" => Some(ColorU8::from_html(b"#ff6163")), - "dark sage" => Some(ColorU8::from_html(b"#598556")), - "dark slate blue" => Some(ColorU8::from_html(b"#214761")), - "flat blue" => Some(ColorU8::from_html(b"#3c73a8")), - "mushroom" => Some(ColorU8::from_html(b"#ba9e88")), - "rich blue" => Some(ColorU8::from_html(b"#021bf9")), - "dirty purple" => Some(ColorU8::from_html(b"#734a65")), - "greenblue" => Some(ColorU8::from_html(b"#23c48b")), - "icky green" => Some(ColorU8::from_html(b"#8fae22")), - "light khaki" => Some(ColorU8::from_html(b"#e6f2a2")), - "warm blue" => Some(ColorU8::from_html(b"#4b57db")), - "dark hot pink" => Some(ColorU8::from_html(b"#d90166")), - "deep sea blue" => Some(ColorU8::from_html(b"#015482")), - "carmine" => Some(ColorU8::from_html(b"#9d0216")), - "dark yellow green" => Some(ColorU8::from_html(b"#728f02")), - "pale peach" => Some(ColorU8::from_html(b"#ffe5ad")), - "plum purple" => Some(ColorU8::from_html(b"#4e0550")), - "golden rod" => Some(ColorU8::from_html(b"#f9bc08")), - "neon red" => Some(ColorU8::from_html(b"#ff073a")), - "old pink" => Some(ColorU8::from_html(b"#c77986")), - "very pale blue" => Some(ColorU8::from_html(b"#d6fffe")), - "blood orange" => Some(ColorU8::from_html(b"#fe4b03")), - "grapefruit" => Some(ColorU8::from_html(b"#fd5956")), - "sand yellow" => Some(ColorU8::from_html(b"#fce166")), - "clay brown" => Some(ColorU8::from_html(b"#b2713d")), - "dark blue grey" => Some(ColorU8::from_html(b"#1f3b4d")), - "flat green" => Some(ColorU8::from_html(b"#699d4c")), - "light green blue" => Some(ColorU8::from_html(b"#56fca2")), - "warm pink" => Some(ColorU8::from_html(b"#fb5581")), - "dodger blue" => Some(ColorU8::from_html(b"#3e82fc")), - "gross green" => Some(ColorU8::from_html(b"#a0bf16")), - "ice" => Some(ColorU8::from_html(b"#d6fffa")), - "metallic blue" => Some(ColorU8::from_html(b"#4f738e")), - "pale salmon" => Some(ColorU8::from_html(b"#ffb19a")), - "sap green" => Some(ColorU8::from_html(b"#5c8b15")), - "algae" => Some(ColorU8::from_html(b"#54ac68")), - "bluey grey" => Some(ColorU8::from_html(b"#89a0b0")), - "greeny grey" => Some(ColorU8::from_html(b"#7ea07a")), - "highlighter green" => Some(ColorU8::from_html(b"#1bfc06")), - "light light blue" => Some(ColorU8::from_html(b"#cafffb")), - "light mint" => Some(ColorU8::from_html(b"#b6ffbb")), - "raw umber" => Some(ColorU8::from_html(b"#a75e09")), - "vivid blue" => Some(ColorU8::from_html(b"#152eff")), - "deep lavender" => Some(ColorU8::from_html(b"#8d5eb7")), - "dull teal" => Some(ColorU8::from_html(b"#5f9e8f")), - "light greenish blue" => Some(ColorU8::from_html(b"#63f7b4")), - "mud green" => Some(ColorU8::from_html(b"#606602")), - "pinky" => Some(ColorU8::from_html(b"#fc86aa")), - "red wine" => Some(ColorU8::from_html(b"#8c0034")), - "shit green" => Some(ColorU8::from_html(b"#758000")), - "tan brown" => Some(ColorU8::from_html(b"#ab7e4c")), - "darkblue" => Some(ColorU8::from_html(b"#030764")), - "rosa" => Some(ColorU8::from_html(b"#fe86a4")), - "lipstick" => Some(ColorU8::from_html(b"#d5174e")), - "pale mauve" => Some(ColorU8::from_html(b"#fed0fc")), - "claret" => Some(ColorU8::from_html(b"#680018")), - "dandelion" => Some(ColorU8::from_html(b"#fedf08")), - "orangered" => Some(ColorU8::from_html(b"#fe420f")), - "poop green" => Some(ColorU8::from_html(b"#6f7c00")), - "ruby" => Some(ColorU8::from_html(b"#ca0147")), - "dark" => Some(ColorU8::from_html(b"#1b2431")), - "greenish turquoise" => Some(ColorU8::from_html(b"#00fbb0")), - "pastel red" => Some(ColorU8::from_html(b"#db5856")), - "piss yellow" => Some(ColorU8::from_html(b"#ddd618")), - "bright cyan" => Some(ColorU8::from_html(b"#41fdfe")), - "dark coral" => Some(ColorU8::from_html(b"#cf524e")), - "algae green" => Some(ColorU8::from_html(b"#21c36f")), - "darkish red" => Some(ColorU8::from_html(b"#a90308")), - "reddy brown" => Some(ColorU8::from_html(b"#6e1005")), - "blush pink" => Some(ColorU8::from_html(b"#fe828c")), - "camouflage green" => Some(ColorU8::from_html(b"#4b6113")), - "lawn green" => Some(ColorU8::from_html(b"#4da409")), - "putty" => Some(ColorU8::from_html(b"#beae8a")), - "vibrant blue" => Some(ColorU8::from_html(b"#0339f8")), - "dark sand" => Some(ColorU8::from_html(b"#a88f59")), - "purple/blue" => Some(ColorU8::from_html(b"#5d21d0")), - "saffron" => Some(ColorU8::from_html(b"#feb209")), - "twilight" => Some(ColorU8::from_html(b"#4e518b")), - "warm brown" => Some(ColorU8::from_html(b"#964e02")), - "bluegrey" => Some(ColorU8::from_html(b"#85a3b2")), - "bubble gum pink" => Some(ColorU8::from_html(b"#ff69af")), - "duck egg blue" => Some(ColorU8::from_html(b"#c3fbf4")), - "greenish cyan" => Some(ColorU8::from_html(b"#2afeb7")), - "petrol" => Some(ColorU8::from_html(b"#005f6a")), - "royal" => Some(ColorU8::from_html(b"#0c1793")), - "butter" => Some(ColorU8::from_html(b"#ffff81")), - "dusty orange" => Some(ColorU8::from_html(b"#f0833a")), - "off yellow" => Some(ColorU8::from_html(b"#f1f33f")), - "pale olive green" => Some(ColorU8::from_html(b"#b1d27b")), - "orangish" => Some(ColorU8::from_html(b"#fc824a")), - "leaf" => Some(ColorU8::from_html(b"#71aa34")), - "light blue grey" => Some(ColorU8::from_html(b"#b7c9e2")), - "dried blood" => Some(ColorU8::from_html(b"#4b0101")), - "lightish purple" => Some(ColorU8::from_html(b"#a552e6")), - "rusty red" => Some(ColorU8::from_html(b"#af2f0d")), - "lavender blue" => Some(ColorU8::from_html(b"#8b88f8")), - "light grass green" => Some(ColorU8::from_html(b"#9af764")), - "light mint green" => Some(ColorU8::from_html(b"#a6fbb2")), - "sunflower" => Some(ColorU8::from_html(b"#ffc512")), - "velvet" => Some(ColorU8::from_html(b"#750851")), - "brick orange" => Some(ColorU8::from_html(b"#c14a09")), - "lightish red" => Some(ColorU8::from_html(b"#fe2f4a")), - "pure blue" => Some(ColorU8::from_html(b"#0203e2")), - "twilight blue" => Some(ColorU8::from_html(b"#0a437a")), - "violet red" => Some(ColorU8::from_html(b"#a50055")), - "yellowy brown" => Some(ColorU8::from_html(b"#ae8b0c")), - "carnation" => Some(ColorU8::from_html(b"#fd798f")), - "muddy yellow" => Some(ColorU8::from_html(b"#bfac05")), - "dark seafoam green" => Some(ColorU8::from_html(b"#3eaf76")), - "deep rose" => Some(ColorU8::from_html(b"#c74767")), - "dusty red" => Some(ColorU8::from_html(b"#b9484e")), - "grey/blue" => Some(ColorU8::from_html(b"#647d8e")), - "lemon lime" => Some(ColorU8::from_html(b"#bffe28")), - "purple/pink" => Some(ColorU8::from_html(b"#d725de")), - "brown yellow" => Some(ColorU8::from_html(b"#b29705")), - "purple brown" => Some(ColorU8::from_html(b"#673a3f")), - "wisteria" => Some(ColorU8::from_html(b"#a87dc2")), - "banana yellow" => Some(ColorU8::from_html(b"#fafe4b")), - "lipstick red" => Some(ColorU8::from_html(b"#c0022f")), - "water blue" => Some(ColorU8::from_html(b"#0e87cc")), - "brown grey" => Some(ColorU8::from_html(b"#8d8468")), - "vibrant purple" => Some(ColorU8::from_html(b"#ad03de")), - "baby green" => Some(ColorU8::from_html(b"#8cff9e")), - "barf green" => Some(ColorU8::from_html(b"#94ac02")), - "eggshell blue" => Some(ColorU8::from_html(b"#c4fff7")), - "sandy yellow" => Some(ColorU8::from_html(b"#fdee73")), - "cool green" => Some(ColorU8::from_html(b"#33b864")), - "pale" => Some(ColorU8::from_html(b"#fff9d0")), - "blue/grey" => Some(ColorU8::from_html(b"#758da3")), - "hot magenta" => Some(ColorU8::from_html(b"#f504c9")), - "greyblue" => Some(ColorU8::from_html(b"#77a1b5")), - "purpley" => Some(ColorU8::from_html(b"#8756e4")), - "baby shit green" => Some(ColorU8::from_html(b"#889717")), - "brownish pink" => Some(ColorU8::from_html(b"#c27e79")), - "dark aquamarine" => Some(ColorU8::from_html(b"#017371")), - "diarrhea" => Some(ColorU8::from_html(b"#9f8303")), - "light mustard" => Some(ColorU8::from_html(b"#f7d560")), - "pale sky blue" => Some(ColorU8::from_html(b"#bdf6fe")), - "turtle green" => Some(ColorU8::from_html(b"#75b84f")), - "bright olive" => Some(ColorU8::from_html(b"#9cbb04")), - "dark grey blue" => Some(ColorU8::from_html(b"#29465b")), - "greeny brown" => Some(ColorU8::from_html(b"#696006")), - "lemon green" => Some(ColorU8::from_html(b"#adf802")), - "light periwinkle" => Some(ColorU8::from_html(b"#c1c6fc")), - "seaweed green" => Some(ColorU8::from_html(b"#35ad6b")), - "sunshine yellow" => Some(ColorU8::from_html(b"#fffd37")), - "ugly purple" => Some(ColorU8::from_html(b"#a442a0")), - "medium pink" => Some(ColorU8::from_html(b"#f36196")), - "puke brown" => Some(ColorU8::from_html(b"#947706")), - "very light pink" => Some(ColorU8::from_html(b"#fff4f2")), - "viridian" => Some(ColorU8::from_html(b"#1e9167")), - "bile" => Some(ColorU8::from_html(b"#b5c306")), - "faded yellow" => Some(ColorU8::from_html(b"#feff7f")), - "very pale green" => Some(ColorU8::from_html(b"#cffdbc")), - "vibrant green" => Some(ColorU8::from_html(b"#0add08")), - "bright lime" => Some(ColorU8::from_html(b"#87fd05")), - "spearmint" => Some(ColorU8::from_html(b"#1ef876")), - "light aquamarine" => Some(ColorU8::from_html(b"#7bfdc7")), - "light sage" => Some(ColorU8::from_html(b"#bcecac")), - "yellowgreen" => Some(ColorU8::from_html(b"#bbf90f")), - "baby poo" => Some(ColorU8::from_html(b"#ab9004")), - "dark seafoam" => Some(ColorU8::from_html(b"#1fb57a")), - "deep teal" => Some(ColorU8::from_html(b"#00555a")), - "heather" => Some(ColorU8::from_html(b"#a484ac")), - "rust orange" => Some(ColorU8::from_html(b"#c45508")), - "dirty blue" => Some(ColorU8::from_html(b"#3f829d")), - "fern green" => Some(ColorU8::from_html(b"#548d44")), - "bright lilac" => Some(ColorU8::from_html(b"#c95efb")), - "weird green" => Some(ColorU8::from_html(b"#3ae57f")), - "peacock blue" => Some(ColorU8::from_html(b"#016795")), - "avocado green" => Some(ColorU8::from_html(b"#87a922")), - "faded orange" => Some(ColorU8::from_html(b"#f0944d")), - "grape purple" => Some(ColorU8::from_html(b"#5d1451")), - "hot green" => Some(ColorU8::from_html(b"#25ff29")), - "lime yellow" => Some(ColorU8::from_html(b"#d0fe1d")), - "mango" => Some(ColorU8::from_html(b"#ffa62b")), - "shamrock" => Some(ColorU8::from_html(b"#01b44c")), - "bubblegum" => Some(ColorU8::from_html(b"#ff6cb5")), - "purplish brown" => Some(ColorU8::from_html(b"#6b4247")), - "vomit yellow" => Some(ColorU8::from_html(b"#c7c10c")), - "pale cyan" => Some(ColorU8::from_html(b"#b7fffa")), - "key lime" => Some(ColorU8::from_html(b"#aeff6e")), - "tomato red" => Some(ColorU8::from_html(b"#ec2d01")), - "lightgreen" => Some(ColorU8::from_html(b"#76ff7b")), - "merlot" => Some(ColorU8::from_html(b"#730039")), - "night blue" => Some(ColorU8::from_html(b"#040348")), - "purpleish pink" => Some(ColorU8::from_html(b"#df4ec8")), - "apple" => Some(ColorU8::from_html(b"#6ecb3c")), - "baby poop green" => Some(ColorU8::from_html(b"#8f9805")), - "green apple" => Some(ColorU8::from_html(b"#5edc1f")), - "heliotrope" => Some(ColorU8::from_html(b"#d94ff5")), - "yellow/green" => Some(ColorU8::from_html(b"#c8fd3d")), - "almost black" => Some(ColorU8::from_html(b"#070d0d")), - "cool blue" => Some(ColorU8::from_html(b"#4984b8")), - "leafy green" => Some(ColorU8::from_html(b"#51b73b")), - "mustard brown" => Some(ColorU8::from_html(b"#ac7e04")), - "dusk" => Some(ColorU8::from_html(b"#4e5481")), - "dull brown" => Some(ColorU8::from_html(b"#876e4b")), - "frog green" => Some(ColorU8::from_html(b"#58bc08")), - "vivid green" => Some(ColorU8::from_html(b"#2fef10")), - "bright light green" => Some(ColorU8::from_html(b"#2dfe54")), - "fluro green" => Some(ColorU8::from_html(b"#0aff02")), - "kiwi" => Some(ColorU8::from_html(b"#9cef43")), - "seaweed" => Some(ColorU8::from_html(b"#18d17b")), - "navy green" => Some(ColorU8::from_html(b"#35530a")), - "ultramarine blue" => Some(ColorU8::from_html(b"#1805db")), - "iris" => Some(ColorU8::from_html(b"#6258c4")), - "pastel orange" => Some(ColorU8::from_html(b"#ff964f")), - "yellowish orange" => Some(ColorU8::from_html(b"#ffab0f")), - "perrywinkle" => Some(ColorU8::from_html(b"#8f8ce7")), - "tealish" => Some(ColorU8::from_html(b"#24bca8")), - "dark plum" => Some(ColorU8::from_html(b"#3f012c")), - "pear" => Some(ColorU8::from_html(b"#cbf85f")), - "pinkish orange" => Some(ColorU8::from_html(b"#ff724c")), - "midnight purple" => Some(ColorU8::from_html(b"#280137")), - "light urple" => Some(ColorU8::from_html(b"#b36ff6")), - "dark mint" => Some(ColorU8::from_html(b"#48c072")), - "greenish tan" => Some(ColorU8::from_html(b"#bccb7a")), - "light burgundy" => Some(ColorU8::from_html(b"#a8415b")), - "turquoise blue" => Some(ColorU8::from_html(b"#06b1c4")), - "ugly pink" => Some(ColorU8::from_html(b"#cd7584")), - "sandy" => Some(ColorU8::from_html(b"#f1da7a")), - "electric pink" => Some(ColorU8::from_html(b"#ff0490")), - "muted purple" => Some(ColorU8::from_html(b"#805b87")), - "mid green" => Some(ColorU8::from_html(b"#50a747")), - "greyish" => Some(ColorU8::from_html(b"#a8a495")), - "neon yellow" => Some(ColorU8::from_html(b"#cfff04")), - "banana" => Some(ColorU8::from_html(b"#ffff7e")), - "carnation pink" => Some(ColorU8::from_html(b"#ff7fa7")), - "tomato" => Some(ColorU8::from_html(b"#ef4026")), - "sea" => Some(ColorU8::from_html(b"#3c9992")), - "muddy brown" => Some(ColorU8::from_html(b"#886806")), - "turquoise green" => Some(ColorU8::from_html(b"#04f489")), - "buff" => Some(ColorU8::from_html(b"#fef69e")), - "fawn" => Some(ColorU8::from_html(b"#cfaf7b")), - "muted blue" => Some(ColorU8::from_html(b"#3b719f")), - "pale rose" => Some(ColorU8::from_html(b"#fdc1c5")), - "dark mint green" => Some(ColorU8::from_html(b"#20c073")), - "amethyst" => Some(ColorU8::from_html(b"#9b5fc0")), - "blue/green" => Some(ColorU8::from_html(b"#0f9b8e")), - "chestnut" => Some(ColorU8::from_html(b"#742802")), - "sick green" => Some(ColorU8::from_html(b"#9db92c")), - "pea" => Some(ColorU8::from_html(b"#a4bf20")), - "rusty orange" => Some(ColorU8::from_html(b"#cd5909")), - "stone" => Some(ColorU8::from_html(b"#ada587")), - "rose red" => Some(ColorU8::from_html(b"#be013c")), - "pale aqua" => Some(ColorU8::from_html(b"#b8ffeb")), - "deep orange" => Some(ColorU8::from_html(b"#dc4d01")), - "earth" => Some(ColorU8::from_html(b"#a2653e")), - "mossy green" => Some(ColorU8::from_html(b"#638b27")), - "grassy green" => Some(ColorU8::from_html(b"#419c03")), - "pale lime green" => Some(ColorU8::from_html(b"#b1ff65")), - "light grey blue" => Some(ColorU8::from_html(b"#9dbcd4")), - "pale grey" => Some(ColorU8::from_html(b"#fdfdfe")), - "asparagus" => Some(ColorU8::from_html(b"#77ab56")), - "blueberry" => Some(ColorU8::from_html(b"#464196")), - "purple red" => Some(ColorU8::from_html(b"#990147")), - "pale lime" => Some(ColorU8::from_html(b"#befd73")), - "greenish teal" => Some(ColorU8::from_html(b"#32bf84")), - "caramel" => Some(ColorU8::from_html(b"#af6f09")), - "deep magenta" => Some(ColorU8::from_html(b"#a0025c")), - "light peach" => Some(ColorU8::from_html(b"#ffd8b1")), - "milk chocolate" => Some(ColorU8::from_html(b"#7f4e1e")), - "ocher" => Some(ColorU8::from_html(b"#bf9b0c")), - "off green" => Some(ColorU8::from_html(b"#6ba353")), - "purply pink" => Some(ColorU8::from_html(b"#f075e6")), - "lightblue" => Some(ColorU8::from_html(b"#7bc8f6")), - "dusky blue" => Some(ColorU8::from_html(b"#475f94")), - "golden" => Some(ColorU8::from_html(b"#f5bf03")), - "light beige" => Some(ColorU8::from_html(b"#fffeb6")), - "butter yellow" => Some(ColorU8::from_html(b"#fffd74")), - "dusky purple" => Some(ColorU8::from_html(b"#895b7b")), - "french blue" => Some(ColorU8::from_html(b"#436bad")), - "ugly yellow" => Some(ColorU8::from_html(b"#d0c101")), - "greeny yellow" => Some(ColorU8::from_html(b"#c6f808")), - "orangish red" => Some(ColorU8::from_html(b"#f43605")), - "shamrock green" => Some(ColorU8::from_html(b"#02c14d")), - "orangish brown" => Some(ColorU8::from_html(b"#b25f03")), - "tree green" => Some(ColorU8::from_html(b"#2a7e19")), - "deep violet" => Some(ColorU8::from_html(b"#490648")), - "gunmetal" => Some(ColorU8::from_html(b"#536267")), - "blue/purple" => Some(ColorU8::from_html(b"#5a06ef")), - "cherry" => Some(ColorU8::from_html(b"#cf0234")), - "sandy brown" => Some(ColorU8::from_html(b"#c4a661")), - "warm grey" => Some(ColorU8::from_html(b"#978a84")), - "dark indigo" => Some(ColorU8::from_html(b"#1f0954")), - "midnight" => Some(ColorU8::from_html(b"#03012d")), - "bluey green" => Some(ColorU8::from_html(b"#2bb179")), - "grey pink" => Some(ColorU8::from_html(b"#c3909b")), - "soft purple" => Some(ColorU8::from_html(b"#a66fb5")), - "blood" => Some(ColorU8::from_html(b"#770001")), - "brown red" => Some(ColorU8::from_html(b"#922b05")), - "medium grey" => Some(ColorU8::from_html(b"#7d7f7c")), - "berry" => Some(ColorU8::from_html(b"#990f4b")), - "poo" => Some(ColorU8::from_html(b"#8f7303")), - "purpley pink" => Some(ColorU8::from_html(b"#c83cb9")), - "light salmon" => Some(ColorU8::from_html(b"#fea993")), - "snot" => Some(ColorU8::from_html(b"#acbb0d")), - "easter purple" => Some(ColorU8::from_html(b"#c071fe")), - "light yellow green" => Some(ColorU8::from_html(b"#ccfd7f")), - "dark navy blue" => Some(ColorU8::from_html(b"#00022e")), - "drab" => Some(ColorU8::from_html(b"#828344")), - "light rose" => Some(ColorU8::from_html(b"#ffc5cb")), - "rouge" => Some(ColorU8::from_html(b"#ab1239")), - "purplish red" => Some(ColorU8::from_html(b"#b0054b")), - "slime green" => Some(ColorU8::from_html(b"#99cc04")), - "baby poop" => Some(ColorU8::from_html(b"#937c00")), - "irish green" => Some(ColorU8::from_html(b"#019529")), - "pink/purple" => Some(ColorU8::from_html(b"#ef1de7")), - "dark navy" => Some(ColorU8::from_html(b"#000435")), - "greeny blue" => Some(ColorU8::from_html(b"#42b395")), - "light plum" => Some(ColorU8::from_html(b"#9d5783")), - "pinkish grey" => Some(ColorU8::from_html(b"#c8aca9")), - "dirty orange" => Some(ColorU8::from_html(b"#c87606")), - "rust red" => Some(ColorU8::from_html(b"#aa2704")), - "pale lilac" => Some(ColorU8::from_html(b"#e4cbff")), - "orangey red" => Some(ColorU8::from_html(b"#fa4224")), - "primary blue" => Some(ColorU8::from_html(b"#0804f9")), - "kermit green" => Some(ColorU8::from_html(b"#5cb200")), - "brownish purple" => Some(ColorU8::from_html(b"#76424e")), - "murky green" => Some(ColorU8::from_html(b"#6c7a0e")), - "wheat" => Some(ColorU8::from_html(b"#fbdd7e")), - "very dark purple" => Some(ColorU8::from_html(b"#2a0134")), - "bottle green" => Some(ColorU8::from_html(b"#044a05")), - "watermelon" => Some(ColorU8::from_html(b"#fd4659")), - "deep sky blue" => Some(ColorU8::from_html(b"#0d75f8")), - "fire engine red" => Some(ColorU8::from_html(b"#fe0002")), - "yellow ochre" => Some(ColorU8::from_html(b"#cb9d06")), - "pumpkin orange" => Some(ColorU8::from_html(b"#fb7d07")), - "pale olive" => Some(ColorU8::from_html(b"#b9cc81")), - "light lilac" => Some(ColorU8::from_html(b"#edc8ff")), - "lightish green" => Some(ColorU8::from_html(b"#61e160")), - "carolina blue" => Some(ColorU8::from_html(b"#8ab8fe")), - "mulberry" => Some(ColorU8::from_html(b"#920a4e")), - "shocking pink" => Some(ColorU8::from_html(b"#fe02a2")), - "auburn" => Some(ColorU8::from_html(b"#9a3001")), - "bright lime green" => Some(ColorU8::from_html(b"#65fe08")), - "celadon" => Some(ColorU8::from_html(b"#befdb7")), - "pinkish brown" => Some(ColorU8::from_html(b"#b17261")), - "poo brown" => Some(ColorU8::from_html(b"#885f01")), - "bright sky blue" => Some(ColorU8::from_html(b"#02ccfe")), - "celery" => Some(ColorU8::from_html(b"#c1fd95")), - "dirt brown" => Some(ColorU8::from_html(b"#836539")), - "strawberry" => Some(ColorU8::from_html(b"#fb2943")), - "dark lime" => Some(ColorU8::from_html(b"#84b701")), - "copper" => Some(ColorU8::from_html(b"#b66325")), - "medium brown" => Some(ColorU8::from_html(b"#7f5112")), - "muted green" => Some(ColorU8::from_html(b"#5fa052")), - "robin's egg" => Some(ColorU8::from_html(b"#6dedfd")), - "bright aqua" => Some(ColorU8::from_html(b"#0bf9ea")), - "bright lavender" => Some(ColorU8::from_html(b"#c760ff")), - "ivory" => Some(ColorU8::from_html(b"#ffffcb")), - "very light purple" => Some(ColorU8::from_html(b"#f6cefc")), - "light navy" => Some(ColorU8::from_html(b"#155084")), - "pink red" => Some(ColorU8::from_html(b"#f5054f")), - "olive brown" => Some(ColorU8::from_html(b"#645403")), - "poop brown" => Some(ColorU8::from_html(b"#7a5901")), - "mustard green" => Some(ColorU8::from_html(b"#a8b504")), - "ocean green" => Some(ColorU8::from_html(b"#3d9973")), - "very dark blue" => Some(ColorU8::from_html(b"#000133")), - "dusty green" => Some(ColorU8::from_html(b"#76a973")), - "light navy blue" => Some(ColorU8::from_html(b"#2e5a88")), - "minty green" => Some(ColorU8::from_html(b"#0bf77d")), - "adobe" => Some(ColorU8::from_html(b"#bd6c48")), - "barney" => Some(ColorU8::from_html(b"#ac1db8")), - "jade green" => Some(ColorU8::from_html(b"#2baf6a")), - "bright light blue" => Some(ColorU8::from_html(b"#26f7fd")), - "light lime" => Some(ColorU8::from_html(b"#aefd6c")), - "dark khaki" => Some(ColorU8::from_html(b"#9b8f55")), - "orange yellow" => Some(ColorU8::from_html(b"#ffad01")), - "ocre" => Some(ColorU8::from_html(b"#c69c04")), - "maize" => Some(ColorU8::from_html(b"#f4d054")), - "faded pink" => Some(ColorU8::from_html(b"#de9dac")), - "british racing green" => Some(ColorU8::from_html(b"#05480d")), - "sandstone" => Some(ColorU8::from_html(b"#c9ae74")), - "mud brown" => Some(ColorU8::from_html(b"#60460f")), - "light sea green" => Some(ColorU8::from_html(b"#98f6b0")), - "robin egg blue" => Some(ColorU8::from_html(b"#8af1fe")), - "aqua marine" => Some(ColorU8::from_html(b"#2ee8bb")), - "dark sea green" => Some(ColorU8::from_html(b"#11875d")), - "soft pink" => Some(ColorU8::from_html(b"#fdb0c0")), - "orangey brown" => Some(ColorU8::from_html(b"#b16002")), - "cherry red" => Some(ColorU8::from_html(b"#f7022a")), - "burnt yellow" => Some(ColorU8::from_html(b"#d5ab09")), - "brownish grey" => Some(ColorU8::from_html(b"#86775f")), - "camel" => Some(ColorU8::from_html(b"#c69f59")), - "purplish grey" => Some(ColorU8::from_html(b"#7a687f")), - "marine" => Some(ColorU8::from_html(b"#042e60")), - "greyish pink" => Some(ColorU8::from_html(b"#c88d94")), - "pale turquoise" => Some(ColorU8::from_html(b"#a5fbd5")), - "pastel yellow" => Some(ColorU8::from_html(b"#fffe71")), - "bluey purple" => Some(ColorU8::from_html(b"#6241c7")), - "canary yellow" => Some(ColorU8::from_html(b"#fffe40")), - "faded red" => Some(ColorU8::from_html(b"#d3494e")), - "sepia" => Some(ColorU8::from_html(b"#985e2b")), - "coffee" => Some(ColorU8::from_html(b"#a6814c")), - "bright magenta" => Some(ColorU8::from_html(b"#ff08e8")), - "mocha" => Some(ColorU8::from_html(b"#9d7651")), - "ecru" => Some(ColorU8::from_html(b"#feffca")), - "purpleish" => Some(ColorU8::from_html(b"#98568d")), - "cranberry" => Some(ColorU8::from_html(b"#9e003a")), - "darkish green" => Some(ColorU8::from_html(b"#287c37")), - "brown orange" => Some(ColorU8::from_html(b"#b96902")), - "dusky rose" => Some(ColorU8::from_html(b"#ba6873")), - "melon" => Some(ColorU8::from_html(b"#ff7855")), - "sickly green" => Some(ColorU8::from_html(b"#94b21c")), - "silver" => Some(ColorU8::from_html(b"#c5c9c7")), - "purply blue" => Some(ColorU8::from_html(b"#661aee")), - "purpleish blue" => Some(ColorU8::from_html(b"#6140ef")), - "hospital green" => Some(ColorU8::from_html(b"#9be5aa")), - "shit brown" => Some(ColorU8::from_html(b"#7b5804")), - "mid blue" => Some(ColorU8::from_html(b"#276ab3")), - "amber" => Some(ColorU8::from_html(b"#feb308")), - "easter green" => Some(ColorU8::from_html(b"#8cfd7e")), - "soft blue" => Some(ColorU8::from_html(b"#6488ea")), - "cerulean blue" => Some(ColorU8::from_html(b"#056eee")), - "golden brown" => Some(ColorU8::from_html(b"#b27a01")), - "bright turquoise" => Some(ColorU8::from_html(b"#0ffef9")), - "red pink" => Some(ColorU8::from_html(b"#fa2a55")), - "red purple" => Some(ColorU8::from_html(b"#820747")), - "greyish brown" => Some(ColorU8::from_html(b"#7a6a4f")), - "vermillion" => Some(ColorU8::from_html(b"#f4320c")), - "russet" => Some(ColorU8::from_html(b"#a13905")), - "steel grey" => Some(ColorU8::from_html(b"#6f828a")), - "lighter purple" => Some(ColorU8::from_html(b"#a55af4")), - "bright violet" => Some(ColorU8::from_html(b"#ad0afd")), - "prussian blue" => Some(ColorU8::from_html(b"#004577")), - "slate green" => Some(ColorU8::from_html(b"#658d6d")), - "dirty pink" => Some(ColorU8::from_html(b"#ca7b80")), - "dark blue green" => Some(ColorU8::from_html(b"#005249")), - "pine" => Some(ColorU8::from_html(b"#2b5d34")), - "yellowy green" => Some(ColorU8::from_html(b"#bff128")), - "dark gold" => Some(ColorU8::from_html(b"#b59410")), - "bluish" => Some(ColorU8::from_html(b"#2976bb")), - "darkish blue" => Some(ColorU8::from_html(b"#014182")), - "dull red" => Some(ColorU8::from_html(b"#bb3f3f")), - "pinky red" => Some(ColorU8::from_html(b"#fc2647")), - "bronze" => Some(ColorU8::from_html(b"#a87900")), - "pale teal" => Some(ColorU8::from_html(b"#82cbb2")), - "military green" => Some(ColorU8::from_html(b"#667c3e")), - "barbie pink" => Some(ColorU8::from_html(b"#fe46a5")), - "bubblegum pink" => Some(ColorU8::from_html(b"#fe83cc")), - "pea soup green" => Some(ColorU8::from_html(b"#94a617")), - "dark mustard" => Some(ColorU8::from_html(b"#a88905")), - "shit" => Some(ColorU8::from_html(b"#7f5f00")), - "medium purple" => Some(ColorU8::from_html(b"#9e43a2")), - "very dark green" => Some(ColorU8::from_html(b"#062e03")), - "dirt" => Some(ColorU8::from_html(b"#8a6e45")), - "dusky pink" => Some(ColorU8::from_html(b"#cc7a8b")), - "red violet" => Some(ColorU8::from_html(b"#9e0168")), - "lemon yellow" => Some(ColorU8::from_html(b"#fdff38")), - "pistachio" => Some(ColorU8::from_html(b"#c0fa8b")), - "dull yellow" => Some(ColorU8::from_html(b"#eedc5b")), - "dark lime green" => Some(ColorU8::from_html(b"#7ebd01")), - "denim blue" => Some(ColorU8::from_html(b"#3b5b92")), - "teal blue" => Some(ColorU8::from_html(b"#01889f")), - "lightish blue" => Some(ColorU8::from_html(b"#3d7afd")), - "purpley blue" => Some(ColorU8::from_html(b"#5f34e7")), - "light indigo" => Some(ColorU8::from_html(b"#6d5acf")), - "swamp green" => Some(ColorU8::from_html(b"#748500")), - "brown green" => Some(ColorU8::from_html(b"#706c11")), - "dark maroon" => Some(ColorU8::from_html(b"#3c0008")), - "hot purple" => Some(ColorU8::from_html(b"#cb00f5")), - "dark forest green" => Some(ColorU8::from_html(b"#002d04")), - "faded blue" => Some(ColorU8::from_html(b"#658cbb")), - "drab green" => Some(ColorU8::from_html(b"#749551")), - "light lime green" => Some(ColorU8::from_html(b"#b9ff66")), - "snot green" => Some(ColorU8::from_html(b"#9dc100")), - "yellowish" => Some(ColorU8::from_html(b"#faee66")), - "light blue green" => Some(ColorU8::from_html(b"#7efbb3")), - "bordeaux" => Some(ColorU8::from_html(b"#7b002c")), - "light mauve" => Some(ColorU8::from_html(b"#c292a1")), - "ocean" => Some(ColorU8::from_html(b"#017b92")), - "marigold" => Some(ColorU8::from_html(b"#fcc006")), - "muddy green" => Some(ColorU8::from_html(b"#657432")), - "dull orange" => Some(ColorU8::from_html(b"#d8863b")), - "steel" => Some(ColorU8::from_html(b"#738595")), - "electric purple" => Some(ColorU8::from_html(b"#aa23ff")), - "fluorescent green" => Some(ColorU8::from_html(b"#08ff08")), - "yellowish brown" => Some(ColorU8::from_html(b"#9b7a01")), - "blush" => Some(ColorU8::from_html(b"#f29e8e")), - "soft green" => Some(ColorU8::from_html(b"#6fc276")), - "bright orange" => Some(ColorU8::from_html(b"#ff5b00")), - "lemon" => Some(ColorU8::from_html(b"#fdff52")), - "purple grey" => Some(ColorU8::from_html(b"#866f85")), - "acid green" => Some(ColorU8::from_html(b"#8ffe09")), - "pale lavender" => Some(ColorU8::from_html(b"#eecffe")), - "violet blue" => Some(ColorU8::from_html(b"#510ac9")), - "light forest green" => Some(ColorU8::from_html(b"#4f9153")), - "burnt red" => Some(ColorU8::from_html(b"#9f2305")), - "khaki green" => Some(ColorU8::from_html(b"#728639")), - "cerise" => Some(ColorU8::from_html(b"#de0c62")), - "faded purple" => Some(ColorU8::from_html(b"#916e99")), - "apricot" => Some(ColorU8::from_html(b"#ffb16d")), - "dark olive green" => Some(ColorU8::from_html(b"#3c4d03")), - "grey brown" => Some(ColorU8::from_html(b"#7f7053")), - "green grey" => Some(ColorU8::from_html(b"#77926f")), - "true blue" => Some(ColorU8::from_html(b"#010fcc")), - "pale violet" => Some(ColorU8::from_html(b"#ceaefa")), - "periwinkle blue" => Some(ColorU8::from_html(b"#8f99fb")), - "light sky blue" => Some(ColorU8::from_html(b"#c6fcff")), - "blurple" => Some(ColorU8::from_html(b"#5539cc")), - "green brown" => Some(ColorU8::from_html(b"#544e03")), - "bluegreen" => Some(ColorU8::from_html(b"#017a79")), - "bright teal" => Some(ColorU8::from_html(b"#01f9c6")), - "brownish yellow" => Some(ColorU8::from_html(b"#c9b003")), - "pea soup" => Some(ColorU8::from_html(b"#929901")), - "forest" => Some(ColorU8::from_html(b"#0b5509")), - "barney purple" => Some(ColorU8::from_html(b"#a00498")), - "ultramarine" => Some(ColorU8::from_html(b"#2000b1")), - "purplish" => Some(ColorU8::from_html(b"#94568c")), - "puke yellow" => Some(ColorU8::from_html(b"#c2be0e")), - "bluish grey" => Some(ColorU8::from_html(b"#748b97")), - "dark periwinkle" => Some(ColorU8::from_html(b"#665fd1")), - "dark lilac" => Some(ColorU8::from_html(b"#9c6da5")), - "reddish" => Some(ColorU8::from_html(b"#c44240")), - "light maroon" => Some(ColorU8::from_html(b"#a24857")), - "dusty purple" => Some(ColorU8::from_html(b"#825f87")), - "terra cotta" => Some(ColorU8::from_html(b"#c9643b")), - "avocado" => Some(ColorU8::from_html(b"#90b134")), - "marine blue" => Some(ColorU8::from_html(b"#01386a")), - "teal green" => Some(ColorU8::from_html(b"#25a36f")), - "slate grey" => Some(ColorU8::from_html(b"#59656d")), - "lighter green" => Some(ColorU8::from_html(b"#75fd63")), - "electric green" => Some(ColorU8::from_html(b"#21fc0d")), - "dusty blue" => Some(ColorU8::from_html(b"#5a86ad")), - "golden yellow" => Some(ColorU8::from_html(b"#fec615")), - "bright yellow" => Some(ColorU8::from_html(b"#fffd01")), - "light lavender" => Some(ColorU8::from_html(b"#dfc5fe")), - "umber" => Some(ColorU8::from_html(b"#b26400")), - "poop" => Some(ColorU8::from_html(b"#7f5e00")), - "dark peach" => Some(ColorU8::from_html(b"#de7e5d")), - "jungle green" => Some(ColorU8::from_html(b"#048243")), - "eggshell" => Some(ColorU8::from_html(b"#ffffd4")), - "denim" => Some(ColorU8::from_html(b"#3b638c")), - "yellow brown" => Some(ColorU8::from_html(b"#b79400")), - "dull purple" => Some(ColorU8::from_html(b"#84597e")), - "chocolate brown" => Some(ColorU8::from_html(b"#411900")), - "wine red" => Some(ColorU8::from_html(b"#7b0323")), - "neon blue" => Some(ColorU8::from_html(b"#04d9ff")), - "dirty green" => Some(ColorU8::from_html(b"#667e2c")), - "light tan" => Some(ColorU8::from_html(b"#fbeeac")), - "ice blue" => Some(ColorU8::from_html(b"#d7fffe")), - "cadet blue" => Some(ColorU8::from_html(b"#4e7496")), - "dark mauve" => Some(ColorU8::from_html(b"#874c62")), - "very light blue" => Some(ColorU8::from_html(b"#d5ffff")), - "grey purple" => Some(ColorU8::from_html(b"#826d8c")), - "pastel pink" => Some(ColorU8::from_html(b"#ffbacd")), - "very light green" => Some(ColorU8::from_html(b"#d1ffbd")), - "dark sky blue" => Some(ColorU8::from_html(b"#448ee4")), - "evergreen" => Some(ColorU8::from_html(b"#05472a")), - "dull pink" => Some(ColorU8::from_html(b"#d5869d")), - "aubergine" => Some(ColorU8::from_html(b"#3d0734")), - "mahogany" => Some(ColorU8::from_html(b"#4a0100")), - "reddish orange" => Some(ColorU8::from_html(b"#f8481c")), - "deep green" => Some(ColorU8::from_html(b"#02590f")), - "vomit green" => Some(ColorU8::from_html(b"#89a203")), - "purple pink" => Some(ColorU8::from_html(b"#e03fd8")), - "dusty pink" => Some(ColorU8::from_html(b"#d58a94")), - "faded green" => Some(ColorU8::from_html(b"#7bb274")), - "camo green" => Some(ColorU8::from_html(b"#526525")), - "pinky purple" => Some(ColorU8::from_html(b"#c94cbe")), - "pink purple" => Some(ColorU8::from_html(b"#db4bda")), - "brownish red" => Some(ColorU8::from_html(b"#9e3623")), - "dark rose" => Some(ColorU8::from_html(b"#b5485d")), - "mud" => Some(ColorU8::from_html(b"#735c12")), - "brownish" => Some(ColorU8::from_html(b"#9c6d57")), - "emerald green" => Some(ColorU8::from_html(b"#028f1e")), - "pale brown" => Some(ColorU8::from_html(b"#b1916e")), - "dull blue" => Some(ColorU8::from_html(b"#49759c")), - "burnt umber" => Some(ColorU8::from_html(b"#a0450e")), - "medium green" => Some(ColorU8::from_html(b"#39ad48")), - "clay" => Some(ColorU8::from_html(b"#b66a50")), - "light aqua" => Some(ColorU8::from_html(b"#8cffdb")), - "light olive green" => Some(ColorU8::from_html(b"#a4be5c")), - "brownish orange" => Some(ColorU8::from_html(b"#cb7723")), - "dark aqua" => Some(ColorU8::from_html(b"#05696b")), - "purplish pink" => Some(ColorU8::from_html(b"#ce5dae")), - "dark salmon" => Some(ColorU8::from_html(b"#c85a53")), - "greenish grey" => Some(ColorU8::from_html(b"#96ae8d")), - "jade" => Some(ColorU8::from_html(b"#1fa774")), - "ugly green" => Some(ColorU8::from_html(b"#7a9703")), - "dark beige" => Some(ColorU8::from_html(b"#ac9362")), - "emerald" => Some(ColorU8::from_html(b"#01a049")), - "pale red" => Some(ColorU8::from_html(b"#d9544d")), - "light magenta" => Some(ColorU8::from_html(b"#fa5ff7")), - "sky" => Some(ColorU8::from_html(b"#82cafc")), - "light cyan" => Some(ColorU8::from_html(b"#acfffc")), - "yellow orange" => Some(ColorU8::from_html(b"#fcb001")), - "reddish purple" => Some(ColorU8::from_html(b"#910951")), - "reddish pink" => Some(ColorU8::from_html(b"#fe2c54")), - "orchid" => Some(ColorU8::from_html(b"#c875c4")), - "dirty yellow" => Some(ColorU8::from_html(b"#cdc50a")), - "orange red" => Some(ColorU8::from_html(b"#fd411e")), - "deep red" => Some(ColorU8::from_html(b"#9a0200")), - "orange brown" => Some(ColorU8::from_html(b"#be6400")), - "cobalt blue" => Some(ColorU8::from_html(b"#030aa7")), - "neon pink" => Some(ColorU8::from_html(b"#fe019a")), - "rose pink" => Some(ColorU8::from_html(b"#f7879a")), - "greyish purple" => Some(ColorU8::from_html(b"#887191")), - "raspberry" => Some(ColorU8::from_html(b"#b00149")), - "aqua green" => Some(ColorU8::from_html(b"#12e193")), - "salmon pink" => Some(ColorU8::from_html(b"#fe7b7c")), - "tangerine" => Some(ColorU8::from_html(b"#ff9408")), - "brownish green" => Some(ColorU8::from_html(b"#6a6e09")), - "red brown" => Some(ColorU8::from_html(b"#8b2e16")), - "greenish brown" => Some(ColorU8::from_html(b"#696112")), - "pumpkin" => Some(ColorU8::from_html(b"#e17701")), - "pine green" => Some(ColorU8::from_html(b"#0a481e")), - "charcoal" => Some(ColorU8::from_html(b"#343837")), - "baby pink" => Some(ColorU8::from_html(b"#ffb7ce")), - "cornflower" => Some(ColorU8::from_html(b"#6a79f7")), - "blue violet" => Some(ColorU8::from_html(b"#5d06e9")), - "chocolate" => Some(ColorU8::from_html(b"#3d1c02")), - "greyish green" => Some(ColorU8::from_html(b"#82a67d")), - "scarlet" => Some(ColorU8::from_html(b"#be0119")), - "green yellow" => Some(ColorU8::from_html(b"#c9ff27")), - "dark olive" => Some(ColorU8::from_html(b"#373e02")), - "sienna" => Some(ColorU8::from_html(b"#a9561e")), - "pastel purple" => Some(ColorU8::from_html(b"#caa0ff")), - "terracotta" => Some(ColorU8::from_html(b"#ca6641")), - "aqua blue" => Some(ColorU8::from_html(b"#02d8e9")), - "sage green" => Some(ColorU8::from_html(b"#88b378")), - "blood red" => Some(ColorU8::from_html(b"#980002")), - "deep pink" => Some(ColorU8::from_html(b"#cb0162")), - "grass" => Some(ColorU8::from_html(b"#5cac2d")), - "moss" => Some(ColorU8::from_html(b"#769958")), - "pastel blue" => Some(ColorU8::from_html(b"#a2bffe")), - "bluish green" => Some(ColorU8::from_html(b"#10a674")), - "green blue" => Some(ColorU8::from_html(b"#06b48b")), - "dark tan" => Some(ColorU8::from_html(b"#af884a")), - "greenish blue" => Some(ColorU8::from_html(b"#0b8b87")), - "pale orange" => Some(ColorU8::from_html(b"#ffa756")), - "vomit" => Some(ColorU8::from_html(b"#a2a415")), - "forrest green" => Some(ColorU8::from_html(b"#154406")), - "dark lavender" => Some(ColorU8::from_html(b"#856798")), - "dark violet" => Some(ColorU8::from_html(b"#34013f")), - "purple blue" => Some(ColorU8::from_html(b"#632de9")), - "dark cyan" => Some(ColorU8::from_html(b"#0a888a")), - "olive drab" => Some(ColorU8::from_html(b"#6f7632")), - "pinkish" => Some(ColorU8::from_html(b"#d46a7e")), - "cobalt" => Some(ColorU8::from_html(b"#1e488f")), - "neon purple" => Some(ColorU8::from_html(b"#bc13fe")), - "light turquoise" => Some(ColorU8::from_html(b"#7ef4cc")), - "apple green" => Some(ColorU8::from_html(b"#76cd26")), - "dull green" => Some(ColorU8::from_html(b"#74a662")), - "wine" => Some(ColorU8::from_html(b"#80013f")), - "powder blue" => Some(ColorU8::from_html(b"#b1d1fc")), - "off white" => Some(ColorU8::from_html(b"#ffffe4")), - "electric blue" => Some(ColorU8::from_html(b"#0652ff")), - "dark turquoise" => Some(ColorU8::from_html(b"#045c5a")), - "blue purple" => Some(ColorU8::from_html(b"#5729ce")), - "azure" => Some(ColorU8::from_html(b"#069af3")), - "bright red" => Some(ColorU8::from_html(b"#ff000d")), - "pinkish red" => Some(ColorU8::from_html(b"#f10c45")), - "cornflower blue" => Some(ColorU8::from_html(b"#5170d7")), - "light olive" => Some(ColorU8::from_html(b"#acbf69")), - "grape" => Some(ColorU8::from_html(b"#6c3461")), - "greyish blue" => Some(ColorU8::from_html(b"#5e819d")), - "purplish blue" => Some(ColorU8::from_html(b"#601ef9")), - "yellowish green" => Some(ColorU8::from_html(b"#b0dd16")), - "greenish yellow" => Some(ColorU8::from_html(b"#cdfd02")), - "medium blue" => Some(ColorU8::from_html(b"#2c6fbb")), - "dusty rose" => Some(ColorU8::from_html(b"#c0737a")), - "light violet" => Some(ColorU8::from_html(b"#d6b4fc")), - "midnight blue" => Some(ColorU8::from_html(b"#020035")), - "bluish purple" => Some(ColorU8::from_html(b"#703be7")), - "red orange" => Some(ColorU8::from_html(b"#fd3c06")), - "dark magenta" => Some(ColorU8::from_html(b"#960056")), - "greenish" => Some(ColorU8::from_html(b"#40a368")), - "ocean blue" => Some(ColorU8::from_html(b"#03719c")), - "coral" => Some(ColorU8::from_html(b"#fc5a50")), - "cream" => Some(ColorU8::from_html(b"#ffffc2")), - "reddish brown" => Some(ColorU8::from_html(b"#7f2b0a")), - "burnt sienna" => Some(ColorU8::from_html(b"#b04e0f")), - "brick" => Some(ColorU8::from_html(b"#a03623")), - "sage" => Some(ColorU8::from_html(b"#87ae73")), - "grey green" => Some(ColorU8::from_html(b"#789b73")), - "white" => Some(ColorU8::from_html(b"#ffffff")), - "robin's egg blue" => Some(ColorU8::from_html(b"#98eff9")), - "moss green" => Some(ColorU8::from_html(b"#658b38")), - "steel blue" => Some(ColorU8::from_html(b"#5a7d9a")), - "eggplant" => Some(ColorU8::from_html(b"#380835")), - "light yellow" => Some(ColorU8::from_html(b"#fffe7a")), - "leaf green" => Some(ColorU8::from_html(b"#5ca904")), - "light grey" => Some(ColorU8::from_html(b"#d8dcd6")), - "puke" => Some(ColorU8::from_html(b"#a5a502")), - "pinkish purple" => Some(ColorU8::from_html(b"#d648d7")), - "sea blue" => Some(ColorU8::from_html(b"#047495")), - "pale purple" => Some(ColorU8::from_html(b"#b790d4")), - "slate blue" => Some(ColorU8::from_html(b"#5b7c99")), - "blue grey" => Some(ColorU8::from_html(b"#607c8e")), - "hunter green" => Some(ColorU8::from_html(b"#0b4008")), - "fuchsia" => Some(ColorU8::from_html(b"#ed0dd9")), - "crimson" => Some(ColorU8::from_html(b"#8c000f")), - "pale yellow" => Some(ColorU8::from_html(b"#ffff84")), - "ochre" => Some(ColorU8::from_html(b"#bf9005")), - "mustard yellow" => Some(ColorU8::from_html(b"#d2bd0a")), - "light red" => Some(ColorU8::from_html(b"#ff474c")), - "cerulean" => Some(ColorU8::from_html(b"#0485d1")), - "pale pink" => Some(ColorU8::from_html(b"#ffcfdc")), - "deep blue" => Some(ColorU8::from_html(b"#040273")), - "rust" => Some(ColorU8::from_html(b"#a83c09")), - "light teal" => Some(ColorU8::from_html(b"#90e4c1")), - "slate" => Some(ColorU8::from_html(b"#516572")), - "goldenrod" => Some(ColorU8::from_html(b"#fac205")), - "dark yellow" => Some(ColorU8::from_html(b"#d5b60a")), - "dark grey" => Some(ColorU8::from_html(b"#363737")), - "army green" => Some(ColorU8::from_html(b"#4b5d16")), - "grey blue" => Some(ColorU8::from_html(b"#6b8ba4")), - "seafoam" => Some(ColorU8::from_html(b"#80f9ad")), - "puce" => Some(ColorU8::from_html(b"#a57e52")), - "spring green" => Some(ColorU8::from_html(b"#a9f971")), - "dark orange" => Some(ColorU8::from_html(b"#c65102")), - "sand" => Some(ColorU8::from_html(b"#e2ca76")), - "pastel green" => Some(ColorU8::from_html(b"#b0ff9d")), - "mint" => Some(ColorU8::from_html(b"#9ffeb0")), - "light orange" => Some(ColorU8::from_html(b"#fdaa48")), - "bright pink" => Some(ColorU8::from_html(b"#fe01b1")), - "chartreuse" => Some(ColorU8::from_html(b"#c1f80a")), - "deep purple" => Some(ColorU8::from_html(b"#36013f")), - "dark brown" => Some(ColorU8::from_html(b"#341c02")), - "taupe" => Some(ColorU8::from_html(b"#b9a281")), - "pea green" => Some(ColorU8::from_html(b"#8eab12")), - "puke green" => Some(ColorU8::from_html(b"#9aae07")), - "kelly green" => Some(ColorU8::from_html(b"#02ab2e")), - "seafoam green" => Some(ColorU8::from_html(b"#7af9ab")), - "blue green" => Some(ColorU8::from_html(b"#137e6d")), - "khaki" => Some(ColorU8::from_html(b"#aaa662")), - "burgundy" => Some(ColorU8::from_html(b"#610023")), - "dark teal" => Some(ColorU8::from_html(b"#014d4e")), - "brick red" => Some(ColorU8::from_html(b"#8f1402")), - "royal purple" => Some(ColorU8::from_html(b"#4b006e")), - "plum" => Some(ColorU8::from_html(b"#580f41")), - "mint green" => Some(ColorU8::from_html(b"#8fff9f")), - "gold" => Some(ColorU8::from_html(b"#dbb40c")), - "baby blue" => Some(ColorU8::from_html(b"#a2cffe")), - "yellow green" => Some(ColorU8::from_html(b"#c0fb2d")), - "bright purple" => Some(ColorU8::from_html(b"#be03fd")), - "dark red" => Some(ColorU8::from_html(b"#840000")), - "pale blue" => Some(ColorU8::from_html(b"#d0fefe")), - "grass green" => Some(ColorU8::from_html(b"#3f9b0b")), - "navy" => Some(ColorU8::from_html(b"#01153e")), - "aquamarine" => Some(ColorU8::from_html(b"#04d8b2")), - "burnt orange" => Some(ColorU8::from_html(b"#c04e01")), - "neon green" => Some(ColorU8::from_html(b"#0cff0c")), - "bright blue" => Some(ColorU8::from_html(b"#0165fc")), - "rose" => Some(ColorU8::from_html(b"#cf6275")), - "light pink" => Some(ColorU8::from_html(b"#ffd1df")), - "mustard" => Some(ColorU8::from_html(b"#ceb301")), - "indigo" => Some(ColorU8::from_html(b"#380282")), - "lime" => Some(ColorU8::from_html(b"#aaff32")), - "sea green" => Some(ColorU8::from_html(b"#53fca1")), - "periwinkle" => Some(ColorU8::from_html(b"#8e82fe")), - "dark pink" => Some(ColorU8::from_html(b"#cb416b")), - "olive green" => Some(ColorU8::from_html(b"#677a04")), - "peach" => Some(ColorU8::from_html(b"#ffb07c")), - "pale green" => Some(ColorU8::from_html(b"#c7fdb5")), - "light brown" => Some(ColorU8::from_html(b"#ad8150")), - "hot pink" => Some(ColorU8::from_html(b"#ff028d")), - "black" => Some(ColorU8::from_html(b"#000000")), - "lilac" => Some(ColorU8::from_html(b"#cea2fd")), - "navy blue" => Some(ColorU8::from_html(b"#001146")), - "royal blue" => Some(ColorU8::from_html(b"#0504aa")), - "beige" => Some(ColorU8::from_html(b"#e6daa6")), - "salmon" => Some(ColorU8::from_html(b"#ff796c")), - "olive" => Some(ColorU8::from_html(b"#6e750e")), - "maroon" => Some(ColorU8::from_html(b"#650021")), - "bright green" => Some(ColorU8::from_html(b"#01ff07")), - "dark purple" => Some(ColorU8::from_html(b"#35063e")), - "mauve" => Some(ColorU8::from_html(b"#ae7181")), - "forest green" => Some(ColorU8::from_html(b"#06470c")), - "aqua" => Some(ColorU8::from_html(b"#13eac9")), - "cyan" => Some(ColorU8::from_html(b"#00ffff")), - "tan" => Some(ColorU8::from_html(b"#d1b26f")), - "dark blue" => Some(ColorU8::from_html(b"#00035b")), - "lavender" => Some(ColorU8::from_html(b"#c79fef")), - "turquoise" => Some(ColorU8::from_html(b"#06c2ac")), - "dark green" => Some(ColorU8::from_html(b"#033500")), - "violet" => Some(ColorU8::from_html(b"#9a0eea")), - "light purple" => Some(ColorU8::from_html(b"#bf77f6")), - "lime green" => Some(ColorU8::from_html(b"#89fe05")), - "grey" => Some(ColorU8::from_html(b"#929591")), - "sky blue" => Some(ColorU8::from_html(b"#75bbfd")), - "yellow" => Some(ColorU8::from_html(b"#ffff14")), - "magenta" => Some(ColorU8::from_html(b"#c20078")), - "light green" => Some(ColorU8::from_html(b"#96f97b")), - "orange" => Some(ColorU8::from_html(b"#f97306")), - "teal" => Some(ColorU8::from_html(b"#029386")), - "light blue" => Some(ColorU8::from_html(b"#95d0fc")), - "red" => Some(ColorU8::from_html(b"#e50000")), - "brown" => Some(ColorU8::from_html(b"#653700")), - "pink" => Some(ColorU8::from_html(b"#ff81c0")), - "blue" => Some(ColorU8::from_html(b"#0343df")), - "green" => Some(ColorU8::from_html(b"#15b01a")), - "purple" => Some(ColorU8::from_html(b"#7e1e9c")), + "cloudy blue" => Some(Rgba8::from_hex(b"#acc2d9")), + "dark pastel green" => Some(Rgba8::from_hex(b"#56ae57")), + "dust" => Some(Rgba8::from_hex(b"#b2996e")), + "electric lime" => Some(Rgba8::from_hex(b"#a8ff04")), + "fresh green" => Some(Rgba8::from_hex(b"#69d84f")), + "light eggplant" => Some(Rgba8::from_hex(b"#894585")), + "nasty green" => Some(Rgba8::from_hex(b"#70b23f")), + "really light blue" => Some(Rgba8::from_hex(b"#d4ffff")), + "tea" => Some(Rgba8::from_hex(b"#65ab7c")), + "warm purple" => Some(Rgba8::from_hex(b"#952e8f")), + "yellowish tan" => Some(Rgba8::from_hex(b"#fcfc81")), + "cement" => Some(Rgba8::from_hex(b"#a5a391")), + "dark grass green" => Some(Rgba8::from_hex(b"#388004")), + "dusty teal" => Some(Rgba8::from_hex(b"#4c9085")), + "grey teal" => Some(Rgba8::from_hex(b"#5e9b8a")), + "macaroni and cheese" => Some(Rgba8::from_hex(b"#efb435")), + "pinkish tan" => Some(Rgba8::from_hex(b"#d99b82")), + "spruce" => Some(Rgba8::from_hex(b"#0a5f38")), + "strong blue" => Some(Rgba8::from_hex(b"#0c06f7")), + "toxic green" => Some(Rgba8::from_hex(b"#61de2a")), + "windows blue" => Some(Rgba8::from_hex(b"#3778bf")), + "blue blue" => Some(Rgba8::from_hex(b"#2242c7")), + "blue with a hint of purple" => Some(Rgba8::from_hex(b"#533cc6")), + "booger" => Some(Rgba8::from_hex(b"#9bb53c")), + "bright sea green" => Some(Rgba8::from_hex(b"#05ffa6")), + "dark green blue" => Some(Rgba8::from_hex(b"#1f6357")), + "deep turquoise" => Some(Rgba8::from_hex(b"#017374")), + "green teal" => Some(Rgba8::from_hex(b"#0cb577")), + "strong pink" => Some(Rgba8::from_hex(b"#ff0789")), + "bland" => Some(Rgba8::from_hex(b"#afa88b")), + "deep aqua" => Some(Rgba8::from_hex(b"#08787f")), + "lavender pink" => Some(Rgba8::from_hex(b"#dd85d7")), + "light moss green" => Some(Rgba8::from_hex(b"#a6c875")), + "light seafoam green" => Some(Rgba8::from_hex(b"#a7ffb5")), + "olive yellow" => Some(Rgba8::from_hex(b"#c2b709")), + "pig pink" => Some(Rgba8::from_hex(b"#e78ea5")), + "deep lilac" => Some(Rgba8::from_hex(b"#966ebd")), + "desert" => Some(Rgba8::from_hex(b"#ccad60")), + "dusty lavender" => Some(Rgba8::from_hex(b"#ac86a8")), + "purpley grey" => Some(Rgba8::from_hex(b"#947e94")), + "purply" => Some(Rgba8::from_hex(b"#983fb2")), + "candy pink" => Some(Rgba8::from_hex(b"#ff63e9")), + "light pastel green" => Some(Rgba8::from_hex(b"#b2fba5")), + "boring green" => Some(Rgba8::from_hex(b"#63b365")), + "kiwi green" => Some(Rgba8::from_hex(b"#8ee53f")), + "light grey green" => Some(Rgba8::from_hex(b"#b7e1a1")), + "orange pink" => Some(Rgba8::from_hex(b"#ff6f52")), + "tea green" => Some(Rgba8::from_hex(b"#bdf8a3")), + "very light brown" => Some(Rgba8::from_hex(b"#d3b683")), + "egg shell" => Some(Rgba8::from_hex(b"#fffcc4")), + "eggplant purple" => Some(Rgba8::from_hex(b"#430541")), + "powder pink" => Some(Rgba8::from_hex(b"#ffb2d0")), + "reddish grey" => Some(Rgba8::from_hex(b"#997570")), + "baby shit brown" => Some(Rgba8::from_hex(b"#ad900d")), + "liliac" => Some(Rgba8::from_hex(b"#c48efd")), + "stormy blue" => Some(Rgba8::from_hex(b"#507b9c")), + "ugly brown" => Some(Rgba8::from_hex(b"#7d7103")), + "custard" => Some(Rgba8::from_hex(b"#fffd78")), + "darkish pink" => Some(Rgba8::from_hex(b"#da467d")), + "deep brown" => Some(Rgba8::from_hex(b"#410200")), + "greenish beige" => Some(Rgba8::from_hex(b"#c9d179")), + "manilla" => Some(Rgba8::from_hex(b"#fffa86")), + "off blue" => Some(Rgba8::from_hex(b"#5684ae")), + "battleship grey" => Some(Rgba8::from_hex(b"#6b7c85")), + "browny green" => Some(Rgba8::from_hex(b"#6f6c0a")), + "bruise" => Some(Rgba8::from_hex(b"#7e4071")), + "kelley green" => Some(Rgba8::from_hex(b"#009337")), + "sickly yellow" => Some(Rgba8::from_hex(b"#d0e429")), + "sunny yellow" => Some(Rgba8::from_hex(b"#fff917")), + "azul" => Some(Rgba8::from_hex(b"#1d5dec")), + "darkgreen" => Some(Rgba8::from_hex(b"#054907")), + "green/yellow" => Some(Rgba8::from_hex(b"#b5ce08")), + "lichen" => Some(Rgba8::from_hex(b"#8fb67b")), + "light light green" => Some(Rgba8::from_hex(b"#c8ffb0")), + "pale gold" => Some(Rgba8::from_hex(b"#fdde6c")), + "sun yellow" => Some(Rgba8::from_hex(b"#ffdf22")), + "tan green" => Some(Rgba8::from_hex(b"#a9be70")), + "burple" => Some(Rgba8::from_hex(b"#6832e3")), + "butterscotch" => Some(Rgba8::from_hex(b"#fdb147")), + "toupe" => Some(Rgba8::from_hex(b"#c7ac7d")), + "dark cream" => Some(Rgba8::from_hex(b"#fff39a")), + "indian red" => Some(Rgba8::from_hex(b"#850e04")), + "light lavendar" => Some(Rgba8::from_hex(b"#efc0fe")), + "poison green" => Some(Rgba8::from_hex(b"#40fd14")), + "baby puke green" => Some(Rgba8::from_hex(b"#b6c406")), + "bright yellow green" => Some(Rgba8::from_hex(b"#9dff00")), + "charcoal grey" => Some(Rgba8::from_hex(b"#3c4142")), + "squash" => Some(Rgba8::from_hex(b"#f2ab15")), + "cinnamon" => Some(Rgba8::from_hex(b"#ac4f06")), + "light pea green" => Some(Rgba8::from_hex(b"#c4fe82")), + "radioactive green" => Some(Rgba8::from_hex(b"#2cfa1f")), + "raw sienna" => Some(Rgba8::from_hex(b"#9a6200")), + "baby purple" => Some(Rgba8::from_hex(b"#ca9bf7")), + "cocoa" => Some(Rgba8::from_hex(b"#875f42")), + "light royal blue" => Some(Rgba8::from_hex(b"#3a2efe")), + "orangeish" => Some(Rgba8::from_hex(b"#fd8d49")), + "rust brown" => Some(Rgba8::from_hex(b"#8b3103")), + "sand brown" => Some(Rgba8::from_hex(b"#cba560")), + "swamp" => Some(Rgba8::from_hex(b"#698339")), + "tealish green" => Some(Rgba8::from_hex(b"#0cdc73")), + "burnt siena" => Some(Rgba8::from_hex(b"#b75203")), + "camo" => Some(Rgba8::from_hex(b"#7f8f4e")), + "dusk blue" => Some(Rgba8::from_hex(b"#26538d")), + "fern" => Some(Rgba8::from_hex(b"#63a950")), + "old rose" => Some(Rgba8::from_hex(b"#c87f89")), + "pale light green" => Some(Rgba8::from_hex(b"#b1fc99")), + "peachy pink" => Some(Rgba8::from_hex(b"#ff9a8a")), + "rosy pink" => Some(Rgba8::from_hex(b"#f6688e")), + "light bluish green" => Some(Rgba8::from_hex(b"#76fda8")), + "light bright green" => Some(Rgba8::from_hex(b"#53fe5c")), + "light neon green" => Some(Rgba8::from_hex(b"#4efd54")), + "light seafoam" => Some(Rgba8::from_hex(b"#a0febf")), + "tiffany blue" => Some(Rgba8::from_hex(b"#7bf2da")), + "washed out green" => Some(Rgba8::from_hex(b"#bcf5a6")), + "browny orange" => Some(Rgba8::from_hex(b"#ca6b02")), + "nice blue" => Some(Rgba8::from_hex(b"#107ab0")), + "sapphire" => Some(Rgba8::from_hex(b"#2138ab")), + "greyish teal" => Some(Rgba8::from_hex(b"#719f91")), + "orangey yellow" => Some(Rgba8::from_hex(b"#fdb915")), + "parchment" => Some(Rgba8::from_hex(b"#fefcaf")), + "straw" => Some(Rgba8::from_hex(b"#fcf679")), + "very dark brown" => Some(Rgba8::from_hex(b"#1d0200")), + "terracota" => Some(Rgba8::from_hex(b"#cb6843")), + "ugly blue" => Some(Rgba8::from_hex(b"#31668a")), + "clear blue" => Some(Rgba8::from_hex(b"#247afd")), + "creme" => Some(Rgba8::from_hex(b"#ffffb6")), + "foam green" => Some(Rgba8::from_hex(b"#90fda9")), + "grey/green" => Some(Rgba8::from_hex(b"#86a17d")), + "light gold" => Some(Rgba8::from_hex(b"#fddc5c")), + "seafoam blue" => Some(Rgba8::from_hex(b"#78d1b6")), + "topaz" => Some(Rgba8::from_hex(b"#13bbaf")), + "violet pink" => Some(Rgba8::from_hex(b"#fb5ffc")), + "wintergreen" => Some(Rgba8::from_hex(b"#20f986")), + "yellow tan" => Some(Rgba8::from_hex(b"#ffe36e")), + "dark fuchsia" => Some(Rgba8::from_hex(b"#9d0759")), + "indigo blue" => Some(Rgba8::from_hex(b"#3a18b1")), + "light yellowish green" => Some(Rgba8::from_hex(b"#c2ff89")), + "pale magenta" => Some(Rgba8::from_hex(b"#d767ad")), + "rich purple" => Some(Rgba8::from_hex(b"#720058")), + "sunflower yellow" => Some(Rgba8::from_hex(b"#ffda03")), + "green/blue" => Some(Rgba8::from_hex(b"#01c08d")), + "leather" => Some(Rgba8::from_hex(b"#ac7434")), + "racing green" => Some(Rgba8::from_hex(b"#014600")), + "vivid purple" => Some(Rgba8::from_hex(b"#9900fa")), + "dark royal blue" => Some(Rgba8::from_hex(b"#02066f")), + "hazel" => Some(Rgba8::from_hex(b"#8e7618")), + "muted pink" => Some(Rgba8::from_hex(b"#d1768f")), + "booger green" => Some(Rgba8::from_hex(b"#96b403")), + "canary" => Some(Rgba8::from_hex(b"#fdff63")), + "cool grey" => Some(Rgba8::from_hex(b"#95a3a6")), + "dark taupe" => Some(Rgba8::from_hex(b"#7f684e")), + "darkish purple" => Some(Rgba8::from_hex(b"#751973")), + "true green" => Some(Rgba8::from_hex(b"#089404")), + "coral pink" => Some(Rgba8::from_hex(b"#ff6163")), + "dark sage" => Some(Rgba8::from_hex(b"#598556")), + "dark slate blue" => Some(Rgba8::from_hex(b"#214761")), + "flat blue" => Some(Rgba8::from_hex(b"#3c73a8")), + "mushroom" => Some(Rgba8::from_hex(b"#ba9e88")), + "rich blue" => Some(Rgba8::from_hex(b"#021bf9")), + "dirty purple" => Some(Rgba8::from_hex(b"#734a65")), + "greenblue" => Some(Rgba8::from_hex(b"#23c48b")), + "icky green" => Some(Rgba8::from_hex(b"#8fae22")), + "light khaki" => Some(Rgba8::from_hex(b"#e6f2a2")), + "warm blue" => Some(Rgba8::from_hex(b"#4b57db")), + "dark hot pink" => Some(Rgba8::from_hex(b"#d90166")), + "deep sea blue" => Some(Rgba8::from_hex(b"#015482")), + "carmine" => Some(Rgba8::from_hex(b"#9d0216")), + "dark yellow green" => Some(Rgba8::from_hex(b"#728f02")), + "pale peach" => Some(Rgba8::from_hex(b"#ffe5ad")), + "plum purple" => Some(Rgba8::from_hex(b"#4e0550")), + "golden rod" => Some(Rgba8::from_hex(b"#f9bc08")), + "neon red" => Some(Rgba8::from_hex(b"#ff073a")), + "old pink" => Some(Rgba8::from_hex(b"#c77986")), + "very pale blue" => Some(Rgba8::from_hex(b"#d6fffe")), + "blood orange" => Some(Rgba8::from_hex(b"#fe4b03")), + "grapefruit" => Some(Rgba8::from_hex(b"#fd5956")), + "sand yellow" => Some(Rgba8::from_hex(b"#fce166")), + "clay brown" => Some(Rgba8::from_hex(b"#b2713d")), + "dark blue grey" => Some(Rgba8::from_hex(b"#1f3b4d")), + "flat green" => Some(Rgba8::from_hex(b"#699d4c")), + "light green blue" => Some(Rgba8::from_hex(b"#56fca2")), + "warm pink" => Some(Rgba8::from_hex(b"#fb5581")), + "dodger blue" => Some(Rgba8::from_hex(b"#3e82fc")), + "gross green" => Some(Rgba8::from_hex(b"#a0bf16")), + "ice" => Some(Rgba8::from_hex(b"#d6fffa")), + "metallic blue" => Some(Rgba8::from_hex(b"#4f738e")), + "pale salmon" => Some(Rgba8::from_hex(b"#ffb19a")), + "sap green" => Some(Rgba8::from_hex(b"#5c8b15")), + "algae" => Some(Rgba8::from_hex(b"#54ac68")), + "bluey grey" => Some(Rgba8::from_hex(b"#89a0b0")), + "greeny grey" => Some(Rgba8::from_hex(b"#7ea07a")), + "highlighter green" => Some(Rgba8::from_hex(b"#1bfc06")), + "light light blue" => Some(Rgba8::from_hex(b"#cafffb")), + "light mint" => Some(Rgba8::from_hex(b"#b6ffbb")), + "raw umber" => Some(Rgba8::from_hex(b"#a75e09")), + "vivid blue" => Some(Rgba8::from_hex(b"#152eff")), + "deep lavender" => Some(Rgba8::from_hex(b"#8d5eb7")), + "dull teal" => Some(Rgba8::from_hex(b"#5f9e8f")), + "light greenish blue" => Some(Rgba8::from_hex(b"#63f7b4")), + "mud green" => Some(Rgba8::from_hex(b"#606602")), + "pinky" => Some(Rgba8::from_hex(b"#fc86aa")), + "red wine" => Some(Rgba8::from_hex(b"#8c0034")), + "shit green" => Some(Rgba8::from_hex(b"#758000")), + "tan brown" => Some(Rgba8::from_hex(b"#ab7e4c")), + "darkblue" => Some(Rgba8::from_hex(b"#030764")), + "rosa" => Some(Rgba8::from_hex(b"#fe86a4")), + "lipstick" => Some(Rgba8::from_hex(b"#d5174e")), + "pale mauve" => Some(Rgba8::from_hex(b"#fed0fc")), + "claret" => Some(Rgba8::from_hex(b"#680018")), + "dandelion" => Some(Rgba8::from_hex(b"#fedf08")), + "orangered" => Some(Rgba8::from_hex(b"#fe420f")), + "poop green" => Some(Rgba8::from_hex(b"#6f7c00")), + "ruby" => Some(Rgba8::from_hex(b"#ca0147")), + "dark" => Some(Rgba8::from_hex(b"#1b2431")), + "greenish turquoise" => Some(Rgba8::from_hex(b"#00fbb0")), + "pastel red" => Some(Rgba8::from_hex(b"#db5856")), + "piss yellow" => Some(Rgba8::from_hex(b"#ddd618")), + "bright cyan" => Some(Rgba8::from_hex(b"#41fdfe")), + "dark coral" => Some(Rgba8::from_hex(b"#cf524e")), + "algae green" => Some(Rgba8::from_hex(b"#21c36f")), + "darkish red" => Some(Rgba8::from_hex(b"#a90308")), + "reddy brown" => Some(Rgba8::from_hex(b"#6e1005")), + "blush pink" => Some(Rgba8::from_hex(b"#fe828c")), + "camouflage green" => Some(Rgba8::from_hex(b"#4b6113")), + "lawn green" => Some(Rgba8::from_hex(b"#4da409")), + "putty" => Some(Rgba8::from_hex(b"#beae8a")), + "vibrant blue" => Some(Rgba8::from_hex(b"#0339f8")), + "dark sand" => Some(Rgba8::from_hex(b"#a88f59")), + "purple/blue" => Some(Rgba8::from_hex(b"#5d21d0")), + "saffron" => Some(Rgba8::from_hex(b"#feb209")), + "twilight" => Some(Rgba8::from_hex(b"#4e518b")), + "warm brown" => Some(Rgba8::from_hex(b"#964e02")), + "bluegrey" => Some(Rgba8::from_hex(b"#85a3b2")), + "bubble gum pink" => Some(Rgba8::from_hex(b"#ff69af")), + "duck egg blue" => Some(Rgba8::from_hex(b"#c3fbf4")), + "greenish cyan" => Some(Rgba8::from_hex(b"#2afeb7")), + "petrol" => Some(Rgba8::from_hex(b"#005f6a")), + "royal" => Some(Rgba8::from_hex(b"#0c1793")), + "butter" => Some(Rgba8::from_hex(b"#ffff81")), + "dusty orange" => Some(Rgba8::from_hex(b"#f0833a")), + "off yellow" => Some(Rgba8::from_hex(b"#f1f33f")), + "pale olive green" => Some(Rgba8::from_hex(b"#b1d27b")), + "orangish" => Some(Rgba8::from_hex(b"#fc824a")), + "leaf" => Some(Rgba8::from_hex(b"#71aa34")), + "light blue grey" => Some(Rgba8::from_hex(b"#b7c9e2")), + "dried blood" => Some(Rgba8::from_hex(b"#4b0101")), + "lightish purple" => Some(Rgba8::from_hex(b"#a552e6")), + "rusty red" => Some(Rgba8::from_hex(b"#af2f0d")), + "lavender blue" => Some(Rgba8::from_hex(b"#8b88f8")), + "light grass green" => Some(Rgba8::from_hex(b"#9af764")), + "light mint green" => Some(Rgba8::from_hex(b"#a6fbb2")), + "sunflower" => Some(Rgba8::from_hex(b"#ffc512")), + "velvet" => Some(Rgba8::from_hex(b"#750851")), + "brick orange" => Some(Rgba8::from_hex(b"#c14a09")), + "lightish red" => Some(Rgba8::from_hex(b"#fe2f4a")), + "pure blue" => Some(Rgba8::from_hex(b"#0203e2")), + "twilight blue" => Some(Rgba8::from_hex(b"#0a437a")), + "violet red" => Some(Rgba8::from_hex(b"#a50055")), + "yellowy brown" => Some(Rgba8::from_hex(b"#ae8b0c")), + "carnation" => Some(Rgba8::from_hex(b"#fd798f")), + "muddy yellow" => Some(Rgba8::from_hex(b"#bfac05")), + "dark seafoam green" => Some(Rgba8::from_hex(b"#3eaf76")), + "deep rose" => Some(Rgba8::from_hex(b"#c74767")), + "dusty red" => Some(Rgba8::from_hex(b"#b9484e")), + "grey/blue" => Some(Rgba8::from_hex(b"#647d8e")), + "lemon lime" => Some(Rgba8::from_hex(b"#bffe28")), + "purple/pink" => Some(Rgba8::from_hex(b"#d725de")), + "brown yellow" => Some(Rgba8::from_hex(b"#b29705")), + "purple brown" => Some(Rgba8::from_hex(b"#673a3f")), + "wisteria" => Some(Rgba8::from_hex(b"#a87dc2")), + "banana yellow" => Some(Rgba8::from_hex(b"#fafe4b")), + "lipstick red" => Some(Rgba8::from_hex(b"#c0022f")), + "water blue" => Some(Rgba8::from_hex(b"#0e87cc")), + "brown grey" => Some(Rgba8::from_hex(b"#8d8468")), + "vibrant purple" => Some(Rgba8::from_hex(b"#ad03de")), + "baby green" => Some(Rgba8::from_hex(b"#8cff9e")), + "barf green" => Some(Rgba8::from_hex(b"#94ac02")), + "eggshell blue" => Some(Rgba8::from_hex(b"#c4fff7")), + "sandy yellow" => Some(Rgba8::from_hex(b"#fdee73")), + "cool green" => Some(Rgba8::from_hex(b"#33b864")), + "pale" => Some(Rgba8::from_hex(b"#fff9d0")), + "blue/grey" => Some(Rgba8::from_hex(b"#758da3")), + "hot magenta" => Some(Rgba8::from_hex(b"#f504c9")), + "greyblue" => Some(Rgba8::from_hex(b"#77a1b5")), + "purpley" => Some(Rgba8::from_hex(b"#8756e4")), + "baby shit green" => Some(Rgba8::from_hex(b"#889717")), + "brownish pink" => Some(Rgba8::from_hex(b"#c27e79")), + "dark aquamarine" => Some(Rgba8::from_hex(b"#017371")), + "diarrhea" => Some(Rgba8::from_hex(b"#9f8303")), + "light mustard" => Some(Rgba8::from_hex(b"#f7d560")), + "pale sky blue" => Some(Rgba8::from_hex(b"#bdf6fe")), + "turtle green" => Some(Rgba8::from_hex(b"#75b84f")), + "bright olive" => Some(Rgba8::from_hex(b"#9cbb04")), + "dark grey blue" => Some(Rgba8::from_hex(b"#29465b")), + "greeny brown" => Some(Rgba8::from_hex(b"#696006")), + "lemon green" => Some(Rgba8::from_hex(b"#adf802")), + "light periwinkle" => Some(Rgba8::from_hex(b"#c1c6fc")), + "seaweed green" => Some(Rgba8::from_hex(b"#35ad6b")), + "sunshine yellow" => Some(Rgba8::from_hex(b"#fffd37")), + "ugly purple" => Some(Rgba8::from_hex(b"#a442a0")), + "medium pink" => Some(Rgba8::from_hex(b"#f36196")), + "puke brown" => Some(Rgba8::from_hex(b"#947706")), + "very light pink" => Some(Rgba8::from_hex(b"#fff4f2")), + "viridian" => Some(Rgba8::from_hex(b"#1e9167")), + "bile" => Some(Rgba8::from_hex(b"#b5c306")), + "faded yellow" => Some(Rgba8::from_hex(b"#feff7f")), + "very pale green" => Some(Rgba8::from_hex(b"#cffdbc")), + "vibrant green" => Some(Rgba8::from_hex(b"#0add08")), + "bright lime" => Some(Rgba8::from_hex(b"#87fd05")), + "spearmint" => Some(Rgba8::from_hex(b"#1ef876")), + "light aquamarine" => Some(Rgba8::from_hex(b"#7bfdc7")), + "light sage" => Some(Rgba8::from_hex(b"#bcecac")), + "yellowgreen" => Some(Rgba8::from_hex(b"#bbf90f")), + "baby poo" => Some(Rgba8::from_hex(b"#ab9004")), + "dark seafoam" => Some(Rgba8::from_hex(b"#1fb57a")), + "deep teal" => Some(Rgba8::from_hex(b"#00555a")), + "heather" => Some(Rgba8::from_hex(b"#a484ac")), + "rust orange" => Some(Rgba8::from_hex(b"#c45508")), + "dirty blue" => Some(Rgba8::from_hex(b"#3f829d")), + "fern green" => Some(Rgba8::from_hex(b"#548d44")), + "bright lilac" => Some(Rgba8::from_hex(b"#c95efb")), + "weird green" => Some(Rgba8::from_hex(b"#3ae57f")), + "peacock blue" => Some(Rgba8::from_hex(b"#016795")), + "avocado green" => Some(Rgba8::from_hex(b"#87a922")), + "faded orange" => Some(Rgba8::from_hex(b"#f0944d")), + "grape purple" => Some(Rgba8::from_hex(b"#5d1451")), + "hot green" => Some(Rgba8::from_hex(b"#25ff29")), + "lime yellow" => Some(Rgba8::from_hex(b"#d0fe1d")), + "mango" => Some(Rgba8::from_hex(b"#ffa62b")), + "shamrock" => Some(Rgba8::from_hex(b"#01b44c")), + "bubblegum" => Some(Rgba8::from_hex(b"#ff6cb5")), + "purplish brown" => Some(Rgba8::from_hex(b"#6b4247")), + "vomit yellow" => Some(Rgba8::from_hex(b"#c7c10c")), + "pale cyan" => Some(Rgba8::from_hex(b"#b7fffa")), + "key lime" => Some(Rgba8::from_hex(b"#aeff6e")), + "tomato red" => Some(Rgba8::from_hex(b"#ec2d01")), + "lightgreen" => Some(Rgba8::from_hex(b"#76ff7b")), + "merlot" => Some(Rgba8::from_hex(b"#730039")), + "night blue" => Some(Rgba8::from_hex(b"#040348")), + "purpleish pink" => Some(Rgba8::from_hex(b"#df4ec8")), + "apple" => Some(Rgba8::from_hex(b"#6ecb3c")), + "baby poop green" => Some(Rgba8::from_hex(b"#8f9805")), + "green apple" => Some(Rgba8::from_hex(b"#5edc1f")), + "heliotrope" => Some(Rgba8::from_hex(b"#d94ff5")), + "yellow/green" => Some(Rgba8::from_hex(b"#c8fd3d")), + "almost black" => Some(Rgba8::from_hex(b"#070d0d")), + "cool blue" => Some(Rgba8::from_hex(b"#4984b8")), + "leafy green" => Some(Rgba8::from_hex(b"#51b73b")), + "mustard brown" => Some(Rgba8::from_hex(b"#ac7e04")), + "dusk" => Some(Rgba8::from_hex(b"#4e5481")), + "dull brown" => Some(Rgba8::from_hex(b"#876e4b")), + "frog green" => Some(Rgba8::from_hex(b"#58bc08")), + "vivid green" => Some(Rgba8::from_hex(b"#2fef10")), + "bright light green" => Some(Rgba8::from_hex(b"#2dfe54")), + "fluro green" => Some(Rgba8::from_hex(b"#0aff02")), + "kiwi" => Some(Rgba8::from_hex(b"#9cef43")), + "seaweed" => Some(Rgba8::from_hex(b"#18d17b")), + "navy green" => Some(Rgba8::from_hex(b"#35530a")), + "ultramarine blue" => Some(Rgba8::from_hex(b"#1805db")), + "iris" => Some(Rgba8::from_hex(b"#6258c4")), + "pastel orange" => Some(Rgba8::from_hex(b"#ff964f")), + "yellowish orange" => Some(Rgba8::from_hex(b"#ffab0f")), + "perrywinkle" => Some(Rgba8::from_hex(b"#8f8ce7")), + "tealish" => Some(Rgba8::from_hex(b"#24bca8")), + "dark plum" => Some(Rgba8::from_hex(b"#3f012c")), + "pear" => Some(Rgba8::from_hex(b"#cbf85f")), + "pinkish orange" => Some(Rgba8::from_hex(b"#ff724c")), + "midnight purple" => Some(Rgba8::from_hex(b"#280137")), + "light urple" => Some(Rgba8::from_hex(b"#b36ff6")), + "dark mint" => Some(Rgba8::from_hex(b"#48c072")), + "greenish tan" => Some(Rgba8::from_hex(b"#bccb7a")), + "light burgundy" => Some(Rgba8::from_hex(b"#a8415b")), + "turquoise blue" => Some(Rgba8::from_hex(b"#06b1c4")), + "ugly pink" => Some(Rgba8::from_hex(b"#cd7584")), + "sandy" => Some(Rgba8::from_hex(b"#f1da7a")), + "electric pink" => Some(Rgba8::from_hex(b"#ff0490")), + "muted purple" => Some(Rgba8::from_hex(b"#805b87")), + "mid green" => Some(Rgba8::from_hex(b"#50a747")), + "greyish" => Some(Rgba8::from_hex(b"#a8a495")), + "neon yellow" => Some(Rgba8::from_hex(b"#cfff04")), + "banana" => Some(Rgba8::from_hex(b"#ffff7e")), + "carnation pink" => Some(Rgba8::from_hex(b"#ff7fa7")), + "tomato" => Some(Rgba8::from_hex(b"#ef4026")), + "sea" => Some(Rgba8::from_hex(b"#3c9992")), + "muddy brown" => Some(Rgba8::from_hex(b"#886806")), + "turquoise green" => Some(Rgba8::from_hex(b"#04f489")), + "buff" => Some(Rgba8::from_hex(b"#fef69e")), + "fawn" => Some(Rgba8::from_hex(b"#cfaf7b")), + "muted blue" => Some(Rgba8::from_hex(b"#3b719f")), + "pale rose" => Some(Rgba8::from_hex(b"#fdc1c5")), + "dark mint green" => Some(Rgba8::from_hex(b"#20c073")), + "amethyst" => Some(Rgba8::from_hex(b"#9b5fc0")), + "blue/green" => Some(Rgba8::from_hex(b"#0f9b8e")), + "chestnut" => Some(Rgba8::from_hex(b"#742802")), + "sick green" => Some(Rgba8::from_hex(b"#9db92c")), + "pea" => Some(Rgba8::from_hex(b"#a4bf20")), + "rusty orange" => Some(Rgba8::from_hex(b"#cd5909")), + "stone" => Some(Rgba8::from_hex(b"#ada587")), + "rose red" => Some(Rgba8::from_hex(b"#be013c")), + "pale aqua" => Some(Rgba8::from_hex(b"#b8ffeb")), + "deep orange" => Some(Rgba8::from_hex(b"#dc4d01")), + "earth" => Some(Rgba8::from_hex(b"#a2653e")), + "mossy green" => Some(Rgba8::from_hex(b"#638b27")), + "grassy green" => Some(Rgba8::from_hex(b"#419c03")), + "pale lime green" => Some(Rgba8::from_hex(b"#b1ff65")), + "light grey blue" => Some(Rgba8::from_hex(b"#9dbcd4")), + "pale grey" => Some(Rgba8::from_hex(b"#fdfdfe")), + "asparagus" => Some(Rgba8::from_hex(b"#77ab56")), + "blueberry" => Some(Rgba8::from_hex(b"#464196")), + "purple red" => Some(Rgba8::from_hex(b"#990147")), + "pale lime" => Some(Rgba8::from_hex(b"#befd73")), + "greenish teal" => Some(Rgba8::from_hex(b"#32bf84")), + "caramel" => Some(Rgba8::from_hex(b"#af6f09")), + "deep magenta" => Some(Rgba8::from_hex(b"#a0025c")), + "light peach" => Some(Rgba8::from_hex(b"#ffd8b1")), + "milk chocolate" => Some(Rgba8::from_hex(b"#7f4e1e")), + "ocher" => Some(Rgba8::from_hex(b"#bf9b0c")), + "off green" => Some(Rgba8::from_hex(b"#6ba353")), + "purply pink" => Some(Rgba8::from_hex(b"#f075e6")), + "lightblue" => Some(Rgba8::from_hex(b"#7bc8f6")), + "dusky blue" => Some(Rgba8::from_hex(b"#475f94")), + "golden" => Some(Rgba8::from_hex(b"#f5bf03")), + "light beige" => Some(Rgba8::from_hex(b"#fffeb6")), + "butter yellow" => Some(Rgba8::from_hex(b"#fffd74")), + "dusky purple" => Some(Rgba8::from_hex(b"#895b7b")), + "french blue" => Some(Rgba8::from_hex(b"#436bad")), + "ugly yellow" => Some(Rgba8::from_hex(b"#d0c101")), + "greeny yellow" => Some(Rgba8::from_hex(b"#c6f808")), + "orangish red" => Some(Rgba8::from_hex(b"#f43605")), + "shamrock green" => Some(Rgba8::from_hex(b"#02c14d")), + "orangish brown" => Some(Rgba8::from_hex(b"#b25f03")), + "tree green" => Some(Rgba8::from_hex(b"#2a7e19")), + "deep violet" => Some(Rgba8::from_hex(b"#490648")), + "gunmetal" => Some(Rgba8::from_hex(b"#536267")), + "blue/purple" => Some(Rgba8::from_hex(b"#5a06ef")), + "cherry" => Some(Rgba8::from_hex(b"#cf0234")), + "sandy brown" => Some(Rgba8::from_hex(b"#c4a661")), + "warm grey" => Some(Rgba8::from_hex(b"#978a84")), + "dark indigo" => Some(Rgba8::from_hex(b"#1f0954")), + "midnight" => Some(Rgba8::from_hex(b"#03012d")), + "bluey green" => Some(Rgba8::from_hex(b"#2bb179")), + "grey pink" => Some(Rgba8::from_hex(b"#c3909b")), + "soft purple" => Some(Rgba8::from_hex(b"#a66fb5")), + "blood" => Some(Rgba8::from_hex(b"#770001")), + "brown red" => Some(Rgba8::from_hex(b"#922b05")), + "medium grey" => Some(Rgba8::from_hex(b"#7d7f7c")), + "berry" => Some(Rgba8::from_hex(b"#990f4b")), + "poo" => Some(Rgba8::from_hex(b"#8f7303")), + "purpley pink" => Some(Rgba8::from_hex(b"#c83cb9")), + "light salmon" => Some(Rgba8::from_hex(b"#fea993")), + "snot" => Some(Rgba8::from_hex(b"#acbb0d")), + "easter purple" => Some(Rgba8::from_hex(b"#c071fe")), + "light yellow green" => Some(Rgba8::from_hex(b"#ccfd7f")), + "dark navy blue" => Some(Rgba8::from_hex(b"#00022e")), + "drab" => Some(Rgba8::from_hex(b"#828344")), + "light rose" => Some(Rgba8::from_hex(b"#ffc5cb")), + "rouge" => Some(Rgba8::from_hex(b"#ab1239")), + "purplish red" => Some(Rgba8::from_hex(b"#b0054b")), + "slime green" => Some(Rgba8::from_hex(b"#99cc04")), + "baby poop" => Some(Rgba8::from_hex(b"#937c00")), + "irish green" => Some(Rgba8::from_hex(b"#019529")), + "pink/purple" => Some(Rgba8::from_hex(b"#ef1de7")), + "dark navy" => Some(Rgba8::from_hex(b"#000435")), + "greeny blue" => Some(Rgba8::from_hex(b"#42b395")), + "light plum" => Some(Rgba8::from_hex(b"#9d5783")), + "pinkish grey" => Some(Rgba8::from_hex(b"#c8aca9")), + "dirty orange" => Some(Rgba8::from_hex(b"#c87606")), + "rust red" => Some(Rgba8::from_hex(b"#aa2704")), + "pale lilac" => Some(Rgba8::from_hex(b"#e4cbff")), + "orangey red" => Some(Rgba8::from_hex(b"#fa4224")), + "primary blue" => Some(Rgba8::from_hex(b"#0804f9")), + "kermit green" => Some(Rgba8::from_hex(b"#5cb200")), + "brownish purple" => Some(Rgba8::from_hex(b"#76424e")), + "murky green" => Some(Rgba8::from_hex(b"#6c7a0e")), + "wheat" => Some(Rgba8::from_hex(b"#fbdd7e")), + "very dark purple" => Some(Rgba8::from_hex(b"#2a0134")), + "bottle green" => Some(Rgba8::from_hex(b"#044a05")), + "watermelon" => Some(Rgba8::from_hex(b"#fd4659")), + "deep sky blue" => Some(Rgba8::from_hex(b"#0d75f8")), + "fire engine red" => Some(Rgba8::from_hex(b"#fe0002")), + "yellow ochre" => Some(Rgba8::from_hex(b"#cb9d06")), + "pumpkin orange" => Some(Rgba8::from_hex(b"#fb7d07")), + "pale olive" => Some(Rgba8::from_hex(b"#b9cc81")), + "light lilac" => Some(Rgba8::from_hex(b"#edc8ff")), + "lightish green" => Some(Rgba8::from_hex(b"#61e160")), + "carolina blue" => Some(Rgba8::from_hex(b"#8ab8fe")), + "mulberry" => Some(Rgba8::from_hex(b"#920a4e")), + "shocking pink" => Some(Rgba8::from_hex(b"#fe02a2")), + "auburn" => Some(Rgba8::from_hex(b"#9a3001")), + "bright lime green" => Some(Rgba8::from_hex(b"#65fe08")), + "celadon" => Some(Rgba8::from_hex(b"#befdb7")), + "pinkish brown" => Some(Rgba8::from_hex(b"#b17261")), + "poo brown" => Some(Rgba8::from_hex(b"#885f01")), + "bright sky blue" => Some(Rgba8::from_hex(b"#02ccfe")), + "celery" => Some(Rgba8::from_hex(b"#c1fd95")), + "dirt brown" => Some(Rgba8::from_hex(b"#836539")), + "strawberry" => Some(Rgba8::from_hex(b"#fb2943")), + "dark lime" => Some(Rgba8::from_hex(b"#84b701")), + "copper" => Some(Rgba8::from_hex(b"#b66325")), + "medium brown" => Some(Rgba8::from_hex(b"#7f5112")), + "muted green" => Some(Rgba8::from_hex(b"#5fa052")), + "robin's egg" => Some(Rgba8::from_hex(b"#6dedfd")), + "bright aqua" => Some(Rgba8::from_hex(b"#0bf9ea")), + "bright lavender" => Some(Rgba8::from_hex(b"#c760ff")), + "ivory" => Some(Rgba8::from_hex(b"#ffffcb")), + "very light purple" => Some(Rgba8::from_hex(b"#f6cefc")), + "light navy" => Some(Rgba8::from_hex(b"#155084")), + "pink red" => Some(Rgba8::from_hex(b"#f5054f")), + "olive brown" => Some(Rgba8::from_hex(b"#645403")), + "poop brown" => Some(Rgba8::from_hex(b"#7a5901")), + "mustard green" => Some(Rgba8::from_hex(b"#a8b504")), + "ocean green" => Some(Rgba8::from_hex(b"#3d9973")), + "very dark blue" => Some(Rgba8::from_hex(b"#000133")), + "dusty green" => Some(Rgba8::from_hex(b"#76a973")), + "light navy blue" => Some(Rgba8::from_hex(b"#2e5a88")), + "minty green" => Some(Rgba8::from_hex(b"#0bf77d")), + "adobe" => Some(Rgba8::from_hex(b"#bd6c48")), + "barney" => Some(Rgba8::from_hex(b"#ac1db8")), + "jade green" => Some(Rgba8::from_hex(b"#2baf6a")), + "bright light blue" => Some(Rgba8::from_hex(b"#26f7fd")), + "light lime" => Some(Rgba8::from_hex(b"#aefd6c")), + "dark khaki" => Some(Rgba8::from_hex(b"#9b8f55")), + "orange yellow" => Some(Rgba8::from_hex(b"#ffad01")), + "ocre" => Some(Rgba8::from_hex(b"#c69c04")), + "maize" => Some(Rgba8::from_hex(b"#f4d054")), + "faded pink" => Some(Rgba8::from_hex(b"#de9dac")), + "british racing green" => Some(Rgba8::from_hex(b"#05480d")), + "sandstone" => Some(Rgba8::from_hex(b"#c9ae74")), + "mud brown" => Some(Rgba8::from_hex(b"#60460f")), + "light sea green" => Some(Rgba8::from_hex(b"#98f6b0")), + "robin egg blue" => Some(Rgba8::from_hex(b"#8af1fe")), + "aqua marine" => Some(Rgba8::from_hex(b"#2ee8bb")), + "dark sea green" => Some(Rgba8::from_hex(b"#11875d")), + "soft pink" => Some(Rgba8::from_hex(b"#fdb0c0")), + "orangey brown" => Some(Rgba8::from_hex(b"#b16002")), + "cherry red" => Some(Rgba8::from_hex(b"#f7022a")), + "burnt yellow" => Some(Rgba8::from_hex(b"#d5ab09")), + "brownish grey" => Some(Rgba8::from_hex(b"#86775f")), + "camel" => Some(Rgba8::from_hex(b"#c69f59")), + "purplish grey" => Some(Rgba8::from_hex(b"#7a687f")), + "marine" => Some(Rgba8::from_hex(b"#042e60")), + "greyish pink" => Some(Rgba8::from_hex(b"#c88d94")), + "pale turquoise" => Some(Rgba8::from_hex(b"#a5fbd5")), + "pastel yellow" => Some(Rgba8::from_hex(b"#fffe71")), + "bluey purple" => Some(Rgba8::from_hex(b"#6241c7")), + "canary yellow" => Some(Rgba8::from_hex(b"#fffe40")), + "faded red" => Some(Rgba8::from_hex(b"#d3494e")), + "sepia" => Some(Rgba8::from_hex(b"#985e2b")), + "coffee" => Some(Rgba8::from_hex(b"#a6814c")), + "bright magenta" => Some(Rgba8::from_hex(b"#ff08e8")), + "mocha" => Some(Rgba8::from_hex(b"#9d7651")), + "ecru" => Some(Rgba8::from_hex(b"#feffca")), + "purpleish" => Some(Rgba8::from_hex(b"#98568d")), + "cranberry" => Some(Rgba8::from_hex(b"#9e003a")), + "darkish green" => Some(Rgba8::from_hex(b"#287c37")), + "brown orange" => Some(Rgba8::from_hex(b"#b96902")), + "dusky rose" => Some(Rgba8::from_hex(b"#ba6873")), + "melon" => Some(Rgba8::from_hex(b"#ff7855")), + "sickly green" => Some(Rgba8::from_hex(b"#94b21c")), + "silver" => Some(Rgba8::from_hex(b"#c5c9c7")), + "purply blue" => Some(Rgba8::from_hex(b"#661aee")), + "purpleish blue" => Some(Rgba8::from_hex(b"#6140ef")), + "hospital green" => Some(Rgba8::from_hex(b"#9be5aa")), + "shit brown" => Some(Rgba8::from_hex(b"#7b5804")), + "mid blue" => Some(Rgba8::from_hex(b"#276ab3")), + "amber" => Some(Rgba8::from_hex(b"#feb308")), + "easter green" => Some(Rgba8::from_hex(b"#8cfd7e")), + "soft blue" => Some(Rgba8::from_hex(b"#6488ea")), + "cerulean blue" => Some(Rgba8::from_hex(b"#056eee")), + "golden brown" => Some(Rgba8::from_hex(b"#b27a01")), + "bright turquoise" => Some(Rgba8::from_hex(b"#0ffef9")), + "red pink" => Some(Rgba8::from_hex(b"#fa2a55")), + "red purple" => Some(Rgba8::from_hex(b"#820747")), + "greyish brown" => Some(Rgba8::from_hex(b"#7a6a4f")), + "vermillion" => Some(Rgba8::from_hex(b"#f4320c")), + "russet" => Some(Rgba8::from_hex(b"#a13905")), + "steel grey" => Some(Rgba8::from_hex(b"#6f828a")), + "lighter purple" => Some(Rgba8::from_hex(b"#a55af4")), + "bright violet" => Some(Rgba8::from_hex(b"#ad0afd")), + "prussian blue" => Some(Rgba8::from_hex(b"#004577")), + "slate green" => Some(Rgba8::from_hex(b"#658d6d")), + "dirty pink" => Some(Rgba8::from_hex(b"#ca7b80")), + "dark blue green" => Some(Rgba8::from_hex(b"#005249")), + "pine" => Some(Rgba8::from_hex(b"#2b5d34")), + "yellowy green" => Some(Rgba8::from_hex(b"#bff128")), + "dark gold" => Some(Rgba8::from_hex(b"#b59410")), + "bluish" => Some(Rgba8::from_hex(b"#2976bb")), + "darkish blue" => Some(Rgba8::from_hex(b"#014182")), + "dull red" => Some(Rgba8::from_hex(b"#bb3f3f")), + "pinky red" => Some(Rgba8::from_hex(b"#fc2647")), + "bronze" => Some(Rgba8::from_hex(b"#a87900")), + "pale teal" => Some(Rgba8::from_hex(b"#82cbb2")), + "military green" => Some(Rgba8::from_hex(b"#667c3e")), + "barbie pink" => Some(Rgba8::from_hex(b"#fe46a5")), + "bubblegum pink" => Some(Rgba8::from_hex(b"#fe83cc")), + "pea soup green" => Some(Rgba8::from_hex(b"#94a617")), + "dark mustard" => Some(Rgba8::from_hex(b"#a88905")), + "shit" => Some(Rgba8::from_hex(b"#7f5f00")), + "medium purple" => Some(Rgba8::from_hex(b"#9e43a2")), + "very dark green" => Some(Rgba8::from_hex(b"#062e03")), + "dirt" => Some(Rgba8::from_hex(b"#8a6e45")), + "dusky pink" => Some(Rgba8::from_hex(b"#cc7a8b")), + "red violet" => Some(Rgba8::from_hex(b"#9e0168")), + "lemon yellow" => Some(Rgba8::from_hex(b"#fdff38")), + "pistachio" => Some(Rgba8::from_hex(b"#c0fa8b")), + "dull yellow" => Some(Rgba8::from_hex(b"#eedc5b")), + "dark lime green" => Some(Rgba8::from_hex(b"#7ebd01")), + "denim blue" => Some(Rgba8::from_hex(b"#3b5b92")), + "teal blue" => Some(Rgba8::from_hex(b"#01889f")), + "lightish blue" => Some(Rgba8::from_hex(b"#3d7afd")), + "purpley blue" => Some(Rgba8::from_hex(b"#5f34e7")), + "light indigo" => Some(Rgba8::from_hex(b"#6d5acf")), + "swamp green" => Some(Rgba8::from_hex(b"#748500")), + "brown green" => Some(Rgba8::from_hex(b"#706c11")), + "dark maroon" => Some(Rgba8::from_hex(b"#3c0008")), + "hot purple" => Some(Rgba8::from_hex(b"#cb00f5")), + "dark forest green" => Some(Rgba8::from_hex(b"#002d04")), + "faded blue" => Some(Rgba8::from_hex(b"#658cbb")), + "drab green" => Some(Rgba8::from_hex(b"#749551")), + "light lime green" => Some(Rgba8::from_hex(b"#b9ff66")), + "snot green" => Some(Rgba8::from_hex(b"#9dc100")), + "yellowish" => Some(Rgba8::from_hex(b"#faee66")), + "light blue green" => Some(Rgba8::from_hex(b"#7efbb3")), + "bordeaux" => Some(Rgba8::from_hex(b"#7b002c")), + "light mauve" => Some(Rgba8::from_hex(b"#c292a1")), + "ocean" => Some(Rgba8::from_hex(b"#017b92")), + "marigold" => Some(Rgba8::from_hex(b"#fcc006")), + "muddy green" => Some(Rgba8::from_hex(b"#657432")), + "dull orange" => Some(Rgba8::from_hex(b"#d8863b")), + "steel" => Some(Rgba8::from_hex(b"#738595")), + "electric purple" => Some(Rgba8::from_hex(b"#aa23ff")), + "fluorescent green" => Some(Rgba8::from_hex(b"#08ff08")), + "yellowish brown" => Some(Rgba8::from_hex(b"#9b7a01")), + "blush" => Some(Rgba8::from_hex(b"#f29e8e")), + "soft green" => Some(Rgba8::from_hex(b"#6fc276")), + "bright orange" => Some(Rgba8::from_hex(b"#ff5b00")), + "lemon" => Some(Rgba8::from_hex(b"#fdff52")), + "purple grey" => Some(Rgba8::from_hex(b"#866f85")), + "acid green" => Some(Rgba8::from_hex(b"#8ffe09")), + "pale lavender" => Some(Rgba8::from_hex(b"#eecffe")), + "violet blue" => Some(Rgba8::from_hex(b"#510ac9")), + "light forest green" => Some(Rgba8::from_hex(b"#4f9153")), + "burnt red" => Some(Rgba8::from_hex(b"#9f2305")), + "khaki green" => Some(Rgba8::from_hex(b"#728639")), + "cerise" => Some(Rgba8::from_hex(b"#de0c62")), + "faded purple" => Some(Rgba8::from_hex(b"#916e99")), + "apricot" => Some(Rgba8::from_hex(b"#ffb16d")), + "dark olive green" => Some(Rgba8::from_hex(b"#3c4d03")), + "grey brown" => Some(Rgba8::from_hex(b"#7f7053")), + "green grey" => Some(Rgba8::from_hex(b"#77926f")), + "true blue" => Some(Rgba8::from_hex(b"#010fcc")), + "pale violet" => Some(Rgba8::from_hex(b"#ceaefa")), + "periwinkle blue" => Some(Rgba8::from_hex(b"#8f99fb")), + "light sky blue" => Some(Rgba8::from_hex(b"#c6fcff")), + "blurple" => Some(Rgba8::from_hex(b"#5539cc")), + "green brown" => Some(Rgba8::from_hex(b"#544e03")), + "bluegreen" => Some(Rgba8::from_hex(b"#017a79")), + "bright teal" => Some(Rgba8::from_hex(b"#01f9c6")), + "brownish yellow" => Some(Rgba8::from_hex(b"#c9b003")), + "pea soup" => Some(Rgba8::from_hex(b"#929901")), + "forest" => Some(Rgba8::from_hex(b"#0b5509")), + "barney purple" => Some(Rgba8::from_hex(b"#a00498")), + "ultramarine" => Some(Rgba8::from_hex(b"#2000b1")), + "purplish" => Some(Rgba8::from_hex(b"#94568c")), + "puke yellow" => Some(Rgba8::from_hex(b"#c2be0e")), + "bluish grey" => Some(Rgba8::from_hex(b"#748b97")), + "dark periwinkle" => Some(Rgba8::from_hex(b"#665fd1")), + "dark lilac" => Some(Rgba8::from_hex(b"#9c6da5")), + "reddish" => Some(Rgba8::from_hex(b"#c44240")), + "light maroon" => Some(Rgba8::from_hex(b"#a24857")), + "dusty purple" => Some(Rgba8::from_hex(b"#825f87")), + "terra cotta" => Some(Rgba8::from_hex(b"#c9643b")), + "avocado" => Some(Rgba8::from_hex(b"#90b134")), + "marine blue" => Some(Rgba8::from_hex(b"#01386a")), + "teal green" => Some(Rgba8::from_hex(b"#25a36f")), + "slate grey" => Some(Rgba8::from_hex(b"#59656d")), + "lighter green" => Some(Rgba8::from_hex(b"#75fd63")), + "electric green" => Some(Rgba8::from_hex(b"#21fc0d")), + "dusty blue" => Some(Rgba8::from_hex(b"#5a86ad")), + "golden yellow" => Some(Rgba8::from_hex(b"#fec615")), + "bright yellow" => Some(Rgba8::from_hex(b"#fffd01")), + "light lavender" => Some(Rgba8::from_hex(b"#dfc5fe")), + "umber" => Some(Rgba8::from_hex(b"#b26400")), + "poop" => Some(Rgba8::from_hex(b"#7f5e00")), + "dark peach" => Some(Rgba8::from_hex(b"#de7e5d")), + "jungle green" => Some(Rgba8::from_hex(b"#048243")), + "eggshell" => Some(Rgba8::from_hex(b"#ffffd4")), + "denim" => Some(Rgba8::from_hex(b"#3b638c")), + "yellow brown" => Some(Rgba8::from_hex(b"#b79400")), + "dull purple" => Some(Rgba8::from_hex(b"#84597e")), + "chocolate brown" => Some(Rgba8::from_hex(b"#411900")), + "wine red" => Some(Rgba8::from_hex(b"#7b0323")), + "neon blue" => Some(Rgba8::from_hex(b"#04d9ff")), + "dirty green" => Some(Rgba8::from_hex(b"#667e2c")), + "light tan" => Some(Rgba8::from_hex(b"#fbeeac")), + "ice blue" => Some(Rgba8::from_hex(b"#d7fffe")), + "cadet blue" => Some(Rgba8::from_hex(b"#4e7496")), + "dark mauve" => Some(Rgba8::from_hex(b"#874c62")), + "very light blue" => Some(Rgba8::from_hex(b"#d5ffff")), + "grey purple" => Some(Rgba8::from_hex(b"#826d8c")), + "pastel pink" => Some(Rgba8::from_hex(b"#ffbacd")), + "very light green" => Some(Rgba8::from_hex(b"#d1ffbd")), + "dark sky blue" => Some(Rgba8::from_hex(b"#448ee4")), + "evergreen" => Some(Rgba8::from_hex(b"#05472a")), + "dull pink" => Some(Rgba8::from_hex(b"#d5869d")), + "aubergine" => Some(Rgba8::from_hex(b"#3d0734")), + "mahogany" => Some(Rgba8::from_hex(b"#4a0100")), + "reddish orange" => Some(Rgba8::from_hex(b"#f8481c")), + "deep green" => Some(Rgba8::from_hex(b"#02590f")), + "vomit green" => Some(Rgba8::from_hex(b"#89a203")), + "purple pink" => Some(Rgba8::from_hex(b"#e03fd8")), + "dusty pink" => Some(Rgba8::from_hex(b"#d58a94")), + "faded green" => Some(Rgba8::from_hex(b"#7bb274")), + "camo green" => Some(Rgba8::from_hex(b"#526525")), + "pinky purple" => Some(Rgba8::from_hex(b"#c94cbe")), + "pink purple" => Some(Rgba8::from_hex(b"#db4bda")), + "brownish red" => Some(Rgba8::from_hex(b"#9e3623")), + "dark rose" => Some(Rgba8::from_hex(b"#b5485d")), + "mud" => Some(Rgba8::from_hex(b"#735c12")), + "brownish" => Some(Rgba8::from_hex(b"#9c6d57")), + "emerald green" => Some(Rgba8::from_hex(b"#028f1e")), + "pale brown" => Some(Rgba8::from_hex(b"#b1916e")), + "dull blue" => Some(Rgba8::from_hex(b"#49759c")), + "burnt umber" => Some(Rgba8::from_hex(b"#a0450e")), + "medium green" => Some(Rgba8::from_hex(b"#39ad48")), + "clay" => Some(Rgba8::from_hex(b"#b66a50")), + "light aqua" => Some(Rgba8::from_hex(b"#8cffdb")), + "light olive green" => Some(Rgba8::from_hex(b"#a4be5c")), + "brownish orange" => Some(Rgba8::from_hex(b"#cb7723")), + "dark aqua" => Some(Rgba8::from_hex(b"#05696b")), + "purplish pink" => Some(Rgba8::from_hex(b"#ce5dae")), + "dark salmon" => Some(Rgba8::from_hex(b"#c85a53")), + "greenish grey" => Some(Rgba8::from_hex(b"#96ae8d")), + "jade" => Some(Rgba8::from_hex(b"#1fa774")), + "ugly green" => Some(Rgba8::from_hex(b"#7a9703")), + "dark beige" => Some(Rgba8::from_hex(b"#ac9362")), + "emerald" => Some(Rgba8::from_hex(b"#01a049")), + "pale red" => Some(Rgba8::from_hex(b"#d9544d")), + "light magenta" => Some(Rgba8::from_hex(b"#fa5ff7")), + "sky" => Some(Rgba8::from_hex(b"#82cafc")), + "light cyan" => Some(Rgba8::from_hex(b"#acfffc")), + "yellow orange" => Some(Rgba8::from_hex(b"#fcb001")), + "reddish purple" => Some(Rgba8::from_hex(b"#910951")), + "reddish pink" => Some(Rgba8::from_hex(b"#fe2c54")), + "orchid" => Some(Rgba8::from_hex(b"#c875c4")), + "dirty yellow" => Some(Rgba8::from_hex(b"#cdc50a")), + "orange red" => Some(Rgba8::from_hex(b"#fd411e")), + "deep red" => Some(Rgba8::from_hex(b"#9a0200")), + "orange brown" => Some(Rgba8::from_hex(b"#be6400")), + "cobalt blue" => Some(Rgba8::from_hex(b"#030aa7")), + "neon pink" => Some(Rgba8::from_hex(b"#fe019a")), + "rose pink" => Some(Rgba8::from_hex(b"#f7879a")), + "greyish purple" => Some(Rgba8::from_hex(b"#887191")), + "raspberry" => Some(Rgba8::from_hex(b"#b00149")), + "aqua green" => Some(Rgba8::from_hex(b"#12e193")), + "salmon pink" => Some(Rgba8::from_hex(b"#fe7b7c")), + "tangerine" => Some(Rgba8::from_hex(b"#ff9408")), + "brownish green" => Some(Rgba8::from_hex(b"#6a6e09")), + "red brown" => Some(Rgba8::from_hex(b"#8b2e16")), + "greenish brown" => Some(Rgba8::from_hex(b"#696112")), + "pumpkin" => Some(Rgba8::from_hex(b"#e17701")), + "pine green" => Some(Rgba8::from_hex(b"#0a481e")), + "charcoal" => Some(Rgba8::from_hex(b"#343837")), + "baby pink" => Some(Rgba8::from_hex(b"#ffb7ce")), + "cornflower" => Some(Rgba8::from_hex(b"#6a79f7")), + "blue violet" => Some(Rgba8::from_hex(b"#5d06e9")), + "chocolate" => Some(Rgba8::from_hex(b"#3d1c02")), + "greyish green" => Some(Rgba8::from_hex(b"#82a67d")), + "scarlet" => Some(Rgba8::from_hex(b"#be0119")), + "green yellow" => Some(Rgba8::from_hex(b"#c9ff27")), + "dark olive" => Some(Rgba8::from_hex(b"#373e02")), + "sienna" => Some(Rgba8::from_hex(b"#a9561e")), + "pastel purple" => Some(Rgba8::from_hex(b"#caa0ff")), + "terracotta" => Some(Rgba8::from_hex(b"#ca6641")), + "aqua blue" => Some(Rgba8::from_hex(b"#02d8e9")), + "sage green" => Some(Rgba8::from_hex(b"#88b378")), + "blood red" => Some(Rgba8::from_hex(b"#980002")), + "deep pink" => Some(Rgba8::from_hex(b"#cb0162")), + "grass" => Some(Rgba8::from_hex(b"#5cac2d")), + "moss" => Some(Rgba8::from_hex(b"#769958")), + "pastel blue" => Some(Rgba8::from_hex(b"#a2bffe")), + "bluish green" => Some(Rgba8::from_hex(b"#10a674")), + "green blue" => Some(Rgba8::from_hex(b"#06b48b")), + "dark tan" => Some(Rgba8::from_hex(b"#af884a")), + "greenish blue" => Some(Rgba8::from_hex(b"#0b8b87")), + "pale orange" => Some(Rgba8::from_hex(b"#ffa756")), + "vomit" => Some(Rgba8::from_hex(b"#a2a415")), + "forrest green" => Some(Rgba8::from_hex(b"#154406")), + "dark lavender" => Some(Rgba8::from_hex(b"#856798")), + "dark violet" => Some(Rgba8::from_hex(b"#34013f")), + "purple blue" => Some(Rgba8::from_hex(b"#632de9")), + "dark cyan" => Some(Rgba8::from_hex(b"#0a888a")), + "olive drab" => Some(Rgba8::from_hex(b"#6f7632")), + "pinkish" => Some(Rgba8::from_hex(b"#d46a7e")), + "cobalt" => Some(Rgba8::from_hex(b"#1e488f")), + "neon purple" => Some(Rgba8::from_hex(b"#bc13fe")), + "light turquoise" => Some(Rgba8::from_hex(b"#7ef4cc")), + "apple green" => Some(Rgba8::from_hex(b"#76cd26")), + "dull green" => Some(Rgba8::from_hex(b"#74a662")), + "wine" => Some(Rgba8::from_hex(b"#80013f")), + "powder blue" => Some(Rgba8::from_hex(b"#b1d1fc")), + "off white" => Some(Rgba8::from_hex(b"#ffffe4")), + "electric blue" => Some(Rgba8::from_hex(b"#0652ff")), + "dark turquoise" => Some(Rgba8::from_hex(b"#045c5a")), + "blue purple" => Some(Rgba8::from_hex(b"#5729ce")), + "azure" => Some(Rgba8::from_hex(b"#069af3")), + "bright red" => Some(Rgba8::from_hex(b"#ff000d")), + "pinkish red" => Some(Rgba8::from_hex(b"#f10c45")), + "cornflower blue" => Some(Rgba8::from_hex(b"#5170d7")), + "light olive" => Some(Rgba8::from_hex(b"#acbf69")), + "grape" => Some(Rgba8::from_hex(b"#6c3461")), + "greyish blue" => Some(Rgba8::from_hex(b"#5e819d")), + "purplish blue" => Some(Rgba8::from_hex(b"#601ef9")), + "yellowish green" => Some(Rgba8::from_hex(b"#b0dd16")), + "greenish yellow" => Some(Rgba8::from_hex(b"#cdfd02")), + "medium blue" => Some(Rgba8::from_hex(b"#2c6fbb")), + "dusty rose" => Some(Rgba8::from_hex(b"#c0737a")), + "light violet" => Some(Rgba8::from_hex(b"#d6b4fc")), + "midnight blue" => Some(Rgba8::from_hex(b"#020035")), + "bluish purple" => Some(Rgba8::from_hex(b"#703be7")), + "red orange" => Some(Rgba8::from_hex(b"#fd3c06")), + "dark magenta" => Some(Rgba8::from_hex(b"#960056")), + "greenish" => Some(Rgba8::from_hex(b"#40a368")), + "ocean blue" => Some(Rgba8::from_hex(b"#03719c")), + "coral" => Some(Rgba8::from_hex(b"#fc5a50")), + "cream" => Some(Rgba8::from_hex(b"#ffffc2")), + "reddish brown" => Some(Rgba8::from_hex(b"#7f2b0a")), + "burnt sienna" => Some(Rgba8::from_hex(b"#b04e0f")), + "brick" => Some(Rgba8::from_hex(b"#a03623")), + "sage" => Some(Rgba8::from_hex(b"#87ae73")), + "grey green" => Some(Rgba8::from_hex(b"#789b73")), + "white" => Some(Rgba8::from_hex(b"#ffffff")), + "robin's egg blue" => Some(Rgba8::from_hex(b"#98eff9")), + "moss green" => Some(Rgba8::from_hex(b"#658b38")), + "steel blue" => Some(Rgba8::from_hex(b"#5a7d9a")), + "eggplant" => Some(Rgba8::from_hex(b"#380835")), + "light yellow" => Some(Rgba8::from_hex(b"#fffe7a")), + "leaf green" => Some(Rgba8::from_hex(b"#5ca904")), + "light grey" => Some(Rgba8::from_hex(b"#d8dcd6")), + "puke" => Some(Rgba8::from_hex(b"#a5a502")), + "pinkish purple" => Some(Rgba8::from_hex(b"#d648d7")), + "sea blue" => Some(Rgba8::from_hex(b"#047495")), + "pale purple" => Some(Rgba8::from_hex(b"#b790d4")), + "slate blue" => Some(Rgba8::from_hex(b"#5b7c99")), + "blue grey" => Some(Rgba8::from_hex(b"#607c8e")), + "hunter green" => Some(Rgba8::from_hex(b"#0b4008")), + "fuchsia" => Some(Rgba8::from_hex(b"#ed0dd9")), + "crimson" => Some(Rgba8::from_hex(b"#8c000f")), + "pale yellow" => Some(Rgba8::from_hex(b"#ffff84")), + "ochre" => Some(Rgba8::from_hex(b"#bf9005")), + "mustard yellow" => Some(Rgba8::from_hex(b"#d2bd0a")), + "light red" => Some(Rgba8::from_hex(b"#ff474c")), + "cerulean" => Some(Rgba8::from_hex(b"#0485d1")), + "pale pink" => Some(Rgba8::from_hex(b"#ffcfdc")), + "deep blue" => Some(Rgba8::from_hex(b"#040273")), + "rust" => Some(Rgba8::from_hex(b"#a83c09")), + "light teal" => Some(Rgba8::from_hex(b"#90e4c1")), + "slate" => Some(Rgba8::from_hex(b"#516572")), + "goldenrod" => Some(Rgba8::from_hex(b"#fac205")), + "dark yellow" => Some(Rgba8::from_hex(b"#d5b60a")), + "dark grey" => Some(Rgba8::from_hex(b"#363737")), + "army green" => Some(Rgba8::from_hex(b"#4b5d16")), + "grey blue" => Some(Rgba8::from_hex(b"#6b8ba4")), + "seafoam" => Some(Rgba8::from_hex(b"#80f9ad")), + "puce" => Some(Rgba8::from_hex(b"#a57e52")), + "spring green" => Some(Rgba8::from_hex(b"#a9f971")), + "dark orange" => Some(Rgba8::from_hex(b"#c65102")), + "sand" => Some(Rgba8::from_hex(b"#e2ca76")), + "pastel green" => Some(Rgba8::from_hex(b"#b0ff9d")), + "mint" => Some(Rgba8::from_hex(b"#9ffeb0")), + "light orange" => Some(Rgba8::from_hex(b"#fdaa48")), + "bright pink" => Some(Rgba8::from_hex(b"#fe01b1")), + "chartreuse" => Some(Rgba8::from_hex(b"#c1f80a")), + "deep purple" => Some(Rgba8::from_hex(b"#36013f")), + "dark brown" => Some(Rgba8::from_hex(b"#341c02")), + "taupe" => Some(Rgba8::from_hex(b"#b9a281")), + "pea green" => Some(Rgba8::from_hex(b"#8eab12")), + "puke green" => Some(Rgba8::from_hex(b"#9aae07")), + "kelly green" => Some(Rgba8::from_hex(b"#02ab2e")), + "seafoam green" => Some(Rgba8::from_hex(b"#7af9ab")), + "blue green" => Some(Rgba8::from_hex(b"#137e6d")), + "khaki" => Some(Rgba8::from_hex(b"#aaa662")), + "burgundy" => Some(Rgba8::from_hex(b"#610023")), + "dark teal" => Some(Rgba8::from_hex(b"#014d4e")), + "brick red" => Some(Rgba8::from_hex(b"#8f1402")), + "royal purple" => Some(Rgba8::from_hex(b"#4b006e")), + "plum" => Some(Rgba8::from_hex(b"#580f41")), + "mint green" => Some(Rgba8::from_hex(b"#8fff9f")), + "gold" => Some(Rgba8::from_hex(b"#dbb40c")), + "baby blue" => Some(Rgba8::from_hex(b"#a2cffe")), + "yellow green" => Some(Rgba8::from_hex(b"#c0fb2d")), + "bright purple" => Some(Rgba8::from_hex(b"#be03fd")), + "dark red" => Some(Rgba8::from_hex(b"#840000")), + "pale blue" => Some(Rgba8::from_hex(b"#d0fefe")), + "grass green" => Some(Rgba8::from_hex(b"#3f9b0b")), + "navy" => Some(Rgba8::from_hex(b"#01153e")), + "aquamarine" => Some(Rgba8::from_hex(b"#04d8b2")), + "burnt orange" => Some(Rgba8::from_hex(b"#c04e01")), + "neon green" => Some(Rgba8::from_hex(b"#0cff0c")), + "bright blue" => Some(Rgba8::from_hex(b"#0165fc")), + "rose" => Some(Rgba8::from_hex(b"#cf6275")), + "light pink" => Some(Rgba8::from_hex(b"#ffd1df")), + "mustard" => Some(Rgba8::from_hex(b"#ceb301")), + "indigo" => Some(Rgba8::from_hex(b"#380282")), + "lime" => Some(Rgba8::from_hex(b"#aaff32")), + "sea green" => Some(Rgba8::from_hex(b"#53fca1")), + "periwinkle" => Some(Rgba8::from_hex(b"#8e82fe")), + "dark pink" => Some(Rgba8::from_hex(b"#cb416b")), + "olive green" => Some(Rgba8::from_hex(b"#677a04")), + "peach" => Some(Rgba8::from_hex(b"#ffb07c")), + "pale green" => Some(Rgba8::from_hex(b"#c7fdb5")), + "light brown" => Some(Rgba8::from_hex(b"#ad8150")), + "hot pink" => Some(Rgba8::from_hex(b"#ff028d")), + "black" => Some(Rgba8::from_hex(b"#000000")), + "lilac" => Some(Rgba8::from_hex(b"#cea2fd")), + "navy blue" => Some(Rgba8::from_hex(b"#001146")), + "royal blue" => Some(Rgba8::from_hex(b"#0504aa")), + "beige" => Some(Rgba8::from_hex(b"#e6daa6")), + "salmon" => Some(Rgba8::from_hex(b"#ff796c")), + "olive" => Some(Rgba8::from_hex(b"#6e750e")), + "maroon" => Some(Rgba8::from_hex(b"#650021")), + "bright green" => Some(Rgba8::from_hex(b"#01ff07")), + "dark purple" => Some(Rgba8::from_hex(b"#35063e")), + "mauve" => Some(Rgba8::from_hex(b"#ae7181")), + "forest green" => Some(Rgba8::from_hex(b"#06470c")), + "aqua" => Some(Rgba8::from_hex(b"#13eac9")), + "cyan" => Some(Rgba8::from_hex(b"#00ffff")), + "tan" => Some(Rgba8::from_hex(b"#d1b26f")), + "dark blue" => Some(Rgba8::from_hex(b"#00035b")), + "lavender" => Some(Rgba8::from_hex(b"#c79fef")), + "turquoise" => Some(Rgba8::from_hex(b"#06c2ac")), + "dark green" => Some(Rgba8::from_hex(b"#033500")), + "violet" => Some(Rgba8::from_hex(b"#9a0eea")), + "light purple" => Some(Rgba8::from_hex(b"#bf77f6")), + "lime green" => Some(Rgba8::from_hex(b"#89fe05")), + "grey" => Some(Rgba8::from_hex(b"#929591")), + "sky blue" => Some(Rgba8::from_hex(b"#75bbfd")), + "yellow" => Some(Rgba8::from_hex(b"#ffff14")), + "magenta" => Some(Rgba8::from_hex(b"#c20078")), + "light green" => Some(Rgba8::from_hex(b"#96f97b")), + "orange" => Some(Rgba8::from_hex(b"#f97306")), + "teal" => Some(Rgba8::from_hex(b"#029386")), + "light blue" => Some(Rgba8::from_hex(b"#95d0fc")), + "red" => Some(Rgba8::from_hex(b"#e50000")), + "brown" => Some(Rgba8::from_hex(b"#653700")), + "pink" => Some(Rgba8::from_hex(b"#ff81c0")), + "blue" => Some(Rgba8::from_hex(b"#0343df")), + "green" => Some(Rgba8::from_hex(b"#15b01a")), + "purple" => Some(Rgba8::from_hex(b"#7e1e9c")), _ => None, } } diff --git a/base/src/lib.rs b/base/src/lib.rs index df77546..cafcec1 100644 --- a/base/src/lib.rs +++ b/base/src/lib.rs @@ -1,4 +1,4 @@ pub mod color; -pub use color::{Color, ColorU8, ResolveColor}; +pub use color::{Color, ResolveColor, Rgb8, Rgba8}; pub mod geom; diff --git a/examples/stars.csv b/examples/stars.csv new file mode 100644 index 0000000..9df7eb1 --- /dev/null +++ b/examples/stars.csv @@ -0,0 +1,46 @@ +Name,Mass (M☉),Absolute Magnitude,Apparent Magnitude,Distance (LY),RA (h:m:s),DEC (d:m:s),Surface Temperature (K),Spectral Type +Sirius A,2.02,1.42,-1.46,8.58,06:45:08.917,-16:42:58.01,9940,A1V +Canopus,8.5,-5.53,-0.72,310,06:23:57.109,-52:41:44.38,7200,F0Ib-II +Rigil Kentaurus,1.10,4.38,-0.27,4.37,14:39:36.494,-60:50:02.31,5790,G2V +Arcturus,1.08,-0.30,-0.05,36.7,14:15:39.672,+19:10:56.67,4290,K0III +Vega,2.15,0.58,0.03,25.05,18:36:56.336,+38:47:01.28,7600,A0V +Capella,5.04,-0.48,0.08,42.9,05:16:41.359,+45:59:52.77,4970,G5IIIe+G0III +Rigel,21.0,-8.10,0.13,863,05:14:32.272,-08:12:05.91,12100,B8Iab +Procyon,1.4,2.65,0.34,11.40,07:39:18.119,+05:13:29.99,6530,F5IV-V +Achernar,7.5,-2.77,0.46,114,01:37:42.845,-57:14:12.31,7700,B6Vep +Betelgeuse,19.0,-5.85,0.50,642.5,05:55:10.305,+07:24:25.43,3500,M1-2Ia +Hadar,14.0,-5.41,0.61,390,14:03:49.409,-60:22:22.95,22000,B1V +Altair,1.79,2.21,0.77,16.73,19:50:46.998,+08:52:05.96,7550,A7V +Acrux,16.0,-4.82,0.77,321,12:26:35.534,-63:05:56.73,28000,B0.5IV +Aldebaran,1.7,-0.63,0.85,65.3,04:35:55.239,+16:30:33.49,3910,K5III +Spica,10.25,-3.55,0.98,250,13:25:11.579,-11:09:40.75,22400,B1V +Antares,12.4,-5.28,1.06,550,16:29:24.459,-26:25:55.21,3400,M0.5Iab-Ib +Pollux,1.86,1.09,1.14,33.78,07:45:18.949,+28:01:34.32,4666,K0IIIb +Fomalhaut,1.92,1.74,1.16,25.13,22:57:39.045,-29:37:20.08,8590,A3V +Deneb,19.0,-8.38,1.25,2615,20:41:25.916,+45:16:49.22,8525,A2Iae +Beta Crucis,14.0,-3.92,1.25,280,12:47:43.120,-59:41:19.58,27000,B0.5IV +Regulus,3.8,-0.52,1.35,79.3,10:08:22.311,+11:58:01.98,10300,B7V +Adhara,4.5,-1.95,1.50,403,06:58:37.548,-28:58:19.51,22000,B2II +Castor,3.85,0.59,1.58,51.5,07:34:35.872,+31:53:17.82,10200,A1V+A2V +Gacrux,3.0,-0.56,1.59,88,12:31:09.215,-57:06:47.48,5800,M3.5III +Shaula,10.0,-4.54,1.62,360,17:33:36.520,-37:06:13.84,25000,B1.5V +Bellatrix,8.6,-2.72,1.64,244,05:25:07.863,+06:20:58.93,21500,B2III +Elnath,4.5,-1.65,1.65,131,05:26:17.420,+28:36:26.84,13400,B7III +Miaplacidus,3.6,-0.86,1.65,100,09:13:11.779,-69:43:02.76,12000,B1.5III +Alnilam,40.0,-6.40,1.69,1300,05:36:12.830,-01:12:06.91,25000,B0Iab +Alnitak,20.0,-5.25,1.74,800,05:40:45.520,-01:56:34.26,28000,O9.5Iab +Alioth,2.9,0.20,1.75,82.6,12:54:01.748,+55:57:35.36,9000,A1p +Dubhe,5.95,-0.80,1.79,123,11:03:38.270,+61:45:03.72,4500,K0III+F0V +Merak,2.7,0.40,2.34,79.4,11:01:50.479,+56:22:56.85,9200,A1V +Phecda,2.9,0.08,2.43,83.2,11:53:49.845,+53:41:41.12,9300,A0Ve +Mizar A,2.2,-0.20,2.23,78.2,13:23:55.543,+54:55:31.38,9000,A2V +Alcor,1.8,1.00,4.01,82.8,13:25:00.000,+54:59:00.00,8000,A5V +Polaris,5.4,-3.64,1.97,433,02:31:48.704,+89:15:50.79,5700,F7Ib-IIv +Kaus Australis,15.0,-3.41,1.85,145,18:24:10.286,-34:23:04.60,22000,B9V +Avior,3.0,-2.26,1.86,630,08:22:30.815,-59:30:33.40,15000,K3III +Menkalinan,2.3,-0.60,1.90,82,02:58:01.582,+03:50:18.46,9000,A2IV +Alkaid,6.0,-1.45,1.85,101,13:47:32.363,+49:18:47.76,15000,B3V +Sargas,7.0,-1.50,1.87,270,17:37:19.137,-42:59:52.34,7500,F1II +Atria,5.0,-2.80,1.92,390,16:58:05.854,-69:02:22.40,4500,K2IIb +Peacock,6.0,-2.00,1.94,180,20:25:38.865,-56:44:06.41,18000,B2IV +Alshain,1.2,2.20,4.22,45,19:55:33.472,+06:24:22.78,5000,K0IV \ No newline at end of file diff --git a/examples/stars.rs b/examples/stars.rs new file mode 100644 index 0000000..06683d8 --- /dev/null +++ b/examples/stars.rs @@ -0,0 +1,92 @@ +use std::{fs, path}; + +use plotive::data::Source; +use plotive::des::cmap; +use plotive::{data, des, style}; + +mod common; + +fn stars_csv_path() -> path::PathBuf { + let csv = path::Path::new(file!()); + let parent = csv.parent().unwrap(); + parent.join("stars.csv") +} + +/// Convert a right ascension string in the format "h:m:s" to degrees. +fn ra_to_deg(ra: &str) -> f64 { + let parts: Vec<&str> = ra.split(':').collect(); + let h: f64 = parts[0].parse().unwrap(); + let m: f64 = parts[1].parse().unwrap(); + let s: f64 = parts[2].parse().unwrap(); + (h + m / 60.0 + s / 3600.0) * 15.0 +} + +/// Convert a declination string in the format "d:m:s" to degrees. +fn dec_to_deg(dec: &str) -> f64 { + let parts: Vec<&str> = dec.split(':').collect(); + let d: f64 = parts[0].parse().unwrap(); + let m: f64 = parts[1].parse().unwrap(); + let s: f64 = parts[2].parse().unwrap(); + let sign = if d < 0.0 { -1.0 } else { 1.0 }; + sign * (d.abs() + m / 60.0 + s / 3600.0) +} + +fn main() { + let csv_path = stars_csv_path(); + let csv_data = fs::read_to_string(&csv_path).unwrap(); + let table = data::csv::parse_str(&csv_data, Default::default()).unwrap(); + + const RA_COL: &str = "RA (h:m:s)"; + const DEC_COL: &str = "DEC (d:m:s)"; + const TEMP_COL: &str = "Surface Temperature (K)"; + const APP_MAG: &str = "Apparent Magnitude"; + + let mag_col = table.column(APP_MAG).unwrap().f64().unwrap(); + let temp_col = table.column(TEMP_COL).unwrap(); + + /// Map the apparent magnitude to a size factor for the star markers, + const MIN_SIZE: f64 = 0.2; + const MAX_SIZE: f64 = 20.0; + let mag_bounds = mag_col.minmax().unwrap(); + let mag_sizes = mag_col + .f64_iter() + .map(|mag| { + let mag = mag.unwrap(); + let norm = (mag - mag_bounds.0) / (mag_bounds.1 - mag_bounds.0); + MAX_SIZE - norm * (MAX_SIZE - MIN_SIZE) + }) + .collect::>(); + + // Map the right ascension and declination to x and y coordinates in degrees + let ra_col = table.column(RA_COL).unwrap().str().unwrap(); + let dec_col = table.column(DEC_COL).unwrap().str().unwrap(); + let x_coords = ra_col + .str_iter() + .map(|ra| ra_to_deg(ra.unwrap())) + .collect::>(); + let y_coords = dec_col + .str_iter() + .map(|dec| dec_to_deg(dec.unwrap())) + .collect::>(); + + let data_source = data::NamedColumns::new() + .with_column("x", &x_coords) + .with_column("y", &y_coords) + .with_column("mag_sizes", &mag_sizes) + .with_column("temp", temp_col); + + let fig = des::Figure::new( + des::Plot::new(vec![ + des::series::Scatter::new("x".into(), "y".into()) + .with_size_data("mag_sizes".into()) + .with_color_data("temp".into(), cmap::stellar()) + .with_marker(style::series::Marker::default().with_fill_opacity(0.85)) + .into(), + ]) + .with_colorbar(des::ColorBar::default().with_title("Surface Temperature [K]".into())) + .into(), + ) + .with_title("45 bright stars".into()); + + common::save_figure(&fig, &data_source, Default::default(), "stars"); +} diff --git a/generate_gallery.sh b/generate_gallery.sh index 69bc420..d71d817 100755 --- a/generate_gallery.sh +++ b/generate_gallery.sh @@ -14,4 +14,4 @@ cargo run --example subplots --features utils -- png=gallery/subplots.png cargo run --example bitcoin --features data-csv,time -- png=gallery/bitcoin.png cargo run --example iris --features data-csv -- png=gallery/iris.png - +cargo run --example stars --features data-csv -- png=gallery/stars.png dark diff --git a/iced/src/figure.rs b/iced/src/figure.rs index 0675250..4b10a20 100644 --- a/iced/src/figure.rs +++ b/iced/src/figure.rs @@ -352,9 +352,9 @@ pub trait Catalog: Sized { } #[inline] -fn from_iced_color(color: iced::Color) -> plotive::ColorU8 { +fn from_iced_color(color: iced::Color) -> plotive::Rgba8 { let [r, g, b, a] = color.into_rgba8(); - plotive::ColorU8::from_rgba(r, g, b, a) + plotive::Rgba8::new(r, g, b, a) } /// Map an `iced::Theme` to an plotive theme. diff --git a/iced/src/lib.rs b/iced/src/lib.rs index 4111c0e..426ccb4 100644 --- a/iced/src/lib.rs +++ b/iced/src/lib.rs @@ -10,15 +10,10 @@ pub trait ToIced { fn to_iced(&self) -> Self::IcedType; } -impl ToIced for plotive::ColorU8 { +impl ToIced for plotive::Rgba8 { type IcedType = iced::Color; fn to_iced(&self) -> Self::IcedType { - iced::Color::from_rgba8( - self.red(), - self.green(), - self.blue(), - self.alpha() as f32 / 255.0, - ) + iced::Color::from_rgba8(self.r(), self.g(), self.b(), self.a() as f32 / 255.0) } } diff --git a/iced/src/surface.rs b/iced/src/surface.rs index a2edd09..203b8a9 100644 --- a/iced/src/surface.rs +++ b/iced/src/surface.rs @@ -49,7 +49,7 @@ where fn fill(&mut self, fill: render::Paint) { let color = match fill { render::Paint::Solid(c) => { - iced::Color::from_rgba8(c.red(), c.green(), c.blue(), c.alpha() as f32 / 255.0) + iced::Color::from_rgba8(c.r(), c.g(), c.b(), c.a() as f32 / 255.0) } }; let bounds = self.clip_bounds(); @@ -69,8 +69,9 @@ where } if let Some(stroke) = path.stroke.as_ref() { + let tr_scale = (transform.sx.abs() + transform.sy.abs()) / 2.0; let mut pattern = Vec::new(); - let iced_stroke = to_iced_stroke(stroke, &mut pattern, self.scale); + let iced_stroke = to_iced_stroke(stroke, &mut pattern, self.scale * tr_scale); self.frames .last_mut() .unwrap() @@ -100,9 +101,14 @@ where } #[inline] -fn to_iced_color(color: plotive::ColorU8) -> iced::Color { - let [r, g, b, a] = color.rgba_f32(); - iced::Color::from_rgba(r, g, b, a) +fn to_iced_color(color: plotive::Rgba8) -> iced::Color { + let [r, g, b, a] = color.arr(); + iced::Color::from_rgba( + r as f32 / 255.0, + g as f32 / 255.0, + b as f32 / 255.0, + a as f32 / 255.0, + ) } #[inline] diff --git a/pxl/src/lib.rs b/pxl/src/lib.rs index c4d714a..41ff497 100644 --- a/pxl/src/lib.rs +++ b/pxl/src/lib.rs @@ -1,7 +1,7 @@ use std::path::Path; use std::{fmt, io}; -use plotive::{ColorU8, Style, drawing, geom, render}; +use plotive::{Rgba8, Style, drawing, geom, render}; use tiny_skia::{self, FillRule, Mask, Pixmap, PixmapMut}; #[derive(Debug)] @@ -336,8 +336,8 @@ impl render::Surface for PxlSurfaceRef<'_> { } } -fn ts_color(color: ColorU8) -> tiny_skia::Color { - tiny_skia::Color::from_rgba8(color.red(), color.green(), color.blue(), color.alpha()) +fn ts_color(color: Rgba8) -> tiny_skia::Color { + tiny_skia::Color::from_rgba8(color.r(), color.g(), color.b(), color.a()) } fn ts_fill(fill: render::Paint, paint: &mut tiny_skia::Paint) { diff --git a/run_all_examples.sh b/run_all_examples.sh index 5aa1dde..3773b98 100755 --- a/run_all_examples.sh +++ b/run_all_examples.sh @@ -37,6 +37,7 @@ cargo run --example subplots --features utils -- ${POS_ARGS[@]} cargo run --example bitcoin --features data-csv,time -- ${POS_ARGS[@]} cargo run --example iris --features data-csv -- ${POS_ARGS[@]} +cargo run --example stars --features data-csv -- ${POS_ARGS[@]} cargo run --example bode_rlc_dsl --features dsl,noto-serif-italic,utils -- ${POS_ARGS[@]} diff --git a/src/data.rs b/src/data.rs index ac426ed..10aa13d 100644 --- a/src/data.rs +++ b/src/data.rs @@ -1363,6 +1363,12 @@ impl NamedOwnedColumns { self.names.push(name.to_string()); self.columns.push(col); } + + /// Add a column with the given name, returning self for chaining + pub fn with_column(mut self, name: &str, col: Box) -> Self { + self.add_column(name, col); + self + } } impl Source for NamedOwnedColumns { @@ -1412,6 +1418,12 @@ impl<'a> NamedColumns<'a> { self.names.push(name.to_string()); self.columns.push(col); } + + /// Add a column with the given name, returning self for chaining + pub fn with_column(mut self, name: &str, col: &'a dyn Column) -> Self { + self.add_column(name, col); + self + } } impl<'a> Source for NamedColumns<'a> { diff --git a/src/des.rs b/src/des.rs index 9751f60..10fda1f 100644 --- a/src/des.rs +++ b/src/des.rs @@ -5,6 +5,8 @@ */ pub mod annot; pub mod axis; +pub mod cmap; +pub mod colorbar; pub mod figure; pub mod legend; pub mod plot; @@ -12,6 +14,7 @@ pub mod series; pub use annot::Annotation; pub use axis::Axis; +pub use colorbar::{ColorBar, ColorBarPos}; pub use figure::{FigLegend, Figure}; pub use legend::Legend; pub use plot::{Plot, PlotLegend, Subplots}; diff --git a/src/des/axis.rs b/src/des/axis.rs index a2a7c98..27f5d5c 100644 --- a/src/des/axis.rs +++ b/src/des/axis.rs @@ -639,7 +639,7 @@ pub mod ticks { width: 1.0, color: theme::Col::Grid.into(), pattern: style::LinePattern::Solid, - opacity: None, + opacity: Some(0.6), }) } } @@ -736,7 +736,7 @@ pub mod ticks { width: 0.5, color: theme::Col::Grid.into(), pattern: style::LinePattern::Dash(Dash::default()), - opacity: None, + opacity: Some(0.6), }) } } diff --git a/src/des/cmap.rs b/src/des/cmap.rs new file mode 100644 index 0000000..e1fc36a --- /dev/null +++ b/src/des/cmap.rs @@ -0,0 +1,171 @@ +//! A module for defining color maps that can be used in the design of plots to map scalar values to colors. + +use crate::color::Rgb8; + +/// Describes how to interpolate between colors in a color map, either in linear RGB or perceptual color space. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub enum LerpMethod { + /// Interpolate colors in the linear RGB color space. + LinearRgb, + /// Interpolate colors in a perceptual color space (OkLab). + Perceptual, + /// Interpolate colors in the XYZ color space. + Xyz, +} + +/// A color map that can be converted to a `MapColor` implementation at draw time. +#[derive(Debug, Clone)] +pub struct LerpColorMap { + method: LerpMethod, + start: Rgb8, + end: Rgb8, + stops: Vec<(f32, Rgb8)>, + data_range: Option<(f64, f64)>, +} + +impl LerpColorMap { + /// Creates a new `LerpColorMap` with the specified interpolation method, start and end colors, and optional stops. + pub fn new(method: LerpMethod, start: Rgb8, end: Rgb8) -> Self { + Self { + method, + start, + end, + data_range: None, + stops: Vec::new(), + } + } + /// Adds a color stop at the specified position (between 0.0 and 1.0) with the given color. + pub fn with_stop(mut self, (position, color): (f32, Rgb8)) -> Self { + assert!( + position > 0.0 && position < 1.0, + "Color stop position must be in range" + ); + self.stops.push((position, color)); + self.stops.sort_by(|a, b| a.0.partial_cmp(&b.0).unwrap()); + self + } + + /// Set the range of scalar values that this color map maps to, as (min, max). + pub fn with_data_range(mut self, range: (f64, f64)) -> Self { + assert!( + range.0.is_finite() && range.1.is_finite(), + "Color map data range must be finite" + ); + assert!( + range.0 < range.1, + "Color map data range must have min < max" + ); + self.data_range = Some(range); + self + } + + /// Get the interpolation method used by this color map. + pub fn method(&self) -> LerpMethod { + self.method + } + + /// Get the start color of this color map. + pub fn start(&self) -> Rgb8 { + self.start + } + + /// Get the end color of this color map. + pub fn end(&self) -> Rgb8 { + self.end + } + + /// Get the color stops of this color map, as a slice of (position, color) tuples. + pub fn stops(&self) -> &[(f32, Rgb8)] { + &self.stops + } + + /// Get the range of scalar values that this color map maps to, if it has one. + /// If None, the color map is assumed to map the range of data values in the plot. + pub fn data_range(&self) -> Option<(f64, f64)> { + self.data_range + } +} + +impl From<(LerpMethod, &[Rgb8])> for LerpColorMap { + fn from((method, stops): (LerpMethod, &[Rgb8])) -> Self { + assert!(stops.len() >= 2, "At least two colors must be provided"); + let start = stops[0]; + let end = stops[stops.len() - 1]; + + let mut cmap = Self::new(method, start, end); + for (i, stop) in stops.iter().enumerate().skip(1).take(stops.len() - 2) { + let position = i as f32 / (stops.len() - 1) as f32; + cmap = cmap.with_stop((position, *stop)); + } + cmap + } +} + +/// A colormap that maps kelvin temperatures to black body color, with a range from 1000K to 15000K. +/// Based on the approximation from Tanner Helland: +/// https://tannerhelland.com/2012/09/18/convert-temperature-rgb-algorithm-code.html +pub fn stellar() -> LerpColorMap { + const MIN_TEMP: f64 = 1000.0; + const MAX_TEMP: f64 = 15000.0; + + fn stop_for_temp(temp: f64) -> (f32, Rgb8) { + let t = temp / 100.0; + let r = if t <= 66.0 { + 255.0 + } else { + 329.698727446 * (t - 60.0).powf(-0.1332047592) + }; + + let g = if t <= 66.0 { + 99.4708025861 * t.ln() - 161.1195681661 + } else { + 288.1221695283 * (t - 60.0).powf(-0.0755148492) + }; + let b = if t >= 66.0 { + 255.0 + } else if t <= 19.0 { + 0.0 + } else { + 138.5177312231 * (t - 10.0).ln() - 305.0447927307 + }; + + let stop_pos = ((temp - MIN_TEMP) / (MAX_TEMP - MIN_TEMP)) as f32; + + let r = r.clamp(0.0, 255.0) as u8; + let g = g.clamp(0.0, 255.0) as u8; + let b = b.clamp(0.0, 255.0) as u8; + let color = Rgb8::new(r, g, b); + + (stop_pos, color) + } + + LerpColorMap::new( + LerpMethod::Xyz, + stop_for_temp(MIN_TEMP).1, + stop_for_temp(MAX_TEMP).1, + ) + .with_stop(stop_for_temp(2000.0)) + .with_stop(stop_for_temp(3000.0)) + .with_stop(stop_for_temp(4000.0)) + .with_stop(stop_for_temp(5000.0)) + .with_stop(stop_for_temp(6000.0)) + .with_stop(stop_for_temp(6500.0)) + .with_stop(stop_for_temp(7000.0)) + .with_stop(stop_for_temp(8000.0)) + .with_stop(stop_for_temp(9000.0)) + .with_stop(stop_for_temp(10000.0)) + .with_stop(stop_for_temp(12000.0)) + .with_data_range((MIN_TEMP, MAX_TEMP)) +} + +/// The famous "viridis" color map from matplotlib +pub fn viridis() -> LerpColorMap { + const STOPS: &[Rgb8] = &[ + Rgb8::from_hex(b"#440154"), + Rgb8::from_hex(b"#3b518a"), + Rgb8::from_hex(b"#208f8c"), + Rgb8::from_hex(b"#5bc862"), + Rgb8::from_hex(b"#fde724"), + ]; + (LerpMethod::Perceptual, STOPS).into() +} diff --git a/src/des/colorbar.rs b/src/des/colorbar.rs new file mode 100644 index 0000000..95c9b44 --- /dev/null +++ b/src/des/colorbar.rs @@ -0,0 +1,151 @@ +//! Color bar configuration +use crate::style::{defaults, theme}; +use crate::text; + +super::define_rich_text_structs!(Title, TitleProps, TitleOptProps); + +impl Default for TitleProps { + fn default() -> Self { + TitleProps::new(defaults::COLORBAR_TITLE_FONT_SIZE) + } +} + +/// Position of a color bar relatively to the plot +#[derive(Debug, Default, Clone, Copy)] +pub enum ColorBarPos { + /// Position the color bar above the plot area + Top, + /// Position the color bar to the right of the plot area (default) + #[default] + Right, + /// Position the color bar below the plot area + Bottom, + /// Position the color bar to the left of the plot area + Left, +} + +/// Font configuration for color bar ticks +#[derive(Debug, Clone)] +pub struct TicksFont { + /// The font size in figure units + pub size: f32, + /// The font + pub font: text::Font, + /// The font color + pub color: theme::Color, +} + +impl Default for TicksFont { + fn default() -> Self { + Self { + size: defaults::COLORBAR_TICKS_FONT_SIZE, + font: text::Font::default(), + color: theme::Col::Foreground.into(), + } + } +} + +/// ColorBar configuration for a plot +#[derive(Debug, Clone)] +pub struct ColorBar { + pos: ColorBarPos, + width: f32, + title: Option, + ticks_font: TicksFont, + border: Option<theme::Stroke>, + margin: f32, +} + +impl Default for ColorBar { + fn default() -> Self { + Self { + pos: ColorBarPos::default(), + width: defaults::COLORBAR_WIDTH, + title: None, + ticks_font: TicksFont::default(), + border: Some(theme::Stroke { + color: theme::Col::Foreground.into(), + width: 1.0, + pattern: Default::default(), + opacity: None, + }), + margin: defaults::COLORBAR_MARGIN, + } + } +} + +impl ColorBar { + /// Create a new color bar with the specified position + pub fn new(pos: ColorBarPos) -> Self { + Self { + pos, + ..Default::default() + } + } + + /// Set the width of the color bar and return self for chaining + pub fn with_width(mut self, width: f32) -> Self { + self.width = width; + self + } + + /// Set the title text and return self for chaining + pub fn with_title(mut self, title: Title) -> Self { + self.title = Some(title); + self + } + + /// Set the ticks font properties and return self for chaining + pub fn with_ticks_font(mut self, ticks_font: TicksFont) -> Self { + self.ticks_font = ticks_font; + self + } + + /// Set the border properties and return self for chaining + pub fn with_border(mut self, border: Option<theme::Stroke>) -> Self { + self.border = border; + self + } + + /// Set the margin between the color bar and the plot area and return self for chaining + pub fn with_margin(mut self, margin: f32) -> Self { + self.margin = margin; + self + } + + /// Get the position of the color bar + pub fn pos(&self) -> ColorBarPos { + self.pos + } + + /// Get the width of the color bar + pub fn width(&self) -> f32 { + self.width + } + + /// Get the title text of the color bar, if it has one + pub fn title(&self) -> Option<&Title> { + self.title.as_ref() + } + + /// Get the ticks font properties + pub fn ticks_font(&self) -> &TicksFont { + &self.ticks_font + } + + /// Get the border properties + pub fn border(&self) -> Option<&theme::Stroke> { + self.border.as_ref() + } + + /// Get the margin between the color bar and the plot area + pub fn margin(&self) -> f32 { + self.margin + } +} + +impl From<ColorBarPos> for ColorBar { + fn from(pos: ColorBarPos) -> Self { + Self::new(pos) + } +} diff --git a/src/des/legend.rs b/src/des/legend.rs index 915e455..5cf9f51 100644 --- a/src/des/legend.rs +++ b/src/des/legend.rs @@ -43,16 +43,17 @@ pub struct Legend<Pos> { impl<Pos: Default> Default for Legend<Pos> { /// Create a default legend configuration - /// - Fill color: theme::Col::LegendFill + /// - Fill color: theme::Col::LegendFill, opacity 0.5 /// - Border: theme::Col::LegendBorder, 1.0 /// - Font: default EntryFont /// - Default column layout (depdend on the position and number and width of entries) /// - Default padding and spacing fn default() -> Self { + let fill: theme::Fill = theme::Col::LegendFill.into(); Self { pos: Pos::default(), font: EntryFont::default(), - fill: Some(theme::Col::LegendFill.into()), + fill: Some(fill.with_opacity(0.5)), border: Some(theme::Col::LegendBorder.into()), columns: None, padding: defaults::LEGEND_PADDING.into(), diff --git a/src/des/plot.rs b/src/des/plot.rs index 068be0c..289280f 100644 --- a/src/des/plot.rs +++ b/src/des/plot.rs @@ -1,6 +1,6 @@ //! Plot design structures -use crate::des::{Annotation, Axis, Legend, PlotIdx, Series}; +use crate::des::{Annotation, Axis, ColorBar, Legend, PlotIdx, Series}; use crate::style::{defaults, theme}; /// Arrow border style for the plot area @@ -154,6 +154,7 @@ pub struct Plot { border: Option<Border>, insets: Option<Insets>, legend: Option<PlotLegend>, + colorbar: Option<ColorBar>, annotations: Vec<Annotation>, } @@ -171,6 +172,7 @@ impl Plot { border: Some(Border::default()), insets: Some(Insets::default()), legend: None, + colorbar: None, annotations: vec![], } } @@ -233,6 +235,14 @@ impl Plot { } } + /// Set the color bar of the plot and return self for chaining + pub fn with_colorbar(self, colorbar: ColorBar) -> Self { + Self { + colorbar: Some(colorbar), + ..self + } + } + /// Add an arbitrary [`Annotation`] to the plot and return self for chaining pub fn with_annotation(mut self, annotation: Annotation) -> Self { self.annotations.push(annotation); @@ -279,6 +289,11 @@ impl Plot { self.legend.as_ref() } + /// Get the color bar of the plot + pub fn colorbar(&self) -> Option<&ColorBar> { + self.colorbar.as_ref() + } + /// Get the annotations of the plot pub fn annotations(&self) -> &[Annotation] { &self.annotations diff --git a/src/des/series.rs b/src/des/series.rs index 6d84273..4fb17e5 100644 --- a/src/des/series.rs +++ b/src/des/series.rs @@ -1,6 +1,6 @@ //! Data series definitions for plots. use crate::data; -use crate::des::axis; +use crate::des::{axis, cmap}; use crate::style::{self, defaults}; #[cfg(feature = "time")] use crate::time; @@ -31,6 +31,18 @@ pub fn data_src_ref<S: Into<String>>(src: S) -> DataCol { DataCol::SrcRef(src.into()) } +impl From<String> for DataCol { + fn from(value: String) -> Self { + DataCol::SrcRef(value) + } +} + +impl From<&str> for DataCol { + fn from(value: &str) -> Self { + DataCol::SrcRef(value.to_string()) + } +} + /// Build a inline data column. /// Creates a [`DataCol::Inline`] variant from a vector of values. /// Use this to provide data directly in the series. @@ -313,10 +325,9 @@ impl Line { /// Useful for visualizing correlations, distributions, and discrete data points. /// /// Optional sizes data column can be used to specify the size of each marker, for bubble charts. -/// If provided, the size field of the marker is ignored and the size of each marker -/// is determined by the corresponding value in the sizes data column. -/// Just like marker size, the size data is interpreted as an area. -/// (diameter = sqrt(size data) for circle marker). +/// If provided, the marker size will be determined by the values in the sizes data column, scaled by the marker size in the style (e.g. `marker.size`). +/// Marker size is interpreted as an area, so the actual size of the marker will be proportional to the square root of the sizes data value +/// (e.g. for circle marker: diameter = sqrt(marker size * size column data)). /// The sizes data column must have the same length as the x and y data columns. #[derive(Debug, Clone)] pub struct Scatter { @@ -327,7 +338,8 @@ pub struct Scatter { x_axis: axis::Ref, y_axis: axis::Ref, marker: style::series::Marker, - sizes_data: Option<DataCol>, + size_data: Option<DataCol>, + color_data: Option<(DataCol, cmap::LerpColorMap)>, } impl Scatter { @@ -341,7 +353,8 @@ impl Scatter { x_axis: Default::default(), y_axis: Default::default(), marker: style::series::Marker::default(), - sizes_data: None, + size_data: None, + color_data: None, } } @@ -374,8 +387,14 @@ impl Scatter { } /// Set the sizes data column and return self for chaining - pub fn with_sizes(mut self, sizes_data: DataCol) -> Self { - self.sizes_data = Some(sizes_data); + pub fn with_size_data(mut self, size_data: DataCol) -> Self { + self.size_data = Some(size_data); + self + } + + /// Set the color data column and color map, and return self for chaining + pub fn with_color_data(mut self, color_data: DataCol, color_map: cmap::LerpColorMap) -> Self { + self.color_data = Some((color_data, color_map)); self } @@ -410,8 +429,13 @@ impl Scatter { } /// Get the sizes data column, if any - pub fn sizes_data(&self) -> Option<&DataCol> { - self.sizes_data.as_ref() + pub fn size_data(&self) -> Option<&DataCol> { + self.size_data.as_ref() + } + + /// Get the color data column and color map, if any + pub fn color_data(&self) -> Option<&(DataCol, cmap::LerpColorMap)> { + self.color_data.as_ref() } } diff --git a/src/drawing.rs b/src/drawing.rs index a41a8a3..2c5b422 100644 --- a/src/drawing.rs +++ b/src/drawing.rs @@ -12,6 +12,8 @@ use crate::{Style, data, des, geom, render, text}; mod annot; mod axis; +mod cmap; +mod colorbar; mod figure; mod hit_test; mod legend; @@ -149,6 +151,21 @@ impl Prepare for des::Figure { } } +fn get_column<'a, D>( + col: &'a des::series::DataCol, + data_source: &'a D, +) -> Result<&'a dyn data::Column, Error> +where + D: data::Source + ?Sized, +{ + match col { + des::series::DataCol::Inline(col) => Ok(col), + des::series::DataCol::SrcRef(name) => data_source + .column(name) + .ok_or_else(|| Error::MissingDataSrc(name.to_string())), + } +} + #[derive(Debug)] struct Ctx<'a, D: ?Sized> { data_source: &'a D, @@ -369,7 +386,7 @@ impl Categories { self.cats.get(idx).map(|c| c.0.as_str()) } - fn _contains(&self, cat: &str) -> bool { + fn contains(&self, cat: &str) -> bool { self.cats.iter().any(|c| c.0 == cat) } diff --git a/src/drawing/axis.rs b/src/drawing/axis.rs index c834f87..1d4aa37 100644 --- a/src/drawing/axis.rs +++ b/src/drawing/axis.rs @@ -463,7 +463,8 @@ where let mut major_locs = ticks::locate_num(major_ticks.locator(), nb, scale)?; major_locs.retain(|l| nb.contains(*l)); - let lbl_formatter = ticks::num_label_formatter(major_ticks, nb, scale); + let lbl_formatter = + ticks::num_label_formatter(major_ticks.locator(), major_ticks.formatter(), nb, scale); let mut ticks = Vec::new(); for loc in major_locs.into_iter() { let text = lbl_formatter.format_label(loc.into()); @@ -546,7 +547,7 @@ where let mut major_locs = ticks::locate_datetime(major_ticks.locator(), tb)?; major_locs.retain(|l| tb.contains(*l)); - let lbl_formatter = ticks::datetime_label_formatter(major_ticks, tb, scale)?; + let lbl_formatter = ticks::datetime_label_formatter(major_ticks.formatter(), tb, scale)?; let mut ticks = Vec::new(); for loc in major_locs.into_iter() { let text = lbl_formatter.format_label(loc.into()); diff --git a/src/drawing/axis/bounds.rs b/src/drawing/axis/bounds.rs index d2c440f..b8b45bb 100644 --- a/src/drawing/axis/bounds.rs +++ b/src/drawing/axis/bounds.rs @@ -1,3 +1,4 @@ +use crate::data; use crate::drawing::{Categories, Error}; #[cfg(feature = "time")] use crate::time::{DateTime, TimeDelta}; @@ -61,6 +62,16 @@ impl Bounds { )), } } + + pub fn contains(&self, point: data::SampleRef<'_>) -> bool { + match (self, point) { + (Bounds::Num(nb), data::SampleRef::Num(n)) => nb.contains(n), + (Bounds::Cat(c), data::SampleRef::Cat(s)) => c.contains(s), + #[cfg(feature = "time")] + (Bounds::Time(tb), data::SampleRef::Time(t)) => tb.contains(t), + _ => false, + } + } } /// Bounds of an axis, borrowing internal its data diff --git a/src/drawing/cmap.rs b/src/drawing/cmap.rs new file mode 100644 index 0000000..6856b83 --- /dev/null +++ b/src/drawing/cmap.rs @@ -0,0 +1,117 @@ +use std::sync::Arc; + +use crate::color::{Lerp, LinRgb, OkLab, Rgb8, Xyz}; +use crate::des::cmap::{LerpColorMap, LerpMethod}; +use crate::drawing::axis; + +/// A trait for mapping scalar values to colors, used for color scales in heatmaps and similar plots. +pub trait ColorMap { + /// Maps a value in the range [0, 1] to an RGBA color. + fn map_color(&self, value: f32) -> Rgb8; +} + +/// A trait for types that can be converted to a `ColorMap` implementation at draw time. +pub trait AsColorMap { + fn hash(&self) -> u64; + + fn data_range(&self) -> Option<axis::Bounds>; + + /// Convert this type to a `ColorMap` implementation that can be used for color mapping. + fn as_color_map(&self) -> Arc<dyn ColorMap>; +} + +impl AsColorMap for LerpColorMap { + /// Get a unique hash for this color map, used to avoid creating + /// multiple color bars for the same color map configuration. + fn hash(&self) -> u64 { + use std::hash::{DefaultHasher, Hash, Hasher}; + let mut hasher = DefaultHasher::new(); + self.method().hash(&mut hasher); + self.start().hash(&mut hasher); + self.end().hash(&mut hasher); + for stop in self.stops() { + // reinterpret the f32 position as u32 for hashing + // it is checked that the position can't be invalid or -0.0 + let pos_bits = stop.0.to_bits(); + pos_bits.hash(&mut hasher); + stop.1.hash(&mut hasher); + } + if let Some(range) = self.data_range() { + range.0.to_bits().hash(&mut hasher); + range.1.to_bits().hash(&mut hasher); + } + hasher.finish() + } + + fn data_range(&self) -> Option<axis::Bounds> { + self.data_range() + .map(|rng| axis::NumBounds::from(rng).into()) + } + + fn as_color_map(&self) -> Arc<dyn ColorMap> { + let start = self.start(); + let end = self.end(); + let stops = self.stops().iter().copied(); + match self.method() { + LerpMethod::LinearRgb => Arc::new(LinearColorMap::new(start, end, stops)), + LerpMethod::Perceptual => Arc::new(PerceptualColorMap::new(start, end, stops)), + LerpMethod::Xyz => Arc::new(XyzColorMap::new(start, end, stops)), + } + } +} + +/// A color map that interpolates between two colors and optional stops in the linear RGB color space +pub type LinearColorMap = GenColorMap<LinRgb>; + +/// A color map that interpolates between two colors and optional stops in a perceptual color space +pub type PerceptualColorMap = GenColorMap<OkLab>; + +/// A color map that interpolates between two colors and optional stops in a XYZ color space +pub type XyzColorMap = GenColorMap<Xyz>; + +/// A generic color map that interpolates between two colors and optional stops in the color space defined by the color type `C`. +#[derive(Debug, Clone)] +pub struct GenColorMap<C> { + start: C, + end: C, + stops: Vec<(f32, C)>, +} + +impl<C: From<Rgb8>> GenColorMap<C> { + /// Creates a new `CColorMap` with the specified start and end colors, and optional stops. + pub fn new<S>(start: Rgb8, end: Rgb8, stops: S) -> Self + where + S: IntoIterator<Item = (f32, Rgb8)>, + { + Self { + start: start.into(), + end: end.into(), + stops: stops + .into_iter() + .map(|(pos, color)| (pos, color.into())) + .collect(), + } + } +} + +impl<C: Lerp + Copy + Into<Rgb8>> ColorMap for GenColorMap<C> { + fn map_color(&self, value: f32) -> Rgb8 { + let mut start = (0.0, self.start); + let mut end = (1.0, self.end); + + for stop in &self.stops { + if stop.0 <= value { + start = *stop; + } else { + end = *stop; + break; + } + } + let t = if end.0 != start.0 { + (value - start.0) / (end.0 - start.0) + } else { + 0.0 + }; + start.1.lerp(end.1, t).into() + } +} diff --git a/src/drawing/colorbar.rs b/src/drawing/colorbar.rs new file mode 100644 index 0000000..ee320e3 --- /dev/null +++ b/src/drawing/colorbar.rs @@ -0,0 +1,419 @@ +use std::fmt; +use std::sync::Arc; + +use crate::des::{self, ColorBarPos}; +use crate::drawing::axis::{self, AsBoundRef}; +use crate::drawing::cmap::{AsColorMap, ColorMap}; +use crate::drawing::{Ctx, Text, ticks}; +use crate::style::theme; +use crate::{Style, data, geom, missing_params, render, text}; + +/// A colorbar entry, used to populate one colorbar +#[derive(Clone)] +pub struct Entry<'a> { + pub data_col: &'a des::DataCol, + pub cmap: &'a dyn AsColorMap, +} + +/// A trait that maps data to a 0..1 range, used for color bars and similar features. +pub trait ColorDataMap { + // identifies the right colorbar when multiple color bars are present + fn hash(&self) -> u64; + fn map_color_data(&self, data: data::SampleRef<'_>) -> Option<f32>; +} + +#[derive(Clone)] +pub struct ColorBarBuilder { + hash: u64, + cmap: Arc<dyn ColorMap>, + data_bounds: axis::Bounds, +} + +impl ColorBarBuilder { + pub fn new(hash: u64, cmap: Arc<dyn ColorMap>, data_bounds: axis::Bounds) -> Self { + Self { + hash, + cmap, + data_bounds, + } + } + + pub fn hash(&self) -> u64 { + self.hash + } + + pub fn data_bounds(&self) -> axis::BoundsRef<'_> { + self.data_bounds.as_bound_ref() + } + + pub fn unite_bounds(&mut self, data_bounds: axis::BoundsRef<'_>) -> Result<(), super::Error> { + self.data_bounds.unite_with(&data_bounds) + } + + pub fn build<D>(self, des: des::ColorBar, ctx: &Ctx<'_, D>) -> Result<ColorBar, super::Error> + where + D: data::Source + ?Sized, + { + let side = match des.pos() { + ColorBarPos::Right => axis::Side::Right, + ColorBarPos::Left => axis::Side::Left, + ColorBarPos::Top => axis::Side::Top, + ColorBarPos::Bottom => axis::Side::Bottom, + }; + + let title = des + .title() + .map(|title| title.to_rich_text(side.title_layout(), ctx.fontdb())) + .transpose()? + .map(|rt| Text::from_rich_text(&rt, ctx.fontdb())) + .transpose()?; + + let ticks = match &self.data_bounds { + axis::Bounds::Num(nb) => { + let align = side.ticks_labels_align(); + let font = des.ticks_font().clone(); + let scale: des::axis::Scale = + des::axis::Range::new(Some(nb.start()), Some(nb.end())).into(); + let locator = des::axis::ticks::Locator::Auto; + let formatter = des::axis::ticks::Formatter::Auto; + let ticks = ticks::locate_num(&locator, *nb, &scale)?; + let formatter = ticks::num_label_formatter(&locator, Some(&formatter), *nb, &scale); + ticks + .into_iter() + .map(|t| -> Result<_, super::Error> { + let text = formatter.format_label(t.into()); + let lt = text::LineText::new( + text, + align, + font.size, + font.font.clone(), + ctx.fontdb(), + )?; + let text = Text::from_line_text(<, ctx.fontdb(), font.color)?; + Ok((data::Sample::Num(t), text)) + }) + .collect::<Result<Vec<_>, _>>()? + } + _ => vec![], + }; + + let ticks_mark = ( + theme::Stroke { + color: theme::Col::Foreground.into(), + width: 1.0, + pattern: Default::default(), + opacity: None, + }, + 4.0, + ); + + Ok(ColorBar { + hash: self.hash, + side, + des, + data_bounds: self.data_bounds, + cmap: self.cmap, + title, + ticks, + ticks_mark, + }) + } +} + +#[derive(Clone)] +pub struct ColorBar { + hash: u64, + side: axis::Side, + des: des::ColorBar, + data_bounds: axis::Bounds, + cmap: Arc<dyn ColorMap>, + title: Option<Text>, + ticks: Vec<(data::Sample, Text)>, + ticks_mark: (theme::Stroke, f32), +} + +impl fmt::Debug for ColorBar { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("ColorBar") + .field("hash", &self.hash) + .field("side", &self.side) + .field("des", &self.des) + .field("data_bounds", &self.data_bounds) + .field("title", &self.title) + .field("ticks", &self.ticks) + .field("ticks_mark", &self.ticks_mark) + .finish() + } +} + +impl ColorDataMap for ColorBar { + fn hash(&self) -> u64 { + self.hash + } + + fn map_color_data(&self, data: data::SampleRef<'_>) -> Option<f32> { + let bounds = self.data_bounds.as_bound_ref().as_num()?; + let val = data.as_num()?; + let min = bounds.start(); + let max = bounds.end(); + + if val.is_finite() && min.is_finite() && max.is_finite() && max > min { + Some(((val - min) / (max - min)).clamp(0.0, 1.0) as f32) + } else { + None + } + } +} + +impl ColorBar { + pub fn pos(&self) -> ColorBarPos { + self.des.pos() + } + + pub fn width(&self) -> f32 { + self.des.width() + } + + pub fn margin(&self) -> f32 { + self.des.margin() + } + + pub fn border(&self) -> Option<&theme::Stroke> { + self.des.border() + } + + pub fn calc_size_across(&self) -> f32 { + let mut size = self.width(); + + if !self.ticks.is_empty() { + size += self.ticks_mark.1 + missing_params::TICK_LABEL_MARGIN; + match self.side { + axis::Side::Bottom | axis::Side::Top => { + let max_h = self + .ticks + .iter() + .map(|t| t.1.height()) + .max_by(|a, b| a.partial_cmp(b).unwrap()) + .unwrap_or(0.0); + size += max_h; + } + axis::Side::Left | axis::Side::Right => { + let max_w = self + .ticks + .iter() + .map(|t| t.1.width()) + .max_by(|a, b| a.partial_cmp(b).unwrap()) + .unwrap_or(0.0); + size += max_w; + } + } + } + + if let Some(title) = self.title.as_ref() { + // vertical axis rotate the title, therefore we take the height in all cases. + size += title.height() + missing_params::AXIS_TITLE_MARGIN; + } + size + } + + pub fn draw<S>( + &self, + surface: &mut S, + style: &Style, + plot_rect: &geom::Rect, + plot_box: &geom::Rect, + ) where + S: render::Surface, + { + let bar_rect = match self.side { + axis::Side::Right => geom::Rect::from_trbl( + plot_rect.top(), + plot_box.right() + self.margin() + self.width(), + plot_rect.bottom(), + plot_box.right() + self.margin(), + ), + axis::Side::Left => geom::Rect::from_trbl( + plot_rect.top(), + plot_box.left() - self.margin(), + plot_rect.bottom(), + plot_box.left() - self.margin() - self.width(), + ), + axis::Side::Top => geom::Rect::from_trbl( + plot_box.top() - self.margin() - self.width(), + plot_rect.right(), + plot_box.top() - self.margin(), + plot_rect.left(), + ), + axis::Side::Bottom => geom::Rect::from_trbl( + plot_box.bottom() + self.margin(), + plot_rect.right(), + plot_box.bottom() + self.margin() + self.width(), + plot_rect.left(), + ), + }; + let bar_len = match self.side { + axis::Side::Right | axis::Side::Left => bar_rect.height(), + axis::Side::Top | axis::Side::Bottom => bar_rect.width(), + }; + let num_pts = bar_len.ceil() as usize; + let (start, sign) = match self.side { + axis::Side::Right | axis::Side::Left => (bar_rect.bottom(), -1.0), + axis::Side::Top | axis::Side::Bottom => (bar_rect.left(), 1.0), + }; + let mut pos = start; + let pos_shift = sign * bar_len / num_pts as f32; + let mut t = 0.0; + let t_shift = 1.0 / num_pts as f32; + + let mut pb = geom::PathBuilder::with_capacity(5, 4); + for i in 0..=num_pts { + let color = self.cmap.map_color(t); + let pi = start + i as f32 * pos_shift; + let pos2 = if i == num_pts { + pi + } else { + pi + pos_shift / 2.0 + }; + let (x1, y1, x2, y2) = match self.side { + axis::Side::Right | axis::Side::Left => { + (bar_rect.left(), pos, bar_rect.right(), pos2) + } + axis::Side::Top | axis::Side::Bottom => { + (pos, bar_rect.top(), pos2, bar_rect.bottom()) + } + }; + pb.move_to(x1, y1); + pb.line_to(x1, y2); + pb.line_to(x2, y2); + pb.line_to(x2, y1); + + let path = pb.finish().expect("path should be valid"); + let rpath = render::Path { + path: &path, + fill: Some(color.opaque().into()), + stroke: None, + transform: None, + }; + surface.draw_path(&rpath); + + pb = path.clear(); + pos = pos2; + t = (t + t_shift).min(1.0); + } + + if let Some(border) = self.border() { + let path = bar_rect.to_path(); + let rpath = render::Path { + path: &path, + fill: None, + stroke: Some(border.as_stroke(style)), + transform: None, + }; + surface.draw_path(&rpath); + } + + let mut title_shift: f32 = 0.0; + + let mark_len = self.ticks_mark.1; + for (tick_val, tick_text) in &self.ticks { + if !self.data_bounds.contains(tick_val.as_ref()) { + continue; + } + let Some(t) = self.map_color_data(tick_val.as_ref()) else { + continue; + }; + let tick_pos = start + sign * t * bar_len; + let (tx1, tx2, ty1, ty2) = match self.side { + axis::Side::Right => ( + bar_rect.right(), + bar_rect.right() + mark_len, + tick_pos, + tick_pos, + ), + axis::Side::Left => ( + bar_rect.left(), + bar_rect.left() - mark_len, + tick_pos, + tick_pos, + ), + axis::Side::Top => ( + tick_pos, + tick_pos, + bar_rect.top(), + bar_rect.top() - mark_len, + ), + axis::Side::Bottom => ( + tick_pos, + tick_pos, + bar_rect.bottom(), + bar_rect.bottom() + mark_len, + ), + }; + pb.move_to(tx1, ty1); + pb.line_to(tx2, ty2); + let path = pb.finish().expect("path should be valid"); + let rpath = render::Path { + path: &path, + fill: None, + stroke: Some(self.ticks_mark.0.as_stroke(style)), + transform: None, + }; + surface.draw_path(&rpath); + pb = path.clear(); + + let (tx, ty, ts) = match self.side { + axis::Side::Right => ( + tx2 + missing_params::TICK_LABEL_MARGIN, + tick_pos, + tick_text.width(), + ), + axis::Side::Left => ( + tx2 - missing_params::TICK_LABEL_MARGIN, + tick_pos, + tick_text.width(), + ), + axis::Side::Top => ( + tick_pos, + ty2 - missing_params::TICK_LABEL_MARGIN, + tick_text.height(), + ), + axis::Side::Bottom => ( + tick_pos, + ty2 + missing_params::TICK_LABEL_MARGIN, + tick_text.height(), + ), + }; + let transform = geom::Transform::from_translate(tx, ty); + tick_text.draw(surface, style, Some(&transform)); + + title_shift = title_shift.max(ts + missing_params::TICK_LABEL_MARGIN + mark_len); + } + + if let Some(title) = self.title.as_ref() { + let (tx, ty, rot) = match self.side { + axis::Side::Right => ( + bar_rect.right() + title_shift + missing_params::AXIS_TITLE_MARGIN, + start + sign * bar_len / 2.0, + -90.0, + ), + axis::Side::Left => ( + bar_rect.left() - title_shift - missing_params::AXIS_TITLE_MARGIN, + start + sign * bar_len / 2.0, + -90.0, + ), + axis::Side::Top => ( + start + sign * bar_len / 2.0, + bar_rect.top() - title_shift - missing_params::AXIS_TITLE_MARGIN, + 0.0, + ), + axis::Side::Bottom => ( + start + sign * bar_len / 2.0, + bar_rect.bottom() + title_shift + missing_params::AXIS_TITLE_MARGIN, + 0.0, + ), + }; + let transform = geom::Transform::from_translate(tx, ty).pre_rotate(rot); + title.draw(surface, style, Some(&transform)); + } + } +} diff --git a/src/drawing/plot.rs b/src/drawing/plot.rs index 8a555b5..817901d 100644 --- a/src/drawing/plot.rs +++ b/src/drawing/plot.rs @@ -4,11 +4,12 @@ use std::rc::Rc; use crate::des::{PlotIdx, annot}; use crate::drawing::annot::Annot; -use crate::drawing::axis::{Axis, AxisScale, Bounds, Side}; +use crate::drawing::axis::{AsBoundRef, Axis, AxisScale, Bounds, Side}; +use crate::drawing::colorbar::{ColorBar, ColorBarBuilder}; use crate::drawing::legend::{Legend, LegendBuilder}; use crate::drawing::scale::CoordMapXy; use crate::drawing::series::{self, Series, SeriesExt}; -use crate::drawing::{Ctx, Error}; +use crate::drawing::{ColumnExt, Ctx, Error, get_column}; use crate::style::{defaults, theme}; use crate::{Style, data, des, geom, missing_params, render}; @@ -59,6 +60,7 @@ pub(super) struct Plot { border: Option<des::plot::Border>, series: Vec<Series>, legend: Option<(geom::Point, Legend)>, + colorbars: Vec<ColorBar>, annots: Vec<Annot>, } @@ -156,6 +158,7 @@ impl Axes { struct PlotData { series: Vec<Series>, legend: Option<Legend>, + colorbars: Vec<ColorBar>, insets: geom::Padding, } @@ -370,7 +373,12 @@ where subplot_rect_height, ); - let PlotData { series, legend, .. } = data.unwrap(); + let PlotData { + series, + legend, + colorbars, + .. + } = data.unwrap(); let legend = legend.map(|leg| { let top_left = legend_top_left( @@ -418,6 +426,7 @@ where axes, series, legend, + colorbars, annots, }; plots[plt_idx as usize] = Some(plot); @@ -450,10 +459,12 @@ where let cols = des_plots.cols() as f32; let avail_width = (rect.width() - des_plots.space() * (cols - 1.0)) / cols; let legend = self.setup_plot_legend(des_plot, avail_width)?; + let colorbars = self.setup_plot_colorbars(des_plot)?; let insets = plot_insets(des_plot); plot_data[idx] = Some(PlotData { series, legend, + colorbars, insets, }); } @@ -496,6 +507,52 @@ where Ok(builder.layout()) } + fn setup_plot_colorbars(&self, des_plot: &des::Plot) -> Result<Vec<ColorBar>, Error> { + let Some(des_colorbar) = des_plot.colorbar() else { + return Ok(vec![]); + }; + let mut builders: Vec<ColorBarBuilder> = Vec::new(); + + for_each_series(des_plot, |s| { + if let Some(entry) = s.colorbar_entry() { + let forced_bounds = entry.cmap.data_range(); + let has_forced_bounds = forced_bounds.is_some(); + let bounds = if let Some(range) = forced_bounds { + range + } else { + let col = get_column(entry.data_col, self.data_source())?; + col.bounds() + .expect("Should get bounds for colormap data column") + }; + + let hash = entry.cmap.hash(); + + if let Some(cbb) = builders.iter_mut().find(|b| b.hash() == hash) { + if !has_forced_bounds { + cbb.unite_bounds(bounds.as_bound_ref())?; + } else { + debug_assert!( + cbb.data_bounds() == bounds.as_bound_ref(), + "Two color bars with same color map but different forced data range, this should not happen since the color map should be different if the data range is different" + ); + } + } else { + builders.push(ColorBarBuilder::new( + hash, + entry.cmap.as_color_map(), + bounds, + )); + } + } + Ok(()) + })?; + + Ok(builders + .into_iter() + .map(|b| b.build(des_colorbar.clone(), self)) + .collect::<Result<Vec<_>, _>>()?) + } + fn calc_estimated_x_heights( &self, des_plots: &des::figure::Plots, @@ -516,6 +573,13 @@ where height += leg.size().height() + des_leg.margin(); } } + + for cbar in &data.colorbars { + if x_side_matches_colorbar_pos(side, cbar.pos()) { + height += cbar.calc_size_across() + cbar.margin(); + } + } + max_height = max_height.max(height); } } @@ -552,6 +616,12 @@ where } } + for cbar in &data.colorbars { + if x_side_matches_colorbar_pos(side, cbar.pos()) { + height += cbar.calc_size_across() + cbar.margin(); + } + } + max_height = max_height.max(height); } debug_assert!(max_height.is_finite()); @@ -585,6 +655,12 @@ where } } + for cbar in &data.colorbars { + if y_side_matches_colorbar_pos(side, cbar.pos()) { + width += cbar.calc_size_across() + cbar.margin(); + } + } + max_width = max_width.max(width); } } @@ -836,6 +912,22 @@ fn y_side_matches_out_legend_pos(side: des::axis::Side, legend_pos: des::plot::L } } +fn x_side_matches_colorbar_pos(side: des::axis::Side, pos: des::ColorBarPos) -> bool { + match (side, pos) { + (des::axis::Side::Main, des::ColorBarPos::Bottom) => true, + (des::axis::Side::Opposite, des::ColorBarPos::Top) => true, + _ => false, + } +} + +fn y_side_matches_colorbar_pos(side: des::axis::Side, pos: des::ColorBarPos) -> bool { + match (side, pos) { + (des::axis::Side::Main, des::ColorBarPos::Left) => true, + (des::axis::Side::Opposite, des::ColorBarPos::Right) => true, + _ => false, + } +} + impl Plots { pub fn update_series_data<D>(&mut self, data_source: &D) -> Result<(), Error> where @@ -883,7 +975,7 @@ impl Plot { y: &*y_cm, }; - series.update_data(data_source, &self.rect, &cm)?; + series.update_data(data_source, &self.rect, &cm, &self.colorbars)?; } Ok(()) } @@ -904,9 +996,13 @@ impl Plot { self.draw_series(surface, style); self.draw_annotations(surface, style, axes, annot::ZPos::AboveSeries); - axes.draw(surface, style, &self.rect); + let plot_box = axes.draw(surface, style, &self.rect); self.draw_border_box(surface, style); + for cbar in &self.colorbars { + cbar.draw(surface, style, &self.rect, &plot_box); + } + if let Some((top_left, leg)) = self.legend.as_ref() { leg.draw(surface, style, top_left); } @@ -996,14 +1092,20 @@ impl Axes { } } - fn draw<S>(&self, surface: &mut S, style: &Style, plot_rect: &geom::Rect) + fn draw<S>(&self, surface: &mut S, style: &Style, plot_rect: &geom::Rect) -> geom::Rect where S: render::Surface, { - self.draw_side(surface, style, &self.x, Side::Top, plot_rect); - self.draw_side(surface, style, &self.y, Side::Right, plot_rect); - self.draw_side(surface, style, &self.x, Side::Bottom, plot_rect); - self.draw_side(surface, style, &self.y, Side::Left, plot_rect); + let t = self.draw_side(surface, style, &self.x, Side::Top, plot_rect); + let r = self.draw_side(surface, style, &self.y, Side::Right, plot_rect); + let b = self.draw_side(surface, style, &self.x, Side::Bottom, plot_rect); + let l = self.draw_side(surface, style, &self.y, Side::Left, plot_rect); + + plot_rect + .shifted_top_side(t) + .shifted_right_side(-r) + .shifted_bottom_side(-b) + .shifted_left_side(l) } fn draw_side<S>( @@ -1013,23 +1115,28 @@ impl Axes { axes: &[Axis], side: Side, plot_rect: &geom::Rect, - ) where + ) -> f32 + where S: render::Surface, { + let mut tot_shift = 0.0; let mut rect = *plot_rect; for axis in axes.iter() { if axis.side() == side { - let shift = axis.draw(surface, style, &rect) - + missing_params::AXIS_MARGIN - + missing_params::AXIS_SPINE_WIDTH; - rect = match side { - Side::Top => rect.shifted_top_side(-shift), - Side::Right => rect.shifted_right_side(shift), - Side::Bottom => rect.shifted_bottom_side(shift), - Side::Left => rect.shifted_left_side(-shift), - }; + let mut shift = axis.draw(surface, style, &rect); + if shift > 0.0 { + shift += missing_params::AXIS_MARGIN + missing_params::AXIS_SPINE_WIDTH; + rect = match side { + Side::Top => rect.shifted_top_side(-shift), + Side::Right => rect.shifted_right_side(shift), + Side::Bottom => rect.shifted_bottom_side(shift), + Side::Left => rect.shifted_left_side(-shift), + }; + tot_shift += shift; + } } } + tot_shift } } diff --git a/src/drawing/series.rs b/src/drawing/series.rs index 42ee50f..f74afe8 100644 --- a/src/drawing/series.rs +++ b/src/drawing/series.rs @@ -1,11 +1,18 @@ +use std::fmt; +use std::sync::Arc; + use axis::AsBoundRef; +use plotive_base::Rgb8; use plotive_base::geom::PathSegment; use scale::{CoordMap, CoordMapXy}; use crate::drawing::axis::Bounds; +use crate::drawing::cmap::{AsColorMap, ColorMap}; +use crate::drawing::colorbar::{ColorBar, ColorDataMap}; use crate::drawing::plot::Orientation; use crate::drawing::{ - Categories, ColumnExt, Error, F64ColumnExt, axis, legend, marker, plot_to_fig, scale, + Categories, ColumnExt, Error, F64ColumnExt, axis, colorbar, get_column, legend, marker, + plot_to_fig, scale, }; use crate::{Style, data, des, geom, render, style}; @@ -13,6 +20,9 @@ use crate::{Style, data, des, geom, render, style}; /// has to populate the legend pub trait SeriesExt { fn legend_entry(&self) -> Option<legend::Entry<'_>>; + fn colorbar_entry(&self) -> Option<colorbar::Entry<'_>> { + None + } } impl SeriesExt for des::series::Line { @@ -33,6 +43,11 @@ impl SeriesExt for des::series::Scatter { shape: legend::ShapeRef::Marker(self.marker()), }) } + + fn colorbar_entry(&self) -> Option<colorbar::Entry<'_>> { + self.color_data() + .map(|(data_col, cmap)| colorbar::Entry { data_col, cmap }) + } } impl SeriesExt for des::series::Area { @@ -79,21 +94,6 @@ impl SeriesExt for des::series::BarSeries { } } -fn get_column<'a, D>( - col: &'a des::series::DataCol, - data_source: &'a D, -) -> Result<&'a dyn data::Column, Error> -where - D: data::Source + ?Sized, -{ - match col { - des::series::DataCol::Inline(col) => Ok(col), - des::series::DataCol::SrcRef(name) => data_source - .column(name) - .ok_or_else(|| Error::MissingDataSrc(name.to_string())), - } -} - fn calc_xy_bounds<D>( data_source: &D, x_data: &des::series::DataCol, @@ -281,6 +281,7 @@ impl Series { data_source: &D, rect: &geom::Rect, cm: &CoordMapXy, + cbs: &[ColorBar], ) -> Result<(), Error> where D: data::Source + ?Sized, @@ -289,7 +290,7 @@ impl Series { SeriesPlot::Line(xy) => { xy.update_data(data_source, rect, cm); } - SeriesPlot::Scatter(sc) => sc.update_data(data_source, rect, cm), + SeriesPlot::Scatter(sc) => sc.update_data(data_source, rect, cm, cbs), SeriesPlot::Area(area) => area.update_data(data_source, rect, cm), SeriesPlot::Histogram(hist) => { hist.update_data(data_source, rect, cm); @@ -585,10 +586,27 @@ fn calc_xy_line_path( } } +#[derive(Debug, Clone)] +struct MarkerPoint { + pos: geom::Point, + scale: f32, + color: Option<Rgb8>, +} + +impl Default for MarkerPoint { + fn default() -> Self { + MarkerPoint { + pos: geom::Point { x: 0.0, y: 0.0 }, + scale: 1.0, + color: None, + } + } +} + #[derive(Debug, Clone)] struct MarkerData { path: geom::Path, - points: Vec<(geom::Point, f32)>, // pos and scale + points: Vec<MarkerPoint>, marker: style::series::Marker, } @@ -617,16 +635,32 @@ impl MarkerData { let rc = (style, index); for p in &self.points { - let transform = geom::Transform::from_translate(p.0.x, p.0.y).pre_scale(p.1, p.1); + let scale = self.marker.size.scale(p.scale).to_visual_size(); + let transform = + geom::Transform::from_translate(p.pos.x, p.pos.y).pre_scale(scale, scale); + + let fill = self.marker.fill.as_ref().map(|f| { + let f = f.as_paint(&rc); + if let Some(rgb) = p.color { + f.with_rgb(rgb) + } else { + f + } + }); + + let stroke = self.marker.stroke.as_ref().map(|s| { + let s = s.as_stroke(&rc).with_multiplied_width(1.0 / scale); + if let Some(rgb) = p.color { + s.with_rgb(rgb) + } else { + s + } + }); let path = render::Path { path: &self.path, - fill: self.marker.fill.as_ref().map(|f| f.as_paint(&rc)), - stroke: self - .marker - .stroke - .as_ref() - .map(|l| l.as_stroke(&rc).with_multiplied_width(1.0 / p.1)), + fill, + stroke, transform: Some(&transform), }; surface.draw_path(&path); @@ -693,7 +727,6 @@ impl Line { self.path = Some(path); if let Some(marker_data) = self.marker_data.as_mut() { - let size = marker_data.marker.size.to_visual_size(); let mut points = Vec::with_capacity(x_col.len()); for (x, y) in x_col.sample_iter().zip(y_col.sample_iter()) { @@ -703,7 +736,10 @@ impl Line { let (x, y) = cm.map_coord((x, y)).expect("Should be valid coordinates"); let x = rect.left() + x; let y = rect.bottom() - y; - points.push((geom::Point { x, y }, size)); + points.push(MarkerPoint { + pos: geom::Point { x, y }, + ..Default::default() + }); } marker_data.points = points; } @@ -731,48 +767,77 @@ impl Line { } } -#[derive(Debug, Clone)] +#[derive(Clone)] struct Scatter { index: usize, cols: (des::DataCol, des::DataCol), - sizes_col: Option<des::DataCol>, + size_col: Option<des::DataCol>, + color_data: Option<(des::DataCol, u64, Arc<dyn ColorMap>)>, ab: Option<(axis::Bounds, axis::Bounds)>, axes: (des::axis::Ref, des::axis::Ref), marker_data: MarkerData, } +impl fmt::Debug for Scatter { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Scatter") + .field("index", &self.index) + .field("cols", &self.cols) + .field("size_col", &self.size_col) + .field( + "color_data", + &(self.color_data.as_ref().map(|(col, hash, _)| (col, hash))), + ) + .field("ab", &self.ab) + .field("axes", &self.axes) + .finish() + } +} + impl Scatter { fn prepare<D>(index: usize, des: &des::series::Scatter, data_source: &D) -> Result<Self, Error> where D: data::Source + ?Sized, { let cols = (des.x_data().clone(), des.y_data().clone()); - let sizes_col = des.sizes_data().cloned(); + let size_col = des.size_data().cloned(); + let color_data = des.color_data().map(|(col, cmap)| { + let col = col.clone(); + let hash = cmap.hash(); + let cmap = cmap.as_color_map(); + (col, hash, cmap) + }); let xy_bounds = calc_xy_bounds(data_source, &cols.0, &cols.1)?; let marker_data = MarkerData::new(des.marker().clone()); Ok(Scatter { index, cols, - sizes_col, + size_col, + color_data, ab: xy_bounds, axes: (des.x_axis().clone(), des.y_axis().clone()), marker_data, }) } - fn update_data<D>(&mut self, data_source: &D, rect: &geom::Rect, cm: &CoordMapXy) - where + fn update_data<D>( + &mut self, + data_source: &D, + rect: &geom::Rect, + cm: &CoordMapXy, + cbs: &[ColorBar], + ) where D: data::Source + ?Sized, { let x_col = get_column(&self.cols.0, data_source).unwrap(); let y_col = get_column(&self.cols.1, data_source).unwrap(); debug_assert!(x_col.len() == y_col.len()); - let sizes_col = self - .sizes_col + let size_col = self + .size_col .as_ref() .map(|col| get_column(col, data_source).unwrap()); - debug_assert!(sizes_col.map_or(true, |sc| sc.len() == x_col.len())); + debug_assert!(size_col.map_or(true, |sc| sc.len() == x_col.len())); if self.ab.is_none() && x_col.is_empty() { self.marker_data.clear(); @@ -787,9 +852,18 @@ impl Scatter { } let mut points = Vec::with_capacity(x_col.len()); - let default_vs = self.marker_data.marker.size.to_visual_size(); - let mut sizes_iter = sizes_col.map(|sc| sc.sample_iter()); + let mut size_iter = size_col.map(|sc| sc.sample_iter()); + let mut color_iter = self + .color_data + .as_ref() + .map(|(col, _, _)| get_column(col, data_source).unwrap().sample_iter()); + let cbar = self + .color_data + .as_ref() + .map(|(_, hash, _)| cbs.iter().find(|cb| cb.hash() == *hash)) + .flatten(); + let cmap = self.color_data.as_ref().map(|(_, _, cmap)| cmap.clone()); for (x, y) in x_col.sample_iter().zip(y_col.sample_iter()) { if x.is_null() || y.is_null() { @@ -799,14 +873,30 @@ impl Scatter { let (x, y) = cm.map_coord((x, y)).expect("Should be valid coordinates"); let x = rect.left() + x; let y = rect.bottom() - y; - let vs = sizes_iter + let scale = size_iter .as_mut() .and_then(|iter| iter.next()) .and_then(|v| v.as_num()) - .map(|v| style::MarkerSize::from(v as f32).to_visual_size()) - .unwrap_or(default_vs); - - points.push((geom::Point { x, y }, vs)); + .map(|v| v as f32) + .unwrap_or(1.0); + + let color_sample = color_iter.as_mut().and_then(|iter| iter.next()); + + let color = color_sample + .zip(cmap.as_ref()) + .zip(cbar) + .map(|((v, cmap), cbar)| { + let mapped_value = cbar + .map_color_data(v) + .expect("TODO: handle invalid color data"); + cmap.map_color(mapped_value) + }); + + points.push(MarkerPoint { + pos: geom::Point { x, y }, + scale, + color, + }); } self.marker_data.points = points; } diff --git a/src/drawing/ticks.rs b/src/drawing/ticks.rs index 5f3f6ba..0652382 100644 --- a/src/drawing/ticks.rs +++ b/src/drawing/ticks.rs @@ -6,7 +6,7 @@ use crate::data; use crate::des::axis::ticks::{ DateTimeFormatter, DateTimeLocator, TimeDeltaFormatter, TimeDeltaLocator, }; -use crate::des::axis::ticks::{Formatter, Locator, Ticks}; +use crate::des::axis::ticks::{Formatter, Locator}; use crate::des::axis::{LogScale, Scale}; use crate::drawing::{Categories, Error, axis}; #[cfg(feature = "time")] @@ -318,7 +318,7 @@ const AUTO_STEPS: &[f64] = &[1.0, 2.0, 2.5, 5.0]; const PI: f64 = std::f64::consts::PI; const PI_STEPS: &[f64] = &[PI / 8.0, PI / 6.0, PI / 4.0, PI / 3.0, PI / 2.0, PI]; -struct MaxN<'a> { +pub(super) struct MaxN<'a> { bins: u32, steps: &'a [f64], } @@ -328,7 +328,7 @@ impl<'a> MaxN<'a> { Self { bins, steps } } - fn new_auto() -> Self { + pub(super) fn new_auto() -> Self { Self::new(AUTO_BINS, AUTO_STEPS) } @@ -340,7 +340,7 @@ impl<'a> MaxN<'a> { Self::new(bins, PI_STEPS) } - fn ticks(&self, nb: axis::NumBounds) -> Vec<f64> { + pub(super) fn ticks(&self, nb: axis::NumBounds) -> Vec<f64> { let target_step = nb.span() / self.bins as f64; // getting quite about where we need to be @@ -492,14 +492,17 @@ impl LogLocator { } pub fn num_label_formatter( - ticks: &Ticks, + locator: &Locator, + formatter: Option<&Formatter>, ab: axis::NumBounds, scale: &Scale, ) -> Arc<dyn LabelFormatter> { - match ticks.formatter() { + match formatter { None => Arc::new(NullFormat), Some(Formatter::Auto) if scale.is_shared() => Arc::new(NullFormat), - Some(Formatter::Auto | Formatter::SharedAuto) => auto_label_formatter(ticks, ab, scale), + Some(Formatter::Auto | Formatter::SharedAuto) => { + auto_label_formatter(locator, formatter, ab, scale) + } Some(Formatter::Prec(prec)) => Arc::new(PrecLabelFormat(*prec)), Some(Formatter::Percent(fmt)) => { let prec = fmt @@ -510,23 +513,26 @@ pub fn num_label_formatter( #[cfg(feature = "time")] Some(Formatter::TimeDelta(tdfmt)) => timedelta_label_formatter(ab, tdfmt), #[cfg(feature = "time")] - Some(Formatter::DateTime(_)) => datetime_label_formatter(ticks, ab.into(), scale).unwrap(), + Some(Formatter::DateTime(_)) => { + datetime_label_formatter(formatter, ab.into(), scale).unwrap() + } } } fn auto_label_formatter( - ticks: &Ticks, + locator: &Locator, + #[allow(unused_variables)] formatter: Option<&Formatter>, ab: axis::NumBounds, scale: &Scale, ) -> Arc<dyn LabelFormatter> { - match (ticks.locator(), scale) { + match (locator, scale) { (Locator::PiMultiple { .. }, _) => Arc::new(PiMultipleLabelFormat { prec: 2 }), (Locator::Auto, Scale::Log(LogScale { base, .. })) if *base == 10.0 => { Arc::new(SciLabelFormat) } (Locator::Auto, _) => { let max = ab.start().abs().max(ab.end().abs()); - if max >= 10000.0 || max < 0.01 { + if max >= 100000.0 || max < 0.001 { Arc::new(SciLabelFormat) } else if max >= 100.0 { Arc::new(PrecLabelFormat(0)) @@ -537,10 +543,10 @@ fn auto_label_formatter( } } #[cfg(feature = "time")] - (Locator::DateTime(_), _) => datetime_label_formatter(ticks, ab.into(), scale).unwrap(), + (Locator::DateTime(_), _) => datetime_label_formatter(formatter, ab.into(), scale).unwrap(), _ => todo!( "auto label formatter for locator {:?} and scale {:?}", - ticks.locator(), + locator, scale ), } @@ -561,11 +567,11 @@ fn percent_auto_precision(ab: axis::NumBounds) -> usize { #[cfg(feature = "time")] pub fn datetime_label_formatter( - ticks: &Ticks, + formatter: Option<&Formatter>, tb: axis::TimeBounds, scale: &Scale, ) -> Result<Arc<dyn LabelFormatter>, Error> { - match ticks.formatter() { + match formatter { Some(Formatter::Auto) if scale.is_shared() => Ok(Arc::new(NullFormat)), Some(Formatter::Auto | Formatter::SharedAuto) => auto_datetime_label_formatter(tb), Some(Formatter::DateTime(DateTimeFormatter::Auto)) => auto_datetime_label_formatter(tb), diff --git a/src/lib.rs b/src/lib.rs index 419cbfd..f7f9cef 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -164,11 +164,13 @@ pub mod time; pub use drawing::Prepare; pub use style::Style; -/// Rexports of [`plotive_base::color`]` items +/// Color types and utilities for the `plotive` crate. pub mod color { + /// Rexports of [`plotive_base::color`]` items pub use plotive_base::color::*; } -pub use color::{Color, ColorU8, ResolveColor}; + +pub use color::{Color, ResolveColor, Rgba8}; /// Rexports of [`plotive_base::geom`]` items pub mod geom { diff --git a/src/render.rs b/src/render.rs index 4b4ebeb..25650f3 100644 --- a/src/render.rs +++ b/src/render.rs @@ -3,7 +3,9 @@ //! All rendering surfaces must implement the `Surface` trait. //! See the `plotive-pxl` and `plotive-svg` crates for examples. -use crate::{ColorU8, geom}; +use plotive_base::Rgb8; + +use crate::{Rgba8, geom}; /// Surface trait: defines the rendering surface API pub trait Surface { @@ -43,11 +45,20 @@ pub trait Surface { #[derive(Debug, Clone, Copy)] pub enum Paint { /// Solid color fill - Solid(ColorU8), + Solid(Rgba8), +} + +impl Paint { + /// Return a new `Paint` with the same alpha as the original, but with the RGB values replaced by the given color. + pub fn with_rgb(self, rgb: Rgb8) -> Self { + match self { + Paint::Solid(rgba) => Paint::Solid(rgb.with_a(rgba.a())), + } + } } -impl From<ColorU8> for Paint { - fn from(value: ColorU8) -> Self { +impl From<Rgba8> for Paint { + fn from(value: Rgba8) -> Self { Paint::Solid(value) } } @@ -66,7 +77,7 @@ pub enum LinePattern<'a> { #[derive(Debug, Clone, Copy)] pub struct Stroke<'a> { /// Line color - pub color: ColorU8, + pub color: Rgba8, /// Line width in figure units pub width: f32, /// Line pattern @@ -79,6 +90,14 @@ impl Stroke<'_> { self.width *= factor; self } + + /// Return a new `Stroke` with the same alpha as the original, but with the RGB values replaced by the given color. + pub fn with_rgb(self, rgb: Rgb8) -> Self { + Stroke { + color: rgb.with_a(self.color.a()), + ..self + } + } } /// Rectangle to draw diff --git a/src/style.rs b/src/style.rs index bc2d25b..d7d8955 100644 --- a/src/style.rs +++ b/src/style.rs @@ -6,7 +6,7 @@ pub mod theme; pub use crate::style::series::Palette; pub use crate::style::theme::Theme; -use crate::{Color, ColorU8, ResolveColor, render}; +use crate::{Color, ResolveColor, Rgba8, render}; /// Overall style definition for figures /// @@ -118,25 +118,25 @@ impl Style { } impl ResolveColor<theme::Color> for Style { - fn resolve_color(&self, col: &theme::Color) -> ColorU8 { + fn resolve_color(&self, col: &theme::Color) -> Rgba8 { self.theme().resolve_color(col) } } impl ResolveColor<series::IndexColor> for Style { - fn resolve_color(&self, col: &series::IndexColor) -> ColorU8 { + fn resolve_color(&self, col: &series::IndexColor) -> Rgba8 { self.palette.get(*col) } } impl ResolveColor<series::AutoColor> for (&Style, usize) { - fn resolve_color(&self, _col: &series::AutoColor) -> ColorU8 { + fn resolve_color(&self, _col: &series::AutoColor) -> Rgba8 { self.0.palette.get(series::IndexColor(self.1)) } } impl ResolveColor<series::Color> for (&Style, usize) { - fn resolve_color(&self, col: &series::Color) -> ColorU8 { + fn resolve_color(&self, col: &series::Color) -> Rgba8 { match col { series::Color::Auto => self.0.palette.get(series::IndexColor(self.1)), series::Color::Index(idx) => self.0.palette.get(*idx), @@ -145,6 +145,15 @@ impl ResolveColor<series::Color> for (&Style, usize) { } } +fn add_opacity(c: Rgba8, opacity: Option<f32>) -> Rgba8 { + debug_assert!(opacity.map_or(true, |t| t >= 0.0 && t <= 1.0)); + + match opacity { + Some(opacity) => Rgba8::new(c.r(), c.g(), c.b(), (c.a() as f32 * opacity).round() as u8), + None => c, + } +} + /// Dash pattern for dashed lines /// A dash pattern is a sequence of lengths that specify the lengths of /// alternating dashes and gaps. @@ -228,11 +237,7 @@ impl<C: Color> Stroke<C> { where R: ResolveColor<C>, { - let color = if let Some(opacity) = self.opacity { - self.color.resolve(rc).with_opacity(opacity) - } else { - self.color.resolve(rc) - }; + let color = add_opacity(self.color.resolve(rc), self.opacity); let pattern = match &self.pattern { LinePattern::Solid => render::LinePattern::Solid, @@ -336,14 +341,9 @@ impl<C: Color> Fill<C> { R: ResolveColor<C>, { match self { - Fill::Solid { - color, - opacity: None, - } => render::Paint::Solid(color.resolve(rc)), - Fill::Solid { - color, - opacity: Some(opacity), - } => render::Paint::Solid(color.resolve(rc).with_opacity(*opacity)), + Fill::Solid { color, opacity } => { + render::Paint::Solid(add_opacity(color.resolve(rc), *opacity)) + } } } } @@ -387,6 +387,11 @@ pub enum MarkerShape { pub struct MarkerSize(pub f32); impl MarkerSize { + /// Scale the marker area by the given factor, returning self for chaining + pub fn scale(self, factor: f32) -> Self { + MarkerSize(self.0 * factor) + } + /// Convert the marker size to a visual size (e.g. diameter for circle marker) pub fn to_visual_size(&self) -> f32 { self.0.sqrt() @@ -534,7 +539,7 @@ where #[cfg(test)] mod tests { use super::*; - use crate::ColorU8; + use crate::Rgba8; use crate::style::theme; #[test] @@ -543,18 +548,18 @@ mod tests { let theme_line: theme::Stroke = (theme::Color::Theme(theme::Col::LegendBorder), 2.0).into(); let stroke = theme_line.as_stroke(&style); - assert_eq!(stroke.color, ColorU8::from_html(b"#000000")); + assert_eq!(stroke.color, Rgba8::from_hex(b"#000000")); let series_line: Stroke<series::IndexColor> = (series::IndexColor(2), 2.0).into(); let stroke = series_line.as_stroke(&style); - assert_eq!(stroke.color, ColorU8::from_html(b"#2ca02c")); + assert_eq!(stroke.color, Rgba8::from_hex(b"#2ca02c")); let series_line: Stroke<series::AutoColor> = (series::AutoColor, 2.0).into(); let stroke = series_line.as_stroke(&(&style, 2)); - assert_eq!(stroke.color, ColorU8::from_html(b"#2ca02c")); + assert_eq!(stroke.color, Rgba8::from_hex(b"#2ca02c")); - let fixed_color: Stroke<ColorU8> = (ColorU8::from_html(b"#123456"), 2.0).into(); + let fixed_color: Stroke<Rgba8> = (Rgba8::from_hex(b"#123456"), 2.0).into(); let stroke = fixed_color.as_stroke(&()); - assert_eq!(stroke.color, ColorU8::from_html(b"#123456")); + assert_eq!(stroke.color, Rgba8::from_hex(b"#123456")); } } diff --git a/src/style/catppuccin.rs b/src/style/catppuccin.rs index 7964e5f..2531aec 100644 --- a/src/style/catppuccin.rs +++ b/src/style/catppuccin.rs @@ -1,5 +1,5 @@ //! Catppuccin theme implementation -use crate::{ColorU8, style}; +use crate::{Rgba8, style}; /// Catppuccin Latte theme #[derive(Debug, Clone, Copy)] @@ -18,32 +18,32 @@ pub struct Macchiato; pub struct Mocha; pub trait Flavors { - const ROSEWATER: ColorU8; - const FLAMINGO: ColorU8; - const PINK: ColorU8; - const MAUVE: ColorU8; - const RED: ColorU8; - const MAROON: ColorU8; - const PEACH: ColorU8; - const YELLOW: ColorU8; - const GREEN: ColorU8; - const TEAL: ColorU8; - const SKY: ColorU8; - const SAPPHIRE: ColorU8; - const BLUE: ColorU8; - const LAVENDER: ColorU8; - const TEXT: ColorU8; - const _SUBTEXT1: ColorU8; - const _SUBTEXT0: ColorU8; - const OVERLAY2: ColorU8; - const _OVERLAY1: ColorU8; - const _OVERLAY0: ColorU8; - const SURFACE2: ColorU8; - const _SURFACE1: ColorU8; - const SURFACE0: ColorU8; - const BASE: ColorU8; - const _MANTLE: ColorU8; - const _CRUST: ColorU8; + const ROSEWATER: Rgba8; + const FLAMINGO: Rgba8; + const PINK: Rgba8; + const MAUVE: Rgba8; + const RED: Rgba8; + const MAROON: Rgba8; + const PEACH: Rgba8; + const YELLOW: Rgba8; + const GREEN: Rgba8; + const TEAL: Rgba8; + const SKY: Rgba8; + const SAPPHIRE: Rgba8; + const BLUE: Rgba8; + const LAVENDER: Rgba8; + const TEXT: Rgba8; + const _SUBTEXT1: Rgba8; + const _SUBTEXT0: Rgba8; + const OVERLAY2: Rgba8; + const _OVERLAY1: Rgba8; + const _OVERLAY0: Rgba8; + const SURFACE2: Rgba8; + const _SURFACE1: Rgba8; + const SURFACE0: Rgba8; + const BASE: Rgba8; + const _MANTLE: Rgba8; + const _CRUST: Rgba8; } pub const fn theme_palette<F>() -> style::theme::ThemePalette @@ -59,7 +59,7 @@ where } } -pub const fn series_colors<F>() -> &'static [ColorU8] +pub const fn series_colors<F>() -> &'static [Rgba8] where F: Flavors, { @@ -82,117 +82,117 @@ where } impl Flavors for Latte { - const ROSEWATER: ColorU8 = ColorU8::from_html(b"#dc8a78"); - const FLAMINGO: ColorU8 = ColorU8::from_html(b"#dd7878"); - const PINK: ColorU8 = ColorU8::from_html(b"#ea76cb"); - const MAUVE: ColorU8 = ColorU8::from_html(b"#8839ef"); - const RED: ColorU8 = ColorU8::from_html(b"#d20f39"); - const MAROON: ColorU8 = ColorU8::from_html(b"#e64553"); - const PEACH: ColorU8 = ColorU8::from_html(b"#fe640b"); - const YELLOW: ColorU8 = ColorU8::from_html(b"#df8e1d"); - const GREEN: ColorU8 = ColorU8::from_html(b"#40a02b"); - const TEAL: ColorU8 = ColorU8::from_html(b"#179299"); - const SKY: ColorU8 = ColorU8::from_html(b"#04a5e5"); - const SAPPHIRE: ColorU8 = ColorU8::from_html(b"#209fb5"); - const BLUE: ColorU8 = ColorU8::from_html(b"#1e66f5"); - const LAVENDER: ColorU8 = ColorU8::from_html(b"#7287fd"); - const TEXT: ColorU8 = ColorU8::from_html(b"#4c4f69"); - const _SUBTEXT1: ColorU8 = ColorU8::from_html(b"#5c5f77"); - const _SUBTEXT0: ColorU8 = ColorU8::from_html(b"#6c6f85"); - const OVERLAY2: ColorU8 = ColorU8::from_html(b"#7c7f93"); - const _OVERLAY1: ColorU8 = ColorU8::from_html(b"#9ca0b0"); - const _OVERLAY0: ColorU8 = ColorU8::from_html(b"#c6c8d1"); - const SURFACE2: ColorU8 = ColorU8::from_html(b"#dfdfe0"); - const _SURFACE1: ColorU8 = ColorU8::from_html(b"#e8e8e8"); - const SURFACE0: ColorU8 = ColorU8::from_html(b"#f5f5f5"); - const BASE: ColorU8 = ColorU8::from_html(b"#eff1f5"); - const _MANTLE: ColorU8 = ColorU8::from_html(b"#e6e9ef"); - const _CRUST: ColorU8 = ColorU8::from_html(b"#dce0e8"); + const ROSEWATER: Rgba8 = Rgba8::from_hex(b"#dc8a78"); + const FLAMINGO: Rgba8 = Rgba8::from_hex(b"#dd7878"); + const PINK: Rgba8 = Rgba8::from_hex(b"#ea76cb"); + const MAUVE: Rgba8 = Rgba8::from_hex(b"#8839ef"); + const RED: Rgba8 = Rgba8::from_hex(b"#d20f39"); + const MAROON: Rgba8 = Rgba8::from_hex(b"#e64553"); + const PEACH: Rgba8 = Rgba8::from_hex(b"#fe640b"); + const YELLOW: Rgba8 = Rgba8::from_hex(b"#df8e1d"); + const GREEN: Rgba8 = Rgba8::from_hex(b"#40a02b"); + const TEAL: Rgba8 = Rgba8::from_hex(b"#179299"); + const SKY: Rgba8 = Rgba8::from_hex(b"#04a5e5"); + const SAPPHIRE: Rgba8 = Rgba8::from_hex(b"#209fb5"); + const BLUE: Rgba8 = Rgba8::from_hex(b"#1e66f5"); + const LAVENDER: Rgba8 = Rgba8::from_hex(b"#7287fd"); + const TEXT: Rgba8 = Rgba8::from_hex(b"#4c4f69"); + const _SUBTEXT1: Rgba8 = Rgba8::from_hex(b"#5c5f77"); + const _SUBTEXT0: Rgba8 = Rgba8::from_hex(b"#6c6f85"); + const OVERLAY2: Rgba8 = Rgba8::from_hex(b"#7c7f93"); + const _OVERLAY1: Rgba8 = Rgba8::from_hex(b"#9ca0b0"); + const _OVERLAY0: Rgba8 = Rgba8::from_hex(b"#c6c8d1"); + const SURFACE2: Rgba8 = Rgba8::from_hex(b"#dfdfe0"); + const _SURFACE1: Rgba8 = Rgba8::from_hex(b"#e8e8e8"); + const SURFACE0: Rgba8 = Rgba8::from_hex(b"#f5f5f5"); + const BASE: Rgba8 = Rgba8::from_hex(b"#eff1f5"); + const _MANTLE: Rgba8 = Rgba8::from_hex(b"#e6e9ef"); + const _CRUST: Rgba8 = Rgba8::from_hex(b"#dce0e8"); } impl Flavors for Frappe { - const ROSEWATER: ColorU8 = ColorU8::from_html(b"#f2d5cf"); - const FLAMINGO: ColorU8 = ColorU8::from_html(b"#eebebe"); - const PINK: ColorU8 = ColorU8::from_html(b"#f4b8e4"); - const MAUVE: ColorU8 = ColorU8::from_html(b"#ca9ee6"); - const RED: ColorU8 = ColorU8::from_html(b"#e78284"); - const MAROON: ColorU8 = ColorU8::from_html(b"#ea999c"); - const PEACH: ColorU8 = ColorU8::from_html(b"#ef9f76"); - const YELLOW: ColorU8 = ColorU8::from_html(b"#e5c890"); - const GREEN: ColorU8 = ColorU8::from_html(b"#a6d189"); - const TEAL: ColorU8 = ColorU8::from_html(b"#81c8be"); - const SKY: ColorU8 = ColorU8::from_html(b"#99d1db"); - const SAPPHIRE: ColorU8 = ColorU8::from_html(b"#85c1dc"); - const BLUE: ColorU8 = ColorU8::from_html(b"#8caaee"); - const LAVENDER: ColorU8 = ColorU8::from_html(b"#babbf1"); - const TEXT: ColorU8 = ColorU8::from_html(b"#c6d0f5"); - const _SUBTEXT1: ColorU8 = ColorU8::from_html(b"#b5bfe2"); - const _SUBTEXT0: ColorU8 = ColorU8::from_html(b"#a5adce"); - const OVERLAY2: ColorU8 = ColorU8::from_html(b"#949cbb"); - const _OVERLAY1: ColorU8 = ColorU8::from_html(b"#838ba7"); - const _OVERLAY0: ColorU8 = ColorU8::from_html(b"#737994"); - const SURFACE2: ColorU8 = ColorU8::from_html(b"#626880"); - const _SURFACE1: ColorU8 = ColorU8::from_html(b"#51576d"); - const SURFACE0: ColorU8 = ColorU8::from_html(b"#414559"); - const BASE: ColorU8 = ColorU8::from_html(b"#303446"); - const _MANTLE: ColorU8 = ColorU8::from_html(b"#292c36"); - const _CRUST: ColorU8 = ColorU8::from_html(b"#232634"); + const ROSEWATER: Rgba8 = Rgba8::from_hex(b"#f2d5cf"); + const FLAMINGO: Rgba8 = Rgba8::from_hex(b"#eebebe"); + const PINK: Rgba8 = Rgba8::from_hex(b"#f4b8e4"); + const MAUVE: Rgba8 = Rgba8::from_hex(b"#ca9ee6"); + const RED: Rgba8 = Rgba8::from_hex(b"#e78284"); + const MAROON: Rgba8 = Rgba8::from_hex(b"#ea999c"); + const PEACH: Rgba8 = Rgba8::from_hex(b"#ef9f76"); + const YELLOW: Rgba8 = Rgba8::from_hex(b"#e5c890"); + const GREEN: Rgba8 = Rgba8::from_hex(b"#a6d189"); + const TEAL: Rgba8 = Rgba8::from_hex(b"#81c8be"); + const SKY: Rgba8 = Rgba8::from_hex(b"#99d1db"); + const SAPPHIRE: Rgba8 = Rgba8::from_hex(b"#85c1dc"); + const BLUE: Rgba8 = Rgba8::from_hex(b"#8caaee"); + const LAVENDER: Rgba8 = Rgba8::from_hex(b"#babbf1"); + const TEXT: Rgba8 = Rgba8::from_hex(b"#c6d0f5"); + const _SUBTEXT1: Rgba8 = Rgba8::from_hex(b"#b5bfe2"); + const _SUBTEXT0: Rgba8 = Rgba8::from_hex(b"#a5adce"); + const OVERLAY2: Rgba8 = Rgba8::from_hex(b"#949cbb"); + const _OVERLAY1: Rgba8 = Rgba8::from_hex(b"#838ba7"); + const _OVERLAY0: Rgba8 = Rgba8::from_hex(b"#737994"); + const SURFACE2: Rgba8 = Rgba8::from_hex(b"#626880"); + const _SURFACE1: Rgba8 = Rgba8::from_hex(b"#51576d"); + const SURFACE0: Rgba8 = Rgba8::from_hex(b"#414559"); + const BASE: Rgba8 = Rgba8::from_hex(b"#303446"); + const _MANTLE: Rgba8 = Rgba8::from_hex(b"#292c36"); + const _CRUST: Rgba8 = Rgba8::from_hex(b"#232634"); } impl Flavors for Macchiato { - const ROSEWATER: ColorU8 = ColorU8::from_html(b"#f4dbd6"); - const FLAMINGO: ColorU8 = ColorU8::from_html(b"#f0c6c6"); - const PINK: ColorU8 = ColorU8::from_html(b"#f5bde6"); - const MAUVE: ColorU8 = ColorU8::from_html(b"#c6a0f6"); - const RED: ColorU8 = ColorU8::from_html(b"#ed8796"); - const MAROON: ColorU8 = ColorU8::from_html(b"#ee99a0"); - const PEACH: ColorU8 = ColorU8::from_html(b"#f5a97f"); - const YELLOW: ColorU8 = ColorU8::from_html(b"#eed49f"); - const GREEN: ColorU8 = ColorU8::from_html(b"#a6da95"); - const TEAL: ColorU8 = ColorU8::from_html(b"#8bd5ca"); - const SKY: ColorU8 = ColorU8::from_html(b"#91d7e3"); - const SAPPHIRE: ColorU8 = ColorU8::from_html(b"#7dc4e4"); - const BLUE: ColorU8 = ColorU8::from_html(b"#8aadf4"); - const LAVENDER: ColorU8 = ColorU8::from_html(b"#b7bdf8"); - const TEXT: ColorU8 = ColorU8::from_html(b"#cad3f5"); - const _SUBTEXT1: ColorU8 = ColorU8::from_html(b"#b8c0e0"); - const _SUBTEXT0: ColorU8 = ColorU8::from_html(b"#a5adcb"); - const OVERLAY2: ColorU8 = ColorU8::from_html(b"#939ab7"); - const _OVERLAY1: ColorU8 = ColorU8::from_html(b"#8087a2"); - const _OVERLAY0: ColorU8 = ColorU8::from_html(b"#6e738d"); - const SURFACE2: ColorU8 = ColorU8::from_html(b"#5b6078"); - const _SURFACE1: ColorU8 = ColorU8::from_html(b"#494d64"); - const SURFACE0: ColorU8 = ColorU8::from_html(b"#363a4f"); - const BASE: ColorU8 = ColorU8::from_html(b"#24273a"); - const _MANTLE: ColorU8 = ColorU8::from_html(b"#1e2030"); - const _CRUST: ColorU8 = ColorU8::from_html(b"#181926"); + const ROSEWATER: Rgba8 = Rgba8::from_hex(b"#f4dbd6"); + const FLAMINGO: Rgba8 = Rgba8::from_hex(b"#f0c6c6"); + const PINK: Rgba8 = Rgba8::from_hex(b"#f5bde6"); + const MAUVE: Rgba8 = Rgba8::from_hex(b"#c6a0f6"); + const RED: Rgba8 = Rgba8::from_hex(b"#ed8796"); + const MAROON: Rgba8 = Rgba8::from_hex(b"#ee99a0"); + const PEACH: Rgba8 = Rgba8::from_hex(b"#f5a97f"); + const YELLOW: Rgba8 = Rgba8::from_hex(b"#eed49f"); + const GREEN: Rgba8 = Rgba8::from_hex(b"#a6da95"); + const TEAL: Rgba8 = Rgba8::from_hex(b"#8bd5ca"); + const SKY: Rgba8 = Rgba8::from_hex(b"#91d7e3"); + const SAPPHIRE: Rgba8 = Rgba8::from_hex(b"#7dc4e4"); + const BLUE: Rgba8 = Rgba8::from_hex(b"#8aadf4"); + const LAVENDER: Rgba8 = Rgba8::from_hex(b"#b7bdf8"); + const TEXT: Rgba8 = Rgba8::from_hex(b"#cad3f5"); + const _SUBTEXT1: Rgba8 = Rgba8::from_hex(b"#b8c0e0"); + const _SUBTEXT0: Rgba8 = Rgba8::from_hex(b"#a5adcb"); + const OVERLAY2: Rgba8 = Rgba8::from_hex(b"#939ab7"); + const _OVERLAY1: Rgba8 = Rgba8::from_hex(b"#8087a2"); + const _OVERLAY0: Rgba8 = Rgba8::from_hex(b"#6e738d"); + const SURFACE2: Rgba8 = Rgba8::from_hex(b"#5b6078"); + const _SURFACE1: Rgba8 = Rgba8::from_hex(b"#494d64"); + const SURFACE0: Rgba8 = Rgba8::from_hex(b"#363a4f"); + const BASE: Rgba8 = Rgba8::from_hex(b"#24273a"); + const _MANTLE: Rgba8 = Rgba8::from_hex(b"#1e2030"); + const _CRUST: Rgba8 = Rgba8::from_hex(b"#181926"); } impl Flavors for Mocha { - const ROSEWATER: ColorU8 = ColorU8::from_html(b"#f5e0dc"); - const FLAMINGO: ColorU8 = ColorU8::from_html(b"#f2cdcd"); - const PINK: ColorU8 = ColorU8::from_html(b"#f5c2e7"); - const MAUVE: ColorU8 = ColorU8::from_html(b"#cba6f7"); - const RED: ColorU8 = ColorU8::from_html(b"#f38ba8"); - const MAROON: ColorU8 = ColorU8::from_html(b"#eba0ac"); - const PEACH: ColorU8 = ColorU8::from_html(b"#fab387"); - const YELLOW: ColorU8 = ColorU8::from_html(b"#f9e2af"); - const GREEN: ColorU8 = ColorU8::from_html(b"#a6e3a1"); - const TEAL: ColorU8 = ColorU8::from_html(b"#94e2d5"); - const SKY: ColorU8 = ColorU8::from_html(b"#89dceb"); - const SAPPHIRE: ColorU8 = ColorU8::from_html(b"#74c7ec"); - const BLUE: ColorU8 = ColorU8::from_html(b"#89b4fa"); - const LAVENDER: ColorU8 = ColorU8::from_html(b"#b4befe"); - const TEXT: ColorU8 = ColorU8::from_html(b"#cdd6f4"); - const _SUBTEXT1: ColorU8 = ColorU8::from_html(b"#bac2de"); - const _SUBTEXT0: ColorU8 = ColorU8::from_html(b"#a6adc8"); - const OVERLAY2: ColorU8 = ColorU8::from_html(b"#9399b2"); - const _OVERLAY1: ColorU8 = ColorU8::from_html(b"#7f849c"); - const _OVERLAY0: ColorU8 = ColorU8::from_html(b"#6c7086"); - const SURFACE2: ColorU8 = ColorU8::from_html(b"#585b70"); - const _SURFACE1: ColorU8 = ColorU8::from_html(b"#45475a"); - const SURFACE0: ColorU8 = ColorU8::from_html(b"#313244"); - const BASE: ColorU8 = ColorU8::from_html(b"#1e1e2e"); - const _MANTLE: ColorU8 = ColorU8::from_html(b"#181825"); - const _CRUST: ColorU8 = ColorU8::from_html(b"#11111b"); + const ROSEWATER: Rgba8 = Rgba8::from_hex(b"#f5e0dc"); + const FLAMINGO: Rgba8 = Rgba8::from_hex(b"#f2cdcd"); + const PINK: Rgba8 = Rgba8::from_hex(b"#f5c2e7"); + const MAUVE: Rgba8 = Rgba8::from_hex(b"#cba6f7"); + const RED: Rgba8 = Rgba8::from_hex(b"#f38ba8"); + const MAROON: Rgba8 = Rgba8::from_hex(b"#eba0ac"); + const PEACH: Rgba8 = Rgba8::from_hex(b"#fab387"); + const YELLOW: Rgba8 = Rgba8::from_hex(b"#f9e2af"); + const GREEN: Rgba8 = Rgba8::from_hex(b"#a6e3a1"); + const TEAL: Rgba8 = Rgba8::from_hex(b"#94e2d5"); + const SKY: Rgba8 = Rgba8::from_hex(b"#89dceb"); + const SAPPHIRE: Rgba8 = Rgba8::from_hex(b"#74c7ec"); + const BLUE: Rgba8 = Rgba8::from_hex(b"#89b4fa"); + const LAVENDER: Rgba8 = Rgba8::from_hex(b"#b4befe"); + const TEXT: Rgba8 = Rgba8::from_hex(b"#cdd6f4"); + const _SUBTEXT1: Rgba8 = Rgba8::from_hex(b"#bac2de"); + const _SUBTEXT0: Rgba8 = Rgba8::from_hex(b"#a6adc8"); + const OVERLAY2: Rgba8 = Rgba8::from_hex(b"#9399b2"); + const _OVERLAY1: Rgba8 = Rgba8::from_hex(b"#7f849c"); + const _OVERLAY0: Rgba8 = Rgba8::from_hex(b"#6c7086"); + const SURFACE2: Rgba8 = Rgba8::from_hex(b"#585b70"); + const _SURFACE1: Rgba8 = Rgba8::from_hex(b"#45475a"); + const SURFACE0: Rgba8 = Rgba8::from_hex(b"#313244"); + const BASE: Rgba8 = Rgba8::from_hex(b"#1e1e2e"); + const _MANTLE: Rgba8 = Rgba8::from_hex(b"#181825"); + const _CRUST: Rgba8 = Rgba8::from_hex(b"#11111b"); } diff --git a/src/style/defaults.rs b/src/style/defaults.rs index 0efd912..dbd03c6 100644 --- a/src/style/defaults.rs +++ b/src/style/defaults.rs @@ -20,6 +20,11 @@ pub const LEGEND_H_SPACING: f32 = 16.0; pub const LEGEND_V_SPACING: f32 = 10.0; pub const LEGEND_MARGIN: f32 = 12.0; +pub const COLORBAR_WIDTH: f32 = 20.0; +pub const COLORBAR_TITLE_FONT_SIZE: f32 = 16.0; +pub const COLORBAR_TICKS_FONT_SIZE: f32 = 12.0; +pub const COLORBAR_MARGIN: f32 = LEGEND_MARGIN; + pub const PLOT_XY_AUTO_INSETS: geom::Padding = geom::Padding::Even(20.0); pub const PLOT_VER_BARS_AUTO_INSETS: geom::Padding = geom::Padding::Custom { t: 20.0, diff --git a/src/style/series.rs b/src/style/series.rs index 20a8a0d..4629c3f 100644 --- a/src/style/series.rs +++ b/src/style/series.rs @@ -2,7 +2,7 @@ * This module deals with colors and style of data series. */ use crate::style::{self, catppuccin, defaults}; -use crate::{ColorU8, ResolveColor}; +use crate::{ResolveColor, Rgba8}; /// A palette for data series. /// It provides ordered colors for series in a figure. @@ -30,12 +30,12 @@ pub enum Palette { /// Catppuccin Latte palette CatppuccinLatte, /// A custom palette - Custom(Vec<ColorU8>), + Custom(Vec<Rgba8>), } impl Palette { /// Get the colors in the palette - pub const fn colors(&self) -> &[ColorU8] { + pub const fn colors(&self) -> &[Rgba8] { match self { Palette::Black => palettes::BLACK, Palette::Standard => palettes::STANDARD, @@ -56,7 +56,7 @@ impl Palette { } /// Get a color from the palette by its index - pub const fn get(&self, col: IndexColor) -> ColorU8 { + pub const fn get(&self, col: IndexColor) -> Rgba8 { self.colors()[col.0 % self.len()] } } @@ -82,7 +82,7 @@ pub enum Color { /// Color from the palette by index Index(IndexColor), /// Fixed RGB color - Fixed(ColorU8), + Fixed(Rgba8), } impl From<IndexColor> for Color { @@ -97,8 +97,8 @@ impl From<AutoColor> for Color { } } -impl From<ColorU8> for Color { - fn from(color: ColorU8) -> Self { +impl From<Rgba8> for Color { + fn from(color: Rgba8) -> Self { Color::Fixed(color) } } @@ -106,19 +106,19 @@ impl From<ColorU8> for Color { impl style::Color for Color {} impl ResolveColor<IndexColor> for Palette { - fn resolve_color(&self, col: &IndexColor) -> ColorU8 { + fn resolve_color(&self, col: &IndexColor) -> Rgba8 { self.get(*col) } } impl ResolveColor<AutoColor> for (&Palette, usize) { - fn resolve_color(&self, _col: &AutoColor) -> ColorU8 { + fn resolve_color(&self, _col: &AutoColor) -> Rgba8 { self.0.get(IndexColor(self.1)) } } impl ResolveColor<Color> for (&Palette, usize) { - fn resolve_color(&self, col: &Color) -> ColorU8 { + fn resolve_color(&self, col: &Color) -> Rgba8 { match col { Color::Auto => self.0.get(IndexColor(self.1)), Color::Index(idx) => self.0.get(*idx), @@ -141,8 +141,8 @@ impl Default for Stroke { } } -impl From<ColorU8> for Stroke { - fn from(color: ColorU8) -> Self { +impl From<Rgba8> for Stroke { + fn from(color: Rgba8) -> Self { Stroke { color: color.into(), width: defaults::SERIES_LINE_WIDTH, @@ -155,8 +155,8 @@ impl From<ColorU8> for Stroke { /// Fill style for theme elements pub type Fill = style::Fill<Color>; -impl From<ColorU8> for Fill { - fn from(color: ColorU8) -> Self { +impl From<Rgba8> for Fill { + fn from(color: Rgba8) -> Self { Fill::Solid { color: color.into(), opacity: None, @@ -167,57 +167,57 @@ impl From<ColorU8> for Fill { /// Marker style for theme elements pub type Marker = style::Marker<Color>; -impl From<ColorU8> for Marker { - fn from(color: ColorU8) -> Self { +impl From<Rgba8> for Marker { + fn from(color: Rgba8) -> Self { Marker::new_with_color(color.into()) } } /// Types for built-in and custom palettes mod palettes { - use crate::ColorU8; - - pub const BLACK: &[ColorU8] = &[ColorU8::from_html(b"#000000")]; - pub const STANDARD: &[ColorU8] = &[ - ColorU8::from_html(b"#1f77b4"), // blue - ColorU8::from_html(b"#ff7f0e"), // orange - ColorU8::from_html(b"#2ca02c"), // green - ColorU8::from_html(b"#d62728"), // red - ColorU8::from_html(b"#9467bd"), // purple - ColorU8::from_html(b"#8c564b"), // brown - ColorU8::from_html(b"#e377c2"), // pink - ColorU8::from_html(b"#7f7f7f"), // gray - ColorU8::from_html(b"#bcbd22"), // olive - ColorU8::from_html(b"#17becf"), // cyan + use crate::Rgba8; + + pub const BLACK: &[Rgba8] = &[Rgba8::from_hex(b"#000000")]; + pub const STANDARD: &[Rgba8] = &[ + Rgba8::from_hex(b"#1f77b4"), // blue + Rgba8::from_hex(b"#ff7f0e"), // orange + Rgba8::from_hex(b"#2ca02c"), // green + Rgba8::from_hex(b"#d62728"), // red + Rgba8::from_hex(b"#9467bd"), // purple + Rgba8::from_hex(b"#8c564b"), // brown + Rgba8::from_hex(b"#e377c2"), // pink + Rgba8::from_hex(b"#7f7f7f"), // gray + Rgba8::from_hex(b"#bcbd22"), // olive + Rgba8::from_hex(b"#17becf"), // cyan ]; - pub const PASTEL: &[ColorU8] = &[ - ColorU8::from_html(b"#aec7e8"), // light blue - ColorU8::from_html(b"#ffbb78"), // light orange - ColorU8::from_html(b"#98df8a"), // light green - ColorU8::from_html(b"#ff9896"), // light red - ColorU8::from_html(b"#c5b0d5"), // light purple - ColorU8::from_html(b"#c49c94"), // light brown - ColorU8::from_html(b"#f7b6d2"), // light pink - ColorU8::from_html(b"#c7c7c7"), // light gray - ColorU8::from_html(b"#dbdb8d"), // light olive - ColorU8::from_html(b"#9edae5"), // light cyan + pub const PASTEL: &[Rgba8] = &[ + Rgba8::from_hex(b"#aec7e8"), // light blue + Rgba8::from_hex(b"#ffbb78"), // light orange + Rgba8::from_hex(b"#98df8a"), // light green + Rgba8::from_hex(b"#ff9896"), // light red + Rgba8::from_hex(b"#c5b0d5"), // light purple + Rgba8::from_hex(b"#c49c94"), // light brown + Rgba8::from_hex(b"#f7b6d2"), // light pink + Rgba8::from_hex(b"#c7c7c7"), // light gray + Rgba8::from_hex(b"#dbdb8d"), // light olive + Rgba8::from_hex(b"#9edae5"), // light cyan ]; - pub const TOL_BRIGHT: &[ColorU8] = &[ - ColorU8::from_html(b"#4477AA"), // blue - ColorU8::from_html(b"#EE6677"), // red - ColorU8::from_html(b"#228833"), // green - ColorU8::from_html(b"#CCBB44"), // yellow - ColorU8::from_html(b"#66CCEE"), // cyan - ColorU8::from_html(b"#AA3377"), // purple - ColorU8::from_html(b"#BBBBBB"), // gray + pub const TOL_BRIGHT: &[Rgba8] = &[ + Rgba8::from_hex(b"#4477AA"), // blue + Rgba8::from_hex(b"#EE6677"), // red + Rgba8::from_hex(b"#228833"), // green + Rgba8::from_hex(b"#CCBB44"), // yellow + Rgba8::from_hex(b"#66CCEE"), // cyan + Rgba8::from_hex(b"#AA3377"), // purple + Rgba8::from_hex(b"#BBBBBB"), // gray ]; - pub const OKABE_ITO: &[ColorU8] = &[ - ColorU8::from_html(b"#E69F00"), // orange - ColorU8::from_html(b"#56B4E9"), // sky blue - ColorU8::from_html(b"#009E73"), // bluish green - ColorU8::from_html(b"#F0E442"), // yellow - ColorU8::from_html(b"#0072B2"), // blue - ColorU8::from_html(b"#D55E00"), // vermillion - ColorU8::from_html(b"#CC79A7"), // reddish purple + pub const OKABE_ITO: &[Rgba8] = &[ + Rgba8::from_hex(b"#E69F00"), // orange + Rgba8::from_hex(b"#56B4E9"), // sky blue + Rgba8::from_hex(b"#009E73"), // bluish green + Rgba8::from_hex(b"#F0E442"), // yellow + Rgba8::from_hex(b"#0072B2"), // blue + Rgba8::from_hex(b"#D55E00"), // vermillion + Rgba8::from_hex(b"#CC79A7"), // reddish purple ]; } diff --git a/src/style/theme.rs b/src/style/theme.rs index 91394a5..dbbc213 100644 --- a/src/style/theme.rs +++ b/src/style/theme.rs @@ -1,6 +1,6 @@ //! Theme definitions and implementations -use crate::color::{self, ColorU8}; +use crate::color::{self, Rgb8, Rgba8}; use crate::style::catppuccin; use crate::{style, text}; @@ -26,27 +26,27 @@ pub enum Theme { impl Theme { /// Get the background color of the theme - pub const fn background(&self) -> ColorU8 { + pub const fn background(&self) -> Rgba8 { self.palette().background } /// Get the foreground color of the theme - pub const fn foreground(&self) -> ColorU8 { + pub const fn foreground(&self) -> Rgba8 { self.palette().foreground } /// Get the grid line color of the theme - pub const fn grid(&self) -> ColorU8 { + pub const fn grid(&self) -> Rgba8 { self.palette().grid } /// Get the legend background fill color of the theme - pub const fn legend_fill(&self) -> ColorU8 { + pub const fn legend_fill(&self) -> Rgba8 { self.palette().legend_fill } /// Get the legend border color of the theme - pub const fn legend_border(&self) -> ColorU8 { + pub const fn legend_border(&self) -> Rgba8 { self.palette().legend_border } @@ -74,15 +74,15 @@ impl Theme { #[derive(Debug, Clone, Copy, PartialEq)] pub struct ThemePalette { /// Background color - pub background: ColorU8, + pub background: Rgba8, /// Foreground color - pub foreground: ColorU8, + pub foreground: Rgba8, /// Grid line color - pub grid: ColorU8, + pub grid: Rgba8, /// Legend background fill color - pub legend_fill: ColorU8, + pub legend_fill: Rgba8, /// Legend border color - pub legend_border: ColorU8, + pub legend_border: Rgba8, } impl ThemePalette { @@ -90,17 +90,17 @@ impl ThemePalette { pub const LIGHT: Self = Self { background: color::WHITE, foreground: color::BLACK, - grid: ColorU8::from_html(b"#808080").with_opacity(0.6), - legend_fill: color::WHITE.with_opacity(0.5), + grid: Rgba8::from_hex(b"#808080"), + legend_fill: color::WHITE, legend_border: color::BLACK, }; /// The dark built-in theme palette pub const DARK: Self = Self { - background: ColorU8::from_html(b"#1e1e2e"), + background: Rgba8::from_hex(b"#1e1e2e"), foreground: color::WHITE, - grid: ColorU8::from_html(b"#c0c0c0").with_opacity(0.6), - legend_fill: ColorU8::from_html(b"#1e1e2e").with_opacity(0.5), + grid: Rgba8::from_hex(b"#c0c0c0"), + legend_fill: Rgba8::from_hex(b"#1e1e2e"), legend_border: color::WHITE, }; @@ -118,16 +118,16 @@ impl ThemePalette { /// Create a new custom theme from background and foreground colors /// The grid, legend fill and legend border colors are derived automatically. - pub fn new_back_and_fore(background: ColorU8, foreground: ColorU8) -> Self { + pub fn new_back_and_fore(background: Rgba8, foreground: Rgba8) -> Self { let grid = if background.luminance() < 0.5 { // Dark background - ColorU8::from_rgb(192, 192, 192).with_opacity(0.6) + Rgb8::new(192, 192, 192).opaque() } else { // Light background - ColorU8::from_rgb(128, 128, 128).with_opacity(0.6) + Rgb8::new(128, 128, 128).opaque() }; - let legend_fill = background.with_opacity(0.5); + let legend_fill = background; let legend_border = foreground; Self { @@ -172,7 +172,7 @@ impl std::str::FromStr for Col { } impl color::ResolveColor<Col> for Theme { - fn resolve_color(&self, col: &Col) -> ColorU8 { + fn resolve_color(&self, col: &Col) -> Rgba8 { match col { Col::Background => self.background(), Col::Foreground => self.foreground(), @@ -189,7 +189,7 @@ pub enum Color { /// A color from the theme Theme(Col), /// A fixed RGB color - Fixed(ColorU8), + Fixed(Rgba8), } impl From<Col> for Color { @@ -198,8 +198,8 @@ impl From<Col> for Color { } } -impl From<ColorU8> for Color { - fn from(color: ColorU8) -> Self { +impl From<Rgba8> for Color { + fn from(color: Rgba8) -> Self { Color::Fixed(color) } } @@ -207,13 +207,13 @@ impl From<ColorU8> for Color { impl super::Color for Color {} impl std::str::FromStr for Color { - type Err = <ColorU8 as std::str::FromStr>::Err; + type Err = <Rgba8 as std::str::FromStr>::Err; fn from_str(s: &str) -> Result<Self, Self::Err> { if let Ok(col) = s.parse::<Col>() { Ok(Color::Theme(col)) } else { - let c = s.parse::<ColorU8>()?; + let c = s.parse::<Rgba8>()?; Ok(Color::Fixed(c)) } } @@ -226,7 +226,7 @@ impl text::rich::Foreground for Color { } impl color::ResolveColor<Color> for Theme { - fn resolve_color(&self, col: &Color) -> ColorU8 { + fn resolve_color(&self, col: &Color) -> Rgba8 { match col { Color::Theme(col) => self.resolve_color(col), Color::Fixed(c) => *c, diff --git a/src/utils.rs b/src/utils.rs index 1711041..c890a0d 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -2,7 +2,7 @@ use std::fmt; -use plotive_base::{ColorU8, color}; +use plotive_base::{Rgba8, color}; use crate::des::series; use crate::style; @@ -75,7 +75,7 @@ pub trait MplStyle { impl MplStyle for series::Line { fn with_mpl_style(mut self, mpl_style: &str) -> Result<Self, MplStyleError> { - if let Ok(c) = mpl_style.parse::<color::ColorU8>() { + if let Ok(c) = mpl_style.parse::<color::Rgba8>() { let mut s = self.stroke().clone(); s.color = c.into(); return Ok(self.with_stroke(s)); @@ -157,14 +157,14 @@ impl LineMplStyle { } } ':' => style.set_pattern(style::LinePattern::Dot)?, - 'b' => style.set_color(ColorU8::from_html(b"#0000ff").into())?, - 'g' => style.set_color(ColorU8::from_html(b"#008000").into())?, - 'r' => style.set_color(ColorU8::from_html(b"#ff0000").into())?, - 'c' => style.set_color(ColorU8::from_html(b"#00bfbf").into())?, - 'm' => style.set_color(ColorU8::from_html(b"#bf00bf").into())?, - 'y' => style.set_color(ColorU8::from_html(b"#bfbf00").into())?, - 'k' => style.set_color(ColorU8::from_html(b"#000000").into())?, - 'w' => style.set_color(ColorU8::from_html(b"#ffffff").into())?, + 'b' => style.set_color(Rgba8::from_hex(b"#0000ff").into())?, + 'g' => style.set_color(Rgba8::from_hex(b"#008000").into())?, + 'r' => style.set_color(Rgba8::from_hex(b"#ff0000").into())?, + 'c' => style.set_color(Rgba8::from_hex(b"#00bfbf").into())?, + 'm' => style.set_color(Rgba8::from_hex(b"#bf00bf").into())?, + 'y' => style.set_color(Rgba8::from_hex(b"#bfbf00").into())?, + 'k' => style.set_color(Rgba8::from_hex(b"#000000").into())?, + 'w' => style.set_color(Rgba8::from_hex(b"#ffffff").into())?, 'C' => { let s: usize = mpl_style[i + 1..].parse().map_err(|_| { MplStyleError(format!( diff --git a/svg/src/lib.rs b/svg/src/lib.rs index 78c07fa..12d429b 100644 --- a/svg/src/lib.rs +++ b/svg/src/lib.rs @@ -275,7 +275,7 @@ impl SvgSurface { // let span_txt = &whole_txt[span.start()..span.end()]; // let mut span_node = element::TSpan::new(span_txt); // let paint = span.props().fill().map(|c| { - // render::Paint::Solid(ColorU8::from_rgba( + // render::Paint::Solid(Rgba8::from_rgba( // c.red(), // c.green(), // c.blue(), @@ -349,8 +349,9 @@ where N: Node, { if let Some(render::Paint::Solid(color)) = fill { - node.assign("fill", color.html()); - if let Some(opacity) = color.opacity() { + let (rgb, opacity) = color.split_rgb_opacity(); + node.assign("fill", rgb.html()); + if let Some(opacity) = opacity { node.assign("fill-opacity", opacity); } } else { @@ -363,12 +364,13 @@ where N: Node, { if let Some(stroke) = stroke { - let w = stroke.width; - node.assign("stroke", stroke.color.html()); - node.assign("stroke-width", w); - if let Some(opacity) = stroke.color.opacity() { + let (rgb, opacity) = stroke.color.split_rgb_opacity(); + node.assign("stroke", rgb.html()); + if let Some(opacity) = opacity { node.assign("stroke-opacity", opacity); } + let w = stroke.width; + node.assign("stroke-width", w); match stroke.pattern { render::LinePattern::Solid => (), render::LinePattern::Dash(dash) => { diff --git a/tests/Cargo.toml b/tests/Cargo.toml index 06af53b..c96de2b 100644 --- a/tests/Cargo.toml +++ b/tests/Cargo.toml @@ -15,3 +15,6 @@ plotive-pxl.workspace = true plotive-svg.workspace = true tiny-skia.workspace = true similar = "2.7.0" +rand.workspace = true +rand_distr.workspace = true +rand_chacha.workspace = true diff --git a/tests/refs/colorbar/bottom.png b/tests/refs/colorbar/bottom.png new file mode 100644 index 0000000..8358065 Binary files /dev/null and b/tests/refs/colorbar/bottom.png differ diff --git a/tests/refs/colorbar/bottom.svg b/tests/refs/colorbar/bottom.svg new file mode 100644 index 0000000..85be6fb --- /dev/null +++ b/tests/refs/colorbar/bottom.svg @@ -0,0 +1,404 @@ +<svg height="300" viewBox="0 0 400 300" width="400" xmlns="http://www.w3.org/2000/svg"> +<rect fill="#ffffff" height="100%" width="100%"/> +<clipPath id="plotive-clip1"> +<rect height="203.656" width="360" x="20" y="20"/> +</clipPath> +<g clip-path="url(#plotive-clip1)"> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#54c16a" fill-opacity="0.7019608" stroke="#54c16a" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 228.47182 93.98552)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#3ba97e" fill-opacity="0.7019608" stroke="#3ba97e" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 214.8317 58.74176)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#8fd159" fill-opacity="0.7019608" stroke="#8fd159" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 242.92818 146.19653)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#440154" fill-opacity="0.7019608" stroke="#440154" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 201.02121 112.47543)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#35a282" fill-opacity="0.7019608" stroke="#35a282" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 40 105.80055)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#31778c" fill-opacity="0.7019608" stroke="#31778c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 173.38101 40)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#70cb5f" fill-opacity="0.7019608" stroke="#70cb5f" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 190.30307 175.35294)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#38638b" fill-opacity="0.7019608" stroke="#38638b" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 67.984604 143.92642)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#36698c" fill-opacity="0.7019608" stroke="#36698c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 120.19727 99.394485)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#fde724" fill-opacity="0.7019608" stroke="#fde724" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 258.7989 90.53172)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#33a083" fill-opacity="0.7019608" stroke="#33a083" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 202.37831 101.88791)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#90d159" fill-opacity="0.7019608" stroke="#90d159" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 326.33936 64.689316)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#461c61" fill-opacity="0.7019608" stroke="#461c61" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 360 148.72003)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#61c961" fill-opacity="0.7019608" stroke="#61c961" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 46.978165 203.656)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#279689" fill-opacity="0.7019608" stroke="#279689" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 168.67339 52.01378)"/> +</g> +<rect fill="none" height="203.656" stroke="#000000" stroke-width="1" width="360" x="20" y="20"/> +<path d="M20,235.656 L20,255.656 L20.5,255.656 L20.5,235.656" fill="#440154" stroke="none"/> +<path d="M20.5,235.656 L20.5,255.656 L21.5,255.656 L21.5,235.656" fill="#440255" stroke="none"/> +<path d="M21.5,235.656 L21.5,255.656 L22.5,255.656 L22.5,235.656" fill="#440455" stroke="none"/> +<path d="M22.5,235.656 L22.5,255.656 L23.5,255.656 L23.5,235.656" fill="#440556" stroke="none"/> +<path d="M23.5,235.656 L23.5,255.656 L24.5,255.656 L24.5,235.656" fill="#440756" stroke="none"/> +<path d="M24.5,235.656 L24.5,255.656 L25.5,255.656 L25.5,235.656" fill="#450857" stroke="none"/> +<path d="M25.5,235.656 L25.5,255.656 L26.5,255.656 L26.5,235.656" fill="#450957" stroke="none"/> +<path d="M26.5,235.656 L26.5,255.656 L27.5,255.656 L27.5,235.656" fill="#450b58" stroke="none"/> +<path d="M27.5,235.656 L27.5,255.656 L28.5,255.656 L28.5,235.656" fill="#450c59" stroke="none"/> +<path d="M28.5,235.656 L28.5,255.656 L29.5,255.656 L29.5,235.656" fill="#450e59" stroke="none"/> +<path d="M29.5,235.656 L29.5,255.656 L30.5,255.656 L30.5,235.656" fill="#450f5a" stroke="none"/> +<path d="M30.5,235.656 L30.5,255.656 L31.5,255.656 L31.5,235.656" fill="#45105a" stroke="none"/> +<path d="M31.5,235.656 L31.5,255.656 L32.5,255.656 L32.5,235.656" fill="#45115b" stroke="none"/> +<path d="M32.5,235.656 L32.5,255.656 L33.5,255.656 L33.5,235.656" fill="#45135c" stroke="none"/> +<path d="M33.5,235.656 L33.5,255.656 L34.5,255.656 L34.5,235.656" fill="#45145c" stroke="none"/> +<path d="M34.5,235.656 L34.5,255.656 L35.5,255.656 L35.5,235.656" fill="#45155d" stroke="none"/> +<path d="M35.5,235.656 L35.5,255.656 L36.5,255.656 L36.5,235.656" fill="#45165d" stroke="none"/> +<path d="M36.5,235.656 L36.5,255.656 L37.5,255.656 L37.5,235.656" fill="#45175e" stroke="none"/> +<path d="M37.5,235.656 L37.5,255.656 L38.5,255.656 L38.5,235.656" fill="#46185e" stroke="none"/> +<path d="M38.5,235.656 L38.5,255.656 L39.5,255.656 L39.5,235.656" fill="#46195f" stroke="none"/> +<path d="M39.5,235.656 L39.5,255.656 L40.5,255.656 L40.5,235.656" fill="#461a60" stroke="none"/> +<path d="M40.5,235.656 L40.5,255.656 L41.5,255.656 L41.5,235.656" fill="#461b60" stroke="none"/> +<path d="M41.5,235.656 L41.5,255.656 L42.5,255.656 L42.5,235.656" fill="#461c61" stroke="none"/> +<path d="M42.5,235.656 L42.5,255.656 L43.5,255.656 L43.5,235.656" fill="#461d61" stroke="none"/> +<path d="M43.5,235.656 L43.5,255.656 L44.5,255.656 L44.5,235.656" fill="#461e62" stroke="none"/> +<path d="M44.5,235.656 L44.5,255.656 L45.5,255.656 L45.5,235.656" fill="#461f63" stroke="none"/> +<path d="M45.5,235.656 L45.5,255.656 L46.5,255.656 L46.5,235.656" fill="#461f63" stroke="none"/> +<path d="M46.5,235.656 L46.5,255.656 L47.5,255.656 L47.5,235.656" fill="#462064" stroke="none"/> +<path d="M47.5,235.656 L47.5,255.656 L48.5,255.656 L48.5,235.656" fill="#462164" stroke="none"/> +<path d="M48.5,235.656 L48.5,255.656 L49.5,255.656 L49.5,235.656" fill="#462265" stroke="none"/> +<path d="M49.5,235.656 L49.5,255.656 L50.5,255.656 L50.5,235.656" fill="#462366" stroke="none"/> +<path d="M50.5,235.656 L50.5,255.656 L51.5,255.656 L51.5,235.656" fill="#462466" stroke="none"/> +<path d="M51.5,235.656 L51.5,255.656 L52.5,255.656 L52.5,235.656" fill="#462567" stroke="none"/> +<path d="M52.5,235.656 L52.5,255.656 L53.5,255.656 L53.5,235.656" fill="#462567" stroke="none"/> +<path d="M53.5,235.656 L53.5,255.656 L54.5,255.656 L54.5,235.656" fill="#462668" stroke="none"/> +<path d="M54.5,235.656 L54.5,255.656 L55.5,255.656 L55.5,235.656" fill="#462769" stroke="none"/> +<path d="M55.5,235.656 L55.5,255.656 L56.5,255.656 L56.5,235.656" fill="#462869" stroke="none"/> +<path d="M56.5,235.656 L56.5,255.656 L57.5,255.656 L57.5,235.656" fill="#46296a" stroke="none"/> +<path d="M57.5,235.656 L57.5,255.656 L58.5,255.656 L58.5,235.656" fill="#462a6a" stroke="none"/> +<path d="M58.5,235.656 L58.5,255.656 L59.5,255.656 L59.5,235.656" fill="#462a6b" stroke="none"/> +<path d="M59.5,235.656 L59.5,255.656 L60.5,255.656 L60.5,235.656" fill="#462b6c" stroke="none"/> +<path d="M60.5,235.656 L60.5,255.656 L61.5,255.656 L61.5,235.656" fill="#462c6c" stroke="none"/> +<path d="M61.5,235.656 L61.5,255.656 L62.5,255.656 L62.5,235.656" fill="#452d6d" stroke="none"/> +<path d="M62.5,235.656 L62.5,255.656 L63.5,255.656 L63.5,235.656" fill="#452e6d" stroke="none"/> +<path d="M63.5,235.656 L63.5,255.656 L64.5,255.656 L64.5,235.656" fill="#452e6e" stroke="none"/> +<path d="M64.5,235.656 L64.5,255.656 L65.5,255.656 L65.5,235.656" fill="#452f6f" stroke="none"/> +<path d="M65.5,235.656 L65.5,255.656 L66.5,255.656 L66.5,235.656" fill="#45306f" stroke="none"/> +<path d="M66.5,235.656 L66.5,255.656 L67.5,255.656 L67.5,235.656" fill="#453170" stroke="none"/> +<path d="M67.5,235.656 L67.5,255.656 L68.5,255.656 L68.5,235.656" fill="#453270" stroke="none"/> +<path d="M68.5,235.656 L68.5,255.656 L69.5,255.656 L69.5,235.656" fill="#453271" stroke="none"/> +<path d="M69.5,235.656 L69.5,255.656 L70.5,255.656 L70.5,235.656" fill="#453372" stroke="none"/> +<path d="M70.5,235.656 L70.5,255.656 L71.5,255.656 L71.5,235.656" fill="#453472" stroke="none"/> +<path d="M71.5,235.656 L71.5,255.656 L72.5,255.656 L72.5,235.656" fill="#453573" stroke="none"/> +<path d="M72.5,235.656 L72.5,255.656 L73.5,255.656 L73.5,235.656" fill="#443573" stroke="none"/> +<path d="M73.5,235.656 L73.5,255.656 L74.5,255.656 L74.5,235.656" fill="#443674" stroke="none"/> +<path d="M74.5,235.656 L74.5,255.656 L75.5,255.656 L75.5,235.656" fill="#443775" stroke="none"/> +<path d="M75.5,235.656 L75.5,255.656 L76.5,255.656 L76.5,235.656" fill="#443875" stroke="none"/> +<path d="M76.5,235.656 L76.5,255.656 L77.5,255.656 L77.5,235.656" fill="#443876" stroke="none"/> +<path d="M77.5,235.656 L77.5,255.656 L78.5,255.656 L78.5,235.656" fill="#443976" stroke="none"/> +<path d="M78.5,235.656 L78.5,255.656 L79.5,255.656 L79.5,235.656" fill="#443a77" stroke="none"/> +<path d="M79.5,235.656 L79.5,255.656 L80.5,255.656 L80.5,235.656" fill="#433b78" stroke="none"/> +<path d="M80.5,235.656 L80.5,255.656 L81.5,255.656 L81.5,235.656" fill="#433b78" stroke="none"/> +<path d="M81.5,235.656 L81.5,255.656 L82.5,255.656 L82.5,235.656" fill="#433c79" stroke="none"/> +<path d="M82.5,235.656 L82.5,255.656 L83.5,255.656 L83.5,235.656" fill="#433d79" stroke="none"/> +<path d="M83.5,235.656 L83.5,255.656 L84.5,255.656 L84.5,235.656" fill="#433e7a" stroke="none"/> +<path d="M84.5,235.656 L84.5,255.656 L85.5,255.656 L85.5,235.656" fill="#433f7b" stroke="none"/> +<path d="M85.5,235.656 L85.5,255.656 L86.5,255.656 L86.5,235.656" fill="#423f7b" stroke="none"/> +<path d="M86.5,235.656 L86.5,255.656 L87.5,255.656 L87.5,235.656" fill="#42407c" stroke="none"/> +<path d="M87.5,235.656 L87.5,255.656 L88.5,255.656 L88.5,235.656" fill="#42417c" stroke="none"/> +<path d="M88.5,235.656 L88.5,255.656 L89.5,255.656 L89.5,235.656" fill="#42417d" stroke="none"/> +<path d="M89.5,235.656 L89.5,255.656 L90.5,255.656 L90.5,235.656" fill="#41427e" stroke="none"/> +<path d="M90.5,235.656 L90.5,255.656 L91.5,255.656 L91.5,235.656" fill="#41437e" stroke="none"/> +<path d="M91.5,235.656 L91.5,255.656 L92.5,255.656 L92.5,235.656" fill="#41447f" stroke="none"/> +<path d="M92.5,235.656 L92.5,255.656 L93.5,255.656 L93.5,235.656" fill="#414480" stroke="none"/> +<path d="M93.5,235.656 L93.5,255.656 L94.5,255.656 L94.5,235.656" fill="#404580" stroke="none"/> +<path d="M94.5,235.656 L94.5,255.656 L95.5,255.656 L95.5,235.656" fill="#404681" stroke="none"/> +<path d="M95.5,235.656 L95.5,255.656 L96.5,255.656 L96.5,235.656" fill="#404781" stroke="none"/> +<path d="M96.5,235.656 L96.5,255.656 L97.5,255.656 L97.5,235.656" fill="#404782" stroke="none"/> +<path d="M97.5,235.656 L97.5,255.656 L98.5,255.656 L98.5,235.656" fill="#3f4883" stroke="none"/> +<path d="M98.5,235.656 L98.5,255.656 L99.5,255.656 L99.5,235.656" fill="#3f4983" stroke="none"/> +<path d="M99.5,235.656 L99.5,255.656 L100.5,255.656 L100.5,235.656" fill="#3f4a84" stroke="none"/> +<path d="M100.5,235.656 L100.5,255.656 L101.5,255.656 L101.5,235.656" fill="#3e4a84" stroke="none"/> +<path d="M101.5,235.656 L101.5,255.656 L102.5,255.656 L102.5,235.656" fill="#3e4b85" stroke="none"/> +<path d="M102.5,235.656 L102.5,255.656 L103.5,255.656 L103.5,235.656" fill="#3e4c86" stroke="none"/> +<path d="M103.5,235.656 L103.5,255.656 L104.5,255.656 L104.5,235.656" fill="#3d4d86" stroke="none"/> +<path d="M104.5,235.656 L104.5,255.656 L105.5,255.656 L105.5,235.656" fill="#3d4d87" stroke="none"/> +<path d="M105.5,235.656 L105.5,255.656 L106.5,255.656 L106.5,235.656" fill="#3d4e88" stroke="none"/> +<path d="M106.5,235.656 L106.5,255.656 L107.5,255.656 L107.5,235.656" fill="#3c4f88" stroke="none"/> +<path d="M107.5,235.656 L107.5,255.656 L108.5,255.656 L108.5,235.656" fill="#3c5089" stroke="none"/> +<path d="M108.5,235.656 L108.5,255.656 L109.5,255.656 L109.5,235.656" fill="#3b5089" stroke="none"/> +<path d="M109.5,235.656 L109.5,255.656 L110.5,255.656 L110.5,235.656" fill="#3b518a" stroke="none"/> +<path d="M110.5,235.656 L110.5,255.656 L111.5,255.656 L111.5,235.656" fill="#3b528a" stroke="none"/> +<path d="M111.5,235.656 L111.5,255.656 L112.5,255.656 L112.5,235.656" fill="#3b528a" stroke="none"/> +<path d="M112.5,235.656 L112.5,255.656 L113.5,255.656 L113.5,235.656" fill="#3b538a" stroke="none"/> +<path d="M113.5,235.656 L113.5,255.656 L114.5,255.656 L114.5,235.656" fill="#3b548a" stroke="none"/> +<path d="M114.5,235.656 L114.5,255.656 L115.5,255.656 L115.5,235.656" fill="#3a558a" stroke="none"/> +<path d="M115.5,235.656 L115.5,255.656 L116.5,255.656 L116.5,235.656" fill="#3a558a" stroke="none"/> +<path d="M116.5,235.656 L116.5,255.656 L117.5,255.656 L117.5,235.656" fill="#3a568a" stroke="none"/> +<path d="M117.5,235.656 L117.5,255.656 L118.5,255.656 L118.5,235.656" fill="#3a578a" stroke="none"/> +<path d="M118.5,235.656 L118.5,255.656 L119.5,255.656 L119.5,235.656" fill="#3a578b" stroke="none"/> +<path d="M119.5,235.656 L119.5,255.656 L120.5,255.656 L120.5,235.656" fill="#3a588b" stroke="none"/> +<path d="M120.5,235.656 L120.5,255.656 L121.5,255.656 L121.5,235.656" fill="#3a598b" stroke="none"/> +<path d="M121.5,235.656 L121.5,255.656 L122.5,255.656 L122.5,235.656" fill="#3a5a8b" stroke="none"/> +<path d="M122.5,235.656 L122.5,255.656 L123.5,255.656 L123.5,235.656" fill="#3a5a8b" stroke="none"/> +<path d="M123.5,235.656 L123.5,255.656 L124.5,255.656 L124.5,235.656" fill="#395b8b" stroke="none"/> +<path d="M124.5,235.656 L124.5,255.656 L125.5,255.656 L125.5,235.656" fill="#395c8b" stroke="none"/> +<path d="M125.5,235.656 L125.5,255.656 L126.5,255.656 L126.5,235.656" fill="#395c8b" stroke="none"/> +<path d="M126.5,235.656 L126.5,255.656 L127.5,255.656 L127.5,235.656" fill="#395d8b" stroke="none"/> +<path d="M127.5,235.656 L127.5,255.656 L128.5,255.656 L128.5,235.656" fill="#395e8b" stroke="none"/> +<path d="M128.5,235.656 L128.5,255.656 L129.5,255.656 L129.5,235.656" fill="#395e8b" stroke="none"/> +<path d="M129.5,235.656 L129.5,255.656 L130.5,255.656 L130.5,235.656" fill="#395f8b" stroke="none"/> +<path d="M130.5,235.656 L130.5,255.656 L131.5,255.656 L131.5,235.656" fill="#38608b" stroke="none"/> +<path d="M131.5,235.656 L131.5,255.656 L132.5,255.656 L132.5,235.656" fill="#38618b" stroke="none"/> +<path d="M132.5,235.656 L132.5,255.656 L133.5,255.656 L133.5,235.656" fill="#38618b" stroke="none"/> +<path d="M133.5,235.656 L133.5,255.656 L134.5,255.656 L134.5,235.656" fill="#38628b" stroke="none"/> +<path d="M134.5,235.656 L134.5,255.656 L135.5,255.656 L135.5,235.656" fill="#38638b" stroke="none"/> +<path d="M135.5,235.656 L135.5,255.656 L136.5,255.656 L136.5,235.656" fill="#38638b" stroke="none"/> +<path d="M136.5,235.656 L136.5,255.656 L137.5,255.656 L137.5,235.656" fill="#37648b" stroke="none"/> +<path d="M137.5,235.656 L137.5,255.656 L138.5,255.656 L138.5,235.656" fill="#37658b" stroke="none"/> +<path d="M138.5,235.656 L138.5,255.656 L139.5,255.656 L139.5,235.656" fill="#37658c" stroke="none"/> +<path d="M139.5,235.656 L139.5,255.656 L140.5,255.656 L140.5,235.656" fill="#37668c" stroke="none"/> +<path d="M140.5,235.656 L140.5,255.656 L141.5,255.656 L141.5,235.656" fill="#37678c" stroke="none"/> +<path d="M141.5,235.656 L141.5,255.656 L142.5,255.656 L142.5,235.656" fill="#36688c" stroke="none"/> +<path d="M142.5,235.656 L142.5,255.656 L143.5,255.656 L143.5,235.656" fill="#36688c" stroke="none"/> +<path d="M143.5,235.656 L143.5,255.656 L144.5,255.656 L144.5,235.656" fill="#36698c" stroke="none"/> +<path d="M144.5,235.656 L144.5,255.656 L145.5,255.656 L145.5,235.656" fill="#366a8c" stroke="none"/> +<path d="M145.5,235.656 L145.5,255.656 L146.5,255.656 L146.5,235.656" fill="#366a8c" stroke="none"/> +<path d="M146.5,235.656 L146.5,255.656 L147.5,255.656 L147.5,235.656" fill="#356b8c" stroke="none"/> +<path d="M147.5,235.656 L147.5,255.656 L148.5,255.656 L148.5,235.656" fill="#356c8c" stroke="none"/> +<path d="M148.5,235.656 L148.5,255.656 L149.5,255.656 L149.5,235.656" fill="#356c8c" stroke="none"/> +<path d="M149.5,235.656 L149.5,255.656 L150.5,255.656 L150.5,235.656" fill="#356d8c" stroke="none"/> +<path d="M150.5,235.656 L150.5,255.656 L151.5,255.656 L151.5,235.656" fill="#346e8c" stroke="none"/> +<path d="M151.5,235.656 L151.5,255.656 L152.5,255.656 L152.5,235.656" fill="#346e8c" stroke="none"/> +<path d="M152.5,235.656 L152.5,255.656 L153.5,255.656 L153.5,235.656" fill="#346f8c" stroke="none"/> +<path d="M153.5,235.656 L153.5,255.656 L154.5,255.656 L154.5,235.656" fill="#34708c" stroke="none"/> +<path d="M154.5,235.656 L154.5,255.656 L155.5,255.656 L155.5,235.656" fill="#33708c" stroke="none"/> +<path d="M155.5,235.656 L155.5,255.656 L156.5,255.656 L156.5,235.656" fill="#33718c" stroke="none"/> +<path d="M156.5,235.656 L156.5,255.656 L157.5,255.656 L157.5,235.656" fill="#33728c" stroke="none"/> +<path d="M157.5,235.656 L157.5,255.656 L158.5,255.656 L158.5,235.656" fill="#33728c" stroke="none"/> +<path d="M158.5,235.656 L158.5,255.656 L159.5,255.656 L159.5,235.656" fill="#32738c" stroke="none"/> +<path d="M159.5,235.656 L159.5,255.656 L160.5,255.656 L160.5,235.656" fill="#32748c" stroke="none"/> +<path d="M160.5,235.656 L160.5,255.656 L161.5,255.656 L161.5,235.656" fill="#32758c" stroke="none"/> +<path d="M161.5,235.656 L161.5,255.656 L162.5,255.656 L162.5,235.656" fill="#31758c" stroke="none"/> +<path d="M162.5,235.656 L162.5,255.656 L163.5,255.656 L163.5,235.656" fill="#31768c" stroke="none"/> +<path d="M163.5,235.656 L163.5,255.656 L164.5,255.656 L164.5,235.656" fill="#31778c" stroke="none"/> +<path d="M164.5,235.656 L164.5,255.656 L165.5,255.656 L165.5,235.656" fill="#31778c" stroke="none"/> +<path d="M165.5,235.656 L165.5,255.656 L166.5,255.656 L166.5,235.656" fill="#30788c" stroke="none"/> +<path d="M166.5,235.656 L166.5,255.656 L167.5,255.656 L167.5,235.656" fill="#30798c" stroke="none"/> +<path d="M167.5,235.656 L167.5,255.656 L168.5,255.656 L168.5,235.656" fill="#30798c" stroke="none"/> +<path d="M168.5,235.656 L168.5,255.656 L169.5,255.656 L169.5,235.656" fill="#2f7a8c" stroke="none"/> +<path d="M169.5,235.656 L169.5,255.656 L170.5,255.656 L170.5,235.656" fill="#2f7b8c" stroke="none"/> +<path d="M170.5,235.656 L170.5,255.656 L171.5,255.656 L171.5,235.656" fill="#2f7b8c" stroke="none"/> +<path d="M171.5,235.656 L171.5,255.656 L172.5,255.656 L172.5,235.656" fill="#2e7c8c" stroke="none"/> +<path d="M172.5,235.656 L172.5,255.656 L173.5,255.656 L173.5,235.656" fill="#2e7d8c" stroke="none"/> +<path d="M173.5,235.656 L173.5,255.656 L174.5,255.656 L174.5,235.656" fill="#2d7d8c" stroke="none"/> +<path d="M174.5,235.656 L174.5,255.656 L175.5,255.656 L175.5,235.656" fill="#2d7e8c" stroke="none"/> +<path d="M175.5,235.656 L175.5,255.656 L176.5,255.656 L176.5,235.656" fill="#2d7f8c" stroke="none"/> +<path d="M176.5,235.656 L176.5,255.656 L177.5,255.656 L177.5,235.656" fill="#2c7f8c" stroke="none"/> +<path d="M177.5,235.656 L177.5,255.656 L178.5,255.656 L178.5,235.656" fill="#2c808c" stroke="none"/> +<path d="M178.5,235.656 L178.5,255.656 L179.5,255.656 L179.5,235.656" fill="#2b818c" stroke="none"/> +<path d="M179.5,235.656 L179.5,255.656 L180.5,255.656 L180.5,235.656" fill="#2b818c" stroke="none"/> +<path d="M180.5,235.656 L180.5,255.656 L181.5,255.656 L181.5,235.656" fill="#2b828c" stroke="none"/> +<path d="M181.5,235.656 L181.5,255.656 L182.5,255.656 L182.5,235.656" fill="#2a838c" stroke="none"/> +<path d="M182.5,235.656 L182.5,255.656 L183.5,255.656 L183.5,235.656" fill="#2a838c" stroke="none"/> +<path d="M183.5,235.656 L183.5,255.656 L184.5,255.656 L184.5,235.656" fill="#29848c" stroke="none"/> +<path d="M184.5,235.656 L184.5,255.656 L185.5,255.656 L185.5,235.656" fill="#29858c" stroke="none"/> +<path d="M185.5,235.656 L185.5,255.656 L186.5,255.656 L186.5,235.656" fill="#28868c" stroke="none"/> +<path d="M186.5,235.656 L186.5,255.656 L187.5,255.656 L187.5,235.656" fill="#28868c" stroke="none"/> +<path d="M187.5,235.656 L187.5,255.656 L188.5,255.656 L188.5,235.656" fill="#27878c" stroke="none"/> +<path d="M188.5,235.656 L188.5,255.656 L189.5,255.656 L189.5,235.656" fill="#27888c" stroke="none"/> +<path d="M189.5,235.656 L189.5,255.656 L190.5,255.656 L190.5,235.656" fill="#26888c" stroke="none"/> +<path d="M190.5,235.656 L190.5,255.656 L191.5,255.656 L191.5,235.656" fill="#26898c" stroke="none"/> +<path d="M191.5,235.656 L191.5,255.656 L192.5,255.656 L192.5,235.656" fill="#258a8c" stroke="none"/> +<path d="M192.5,235.656 L192.5,255.656 L193.5,255.656 L193.5,235.656" fill="#258a8c" stroke="none"/> +<path d="M193.5,235.656 L193.5,255.656 L194.5,255.656 L194.5,235.656" fill="#248b8c" stroke="none"/> +<path d="M194.5,235.656 L194.5,255.656 L195.5,255.656 L195.5,235.656" fill="#238c8c" stroke="none"/> +<path d="M195.5,235.656 L195.5,255.656 L196.5,255.656 L196.5,235.656" fill="#238c8c" stroke="none"/> +<path d="M196.5,235.656 L196.5,255.656 L197.5,255.656 L197.5,235.656" fill="#228d8c" stroke="none"/> +<path d="M197.5,235.656 L197.5,255.656 L198.5,255.656 L198.5,235.656" fill="#218e8c" stroke="none"/> +<path d="M198.5,235.656 L198.5,255.656 L199.5,255.656 L199.5,235.656" fill="#218e8c" stroke="none"/> +<path d="M199.5,235.656 L199.5,255.656 L200.5,255.656 L200.5,235.656" fill="#208f8c" stroke="none"/> +<path d="M200.5,235.656 L200.5,255.656 L201.5,255.656 L201.5,235.656" fill="#21908c" stroke="none"/> +<path d="M201.5,235.656 L201.5,255.656 L202.5,255.656 L202.5,235.656" fill="#21908b" stroke="none"/> +<path d="M202.5,235.656 L202.5,255.656 L203.5,255.656 L203.5,235.656" fill="#22918b" stroke="none"/> +<path d="M203.5,235.656 L203.5,255.656 L204.5,255.656 L204.5,235.656" fill="#23928b" stroke="none"/> +<path d="M204.5,235.656 L204.5,255.656 L205.5,255.656 L205.5,235.656" fill="#24928a" stroke="none"/> +<path d="M205.5,235.656 L205.5,255.656 L206.5,255.656 L206.5,235.656" fill="#24938a" stroke="none"/> +<path d="M206.5,235.656 L206.5,255.656 L207.5,255.656 L207.5,235.656" fill="#25948a" stroke="none"/> +<path d="M207.5,235.656 L207.5,255.656 L208.5,255.656 L208.5,235.656" fill="#26948a" stroke="none"/> +<path d="M208.5,235.656 L208.5,255.656 L209.5,255.656 L209.5,235.656" fill="#269589" stroke="none"/> +<path d="M209.5,235.656 L209.5,255.656 L210.5,255.656 L210.5,235.656" fill="#279589" stroke="none"/> +<path d="M210.5,235.656 L210.5,255.656 L211.5,255.656 L211.5,235.656" fill="#289689" stroke="none"/> +<path d="M211.5,235.656 L211.5,255.656 L212.5,255.656 L212.5,235.656" fill="#289788" stroke="none"/> +<path d="M212.5,235.656 L212.5,255.656 L213.5,255.656 L213.5,235.656" fill="#299788" stroke="none"/> +<path d="M213.5,235.656 L213.5,255.656 L214.5,255.656 L214.5,235.656" fill="#2a9888" stroke="none"/> +<path d="M214.5,235.656 L214.5,255.656 L215.5,255.656 L215.5,235.656" fill="#2b9987" stroke="none"/> +<path d="M215.5,235.656 L215.5,255.656 L216.5,255.656 L216.5,235.656" fill="#2b9987" stroke="none"/> +<path d="M216.5,235.656 L216.5,255.656 L217.5,255.656 L217.5,235.656" fill="#2c9a87" stroke="none"/> +<path d="M217.5,235.656 L217.5,255.656 L218.5,255.656 L218.5,235.656" fill="#2d9b86" stroke="none"/> +<path d="M218.5,235.656 L218.5,255.656 L219.5,255.656 L219.5,235.656" fill="#2d9b86" stroke="none"/> +<path d="M219.5,235.656 L219.5,255.656 L220.5,255.656 L220.5,235.656" fill="#2e9c86" stroke="none"/> +<path d="M220.5,235.656 L220.5,255.656 L221.5,255.656 L221.5,235.656" fill="#2f9c85" stroke="none"/> +<path d="M221.5,235.656 L221.5,255.656 L222.5,255.656 L222.5,235.656" fill="#2f9d85" stroke="none"/> +<path d="M222.5,235.656 L222.5,255.656 L223.5,255.656 L223.5,235.656" fill="#309e84" stroke="none"/> +<path d="M223.5,235.656 L223.5,255.656 L224.5,255.656 L224.5,235.656" fill="#319e84" stroke="none"/> +<path d="M224.5,235.656 L224.5,255.656 L225.5,255.656 L225.5,235.656" fill="#319f84" stroke="none"/> +<path d="M225.5,235.656 L225.5,255.656 L226.5,255.656 L226.5,235.656" fill="#32a083" stroke="none"/> +<path d="M226.5,235.656 L226.5,255.656 L227.5,255.656 L227.5,235.656" fill="#33a083" stroke="none"/> +<path d="M227.5,235.656 L227.5,255.656 L228.5,255.656 L228.5,235.656" fill="#33a183" stroke="none"/> +<path d="M228.5,235.656 L228.5,255.656 L229.5,255.656 L229.5,235.656" fill="#34a282" stroke="none"/> +<path d="M229.5,235.656 L229.5,255.656 L230.5,255.656 L230.5,235.656" fill="#35a282" stroke="none"/> +<path d="M230.5,235.656 L230.5,255.656 L231.5,255.656 L231.5,235.656" fill="#35a382" stroke="none"/> +<path d="M231.5,235.656 L231.5,255.656 L232.5,255.656 L232.5,235.656" fill="#36a381" stroke="none"/> +<path d="M232.5,235.656 L232.5,255.656 L233.5,255.656 L233.5,235.656" fill="#37a481" stroke="none"/> +<path d="M233.5,235.656 L233.5,255.656 L234.5,255.656 L234.5,235.656" fill="#37a580" stroke="none"/> +<path d="M234.5,235.656 L234.5,255.656 L235.5,255.656 L235.5,235.656" fill="#38a580" stroke="none"/> +<path d="M235.5,235.656 L235.5,255.656 L236.5,255.656 L236.5,235.656" fill="#39a680" stroke="none"/> +<path d="M236.5,235.656 L236.5,255.656 L237.5,255.656 L237.5,235.656" fill="#39a77f" stroke="none"/> +<path d="M237.5,235.656 L237.5,255.656 L238.5,255.656 L238.5,235.656" fill="#3aa77f" stroke="none"/> +<path d="M238.5,235.656 L238.5,255.656 L239.5,255.656 L239.5,235.656" fill="#3aa87e" stroke="none"/> +<path d="M239.5,235.656 L239.5,255.656 L240.5,255.656 L240.5,235.656" fill="#3ba97e" stroke="none"/> +<path d="M240.5,235.656 L240.5,255.656 L241.5,255.656 L241.5,235.656" fill="#3ca97d" stroke="none"/> +<path d="M241.5,235.656 L241.5,255.656 L242.5,255.656 L242.5,235.656" fill="#3caa7d" stroke="none"/> +<path d="M242.5,235.656 L242.5,255.656 L243.5,255.656 L243.5,235.656" fill="#3daa7d" stroke="none"/> +<path d="M243.5,235.656 L243.5,255.656 L244.5,255.656 L244.5,235.656" fill="#3eab7c" stroke="none"/> +<path d="M244.5,235.656 L244.5,255.656 L245.5,255.656 L245.5,235.656" fill="#3eac7c" stroke="none"/> +<path d="M245.5,235.656 L245.5,255.656 L246.5,255.656 L246.5,235.656" fill="#3fac7b" stroke="none"/> +<path d="M246.5,235.656 L246.5,255.656 L247.5,255.656 L247.5,235.656" fill="#40ad7b" stroke="none"/> +<path d="M247.5,235.656 L247.5,255.656 L248.5,255.656 L248.5,235.656" fill="#40ae7a" stroke="none"/> +<path d="M248.5,235.656 L248.5,255.656 L249.5,255.656 L249.5,235.656" fill="#41ae7a" stroke="none"/> +<path d="M249.5,235.656 L249.5,255.656 L250.5,255.656 L250.5,235.656" fill="#42af79" stroke="none"/> +<path d="M250.5,235.656 L250.5,255.656 L251.5,255.656 L251.5,235.656" fill="#42af79" stroke="none"/> +<path d="M251.5,235.656 L251.5,255.656 L252.5,255.656 L252.5,235.656" fill="#43b078" stroke="none"/> +<path d="M252.5,235.656 L252.5,255.656 L253.5,255.656 L253.5,235.656" fill="#43b178" stroke="none"/> +<path d="M253.5,235.656 L253.5,255.656 L254.5,255.656 L254.5,235.656" fill="#44b178" stroke="none"/> +<path d="M254.5,235.656 L254.5,255.656 L255.5,255.656 L255.5,235.656" fill="#45b277" stroke="none"/> +<path d="M255.5,235.656 L255.5,255.656 L256.5,255.656 L256.5,235.656" fill="#45b377" stroke="none"/> +<path d="M256.5,235.656 L256.5,255.656 L257.5,255.656 L257.5,235.656" fill="#46b376" stroke="none"/> +<path d="M257.5,235.656 L257.5,255.656 L258.5,255.656 L258.5,235.656" fill="#47b476" stroke="none"/> +<path d="M258.5,235.656 L258.5,255.656 L259.5,255.656 L259.5,235.656" fill="#47b575" stroke="none"/> +<path d="M259.5,235.656 L259.5,255.656 L260.5,255.656 L260.5,235.656" fill="#48b575" stroke="none"/> +<path d="M260.5,235.656 L260.5,255.656 L261.5,255.656 L261.5,235.656" fill="#49b674" stroke="none"/> +<path d="M261.5,235.656 L261.5,255.656 L262.5,255.656 L262.5,235.656" fill="#49b673" stroke="none"/> +<path d="M262.5,235.656 L262.5,255.656 L263.5,255.656 L263.5,235.656" fill="#4ab773" stroke="none"/> +<path d="M263.5,235.656 L263.5,255.656 L264.5,255.656 L264.5,235.656" fill="#4bb872" stroke="none"/> +<path d="M264.5,235.656 L264.5,255.656 L265.5,255.656 L265.5,235.656" fill="#4bb872" stroke="none"/> +<path d="M265.5,235.656 L265.5,255.656 L266.5,255.656 L266.5,235.656" fill="#4cb971" stroke="none"/> +<path d="M266.5,235.656 L266.5,255.656 L267.5,255.656 L267.5,235.656" fill="#4cba71" stroke="none"/> +<path d="M267.5,235.656 L267.5,255.656 L268.5,255.656 L268.5,235.656" fill="#4dba70" stroke="none"/> +<path d="M268.5,235.656 L268.5,255.656 L269.5,255.656 L269.5,235.656" fill="#4ebb70" stroke="none"/> +<path d="M269.5,235.656 L269.5,255.656 L270.5,255.656 L270.5,235.656" fill="#4ebb6f" stroke="none"/> +<path d="M270.5,235.656 L270.5,255.656 L271.5,255.656 L271.5,235.656" fill="#4fbc6e" stroke="none"/> +<path d="M271.5,235.656 L271.5,255.656 L272.5,255.656 L272.5,235.656" fill="#50bd6e" stroke="none"/> +<path d="M272.5,235.656 L272.5,255.656 L273.5,255.656 L273.5,235.656" fill="#50bd6d" stroke="none"/> +<path d="M273.5,235.656 L273.5,255.656 L274.5,255.656 L274.5,235.656" fill="#51be6d" stroke="none"/> +<path d="M274.5,235.656 L274.5,255.656 L275.5,255.656 L275.5,235.656" fill="#51bf6c" stroke="none"/> +<path d="M275.5,235.656 L275.5,255.656 L276.5,255.656 L276.5,235.656" fill="#52bf6b" stroke="none"/> +<path d="M276.5,235.656 L276.5,255.656 L277.5,255.656 L277.5,235.656" fill="#53c06b" stroke="none"/> +<path d="M277.5,235.656 L277.5,255.656 L278.5,255.656 L278.5,235.656" fill="#53c06a" stroke="none"/> +<path d="M278.5,235.656 L278.5,255.656 L279.5,255.656 L279.5,235.656" fill="#54c16a" stroke="none"/> +<path d="M279.5,235.656 L279.5,255.656 L280.5,255.656 L280.5,235.656" fill="#55c269" stroke="none"/> +<path d="M280.5,235.656 L280.5,255.656 L281.5,255.656 L281.5,235.656" fill="#55c268" stroke="none"/> +<path d="M281.5,235.656 L281.5,255.656 L282.5,255.656 L282.5,235.656" fill="#56c368" stroke="none"/> +<path d="M282.5,235.656 L282.5,255.656 L283.5,255.656 L283.5,235.656" fill="#57c467" stroke="none"/> +<path d="M283.5,235.656 L283.5,255.656 L284.5,255.656 L284.5,235.656" fill="#57c466" stroke="none"/> +<path d="M284.5,235.656 L284.5,255.656 L285.5,255.656 L285.5,235.656" fill="#58c566" stroke="none"/> +<path d="M285.5,235.656 L285.5,255.656 L286.5,255.656 L286.5,235.656" fill="#58c565" stroke="none"/> +<path d="M286.5,235.656 L286.5,255.656 L287.5,255.656 L287.5,235.656" fill="#59c664" stroke="none"/> +<path d="M287.5,235.656 L287.5,255.656 L288.5,255.656 L288.5,235.656" fill="#5ac763" stroke="none"/> +<path d="M288.5,235.656 L288.5,255.656 L289.5,255.656 L289.5,235.656" fill="#5ac763" stroke="none"/> +<path d="M289.5,235.656 L289.5,255.656 L290.5,255.656 L290.5,235.656" fill="#5bc862" stroke="none"/> +<path d="M290.5,235.656 L290.5,255.656 L291.5,255.656 L291.5,235.656" fill="#5ec862" stroke="none"/> +<path d="M291.5,235.656 L291.5,255.656 L292.5,255.656 L292.5,235.656" fill="#60c961" stroke="none"/> +<path d="M292.5,235.656 L292.5,255.656 L293.5,255.656 L293.5,235.656" fill="#63c961" stroke="none"/> +<path d="M293.5,235.656 L293.5,255.656 L294.5,255.656 L294.5,235.656" fill="#65ca61" stroke="none"/> +<path d="M294.5,235.656 L294.5,255.656 L295.5,255.656 L295.5,235.656" fill="#67ca60" stroke="none"/> +<path d="M295.5,235.656 L295.5,255.656 L296.5,255.656 L296.5,235.656" fill="#6aca60" stroke="none"/> +<path d="M296.5,235.656 L296.5,255.656 L297.5,255.656 L297.5,235.656" fill="#6ccb60" stroke="none"/> +<path d="M297.5,235.656 L297.5,255.656 L298.5,255.656 L298.5,235.656" fill="#6ecb5f" stroke="none"/> +<path d="M298.5,235.656 L298.5,255.656 L299.5,255.656 L299.5,235.656" fill="#70cb5f" stroke="none"/> +<path d="M299.5,235.656 L299.5,255.656 L300.5,255.656 L300.5,235.656" fill="#73cc5f" stroke="none"/> +<path d="M300.5,235.656 L300.5,255.656 L301.5,255.656 L301.5,235.656" fill="#75cc5e" stroke="none"/> +<path d="M301.5,235.656 L301.5,255.656 L302.5,255.656 L302.5,235.656" fill="#77cd5e" stroke="none"/> +<path d="M302.5,235.656 L302.5,255.656 L303.5,255.656 L303.5,235.656" fill="#79cd5e" stroke="none"/> +<path d="M303.5,235.656 L303.5,255.656 L304.5,255.656 L304.5,235.656" fill="#7bcd5d" stroke="none"/> +<path d="M304.5,235.656 L304.5,255.656 L305.5,255.656 L305.5,235.656" fill="#7dce5d" stroke="none"/> +<path d="M305.5,235.656 L305.5,255.656 L306.5,255.656 L306.5,235.656" fill="#7fce5c" stroke="none"/> +<path d="M306.5,235.656 L306.5,255.656 L307.5,255.656 L307.5,235.656" fill="#81cf5c" stroke="none"/> +<path d="M307.5,235.656 L307.5,255.656 L308.5,255.656 L308.5,235.656" fill="#83cf5c" stroke="none"/> +<path d="M308.5,235.656 L308.5,255.656 L309.5,255.656 L309.5,235.656" fill="#85cf5b" stroke="none"/> +<path d="M309.5,235.656 L309.5,255.656 L310.5,255.656 L310.5,235.656" fill="#87d05b" stroke="none"/> +<path d="M310.5,235.656 L310.5,255.656 L311.5,255.656 L311.5,235.656" fill="#89d05b" stroke="none"/> +<path d="M311.5,235.656 L311.5,255.656 L312.5,255.656 L312.5,235.656" fill="#8bd05a" stroke="none"/> +<path d="M312.5,235.656 L312.5,255.656 L313.5,255.656 L313.5,235.656" fill="#8dd15a" stroke="none"/> +<path d="M313.5,235.656 L313.5,255.656 L314.5,255.656 L314.5,235.656" fill="#8fd159" stroke="none"/> +<path d="M314.5,235.656 L314.5,255.656 L315.5,255.656 L315.5,235.656" fill="#91d159" stroke="none"/> +<path d="M315.5,235.656 L315.5,255.656 L316.5,255.656 L316.5,235.656" fill="#93d258" stroke="none"/> +<path d="M316.5,235.656 L316.5,255.656 L317.5,255.656 L317.5,235.656" fill="#95d258" stroke="none"/> +<path d="M317.5,235.656 L317.5,255.656 L318.5,255.656 L318.5,235.656" fill="#96d358" stroke="none"/> +<path d="M318.5,235.656 L318.5,255.656 L319.5,255.656 L319.5,235.656" fill="#98d357" stroke="none"/> +<path d="M319.5,235.656 L319.5,255.656 L320.5,255.656 L320.5,235.656" fill="#9ad357" stroke="none"/> +<path d="M320.5,235.656 L320.5,255.656 L321.5,255.656 L321.5,235.656" fill="#9cd456" stroke="none"/> +<path d="M321.5,235.656 L321.5,255.656 L322.5,255.656 L322.5,235.656" fill="#9ed456" stroke="none"/> +<path d="M322.5,235.656 L322.5,255.656 L323.5,255.656 L323.5,235.656" fill="#a0d455" stroke="none"/> +<path d="M323.5,235.656 L323.5,255.656 L324.5,255.656 L324.5,235.656" fill="#a1d555" stroke="none"/> +<path d="M324.5,235.656 L324.5,255.656 L325.5,255.656 L325.5,235.656" fill="#a3d554" stroke="none"/> +<path d="M325.5,235.656 L325.5,255.656 L326.5,255.656 L326.5,235.656" fill="#a5d554" stroke="none"/> +<path d="M326.5,235.656 L326.5,255.656 L327.5,255.656 L327.5,235.656" fill="#a7d653" stroke="none"/> +<path d="M327.5,235.656 L327.5,255.656 L328.5,255.656 L328.5,235.656" fill="#a8d653" stroke="none"/> +<path d="M328.5,235.656 L328.5,255.656 L329.5,255.656 L329.5,235.656" fill="#aad752" stroke="none"/> +<path d="M329.5,235.656 L329.5,255.656 L330.5,255.656 L330.5,235.656" fill="#acd752" stroke="none"/> +<path d="M330.5,235.656 L330.5,255.656 L331.5,255.656 L331.5,235.656" fill="#aed751" stroke="none"/> +<path d="M331.5,235.656 L331.5,255.656 L332.5,255.656 L332.5,235.656" fill="#afd851" stroke="none"/> +<path d="M332.5,235.656 L332.5,255.656 L333.5,255.656 L333.5,235.656" fill="#b1d850" stroke="none"/> +<path d="M333.5,235.656 L333.5,255.656 L334.5,255.656 L334.5,235.656" fill="#b3d84f" stroke="none"/> +<path d="M334.5,235.656 L334.5,255.656 L335.5,255.656 L335.5,235.656" fill="#b4d94f" stroke="none"/> +<path d="M335.5,235.656 L335.5,255.656 L336.5,255.656 L336.5,235.656" fill="#b6d94e" stroke="none"/> +<path d="M336.5,235.656 L336.5,255.656 L337.5,255.656 L337.5,235.656" fill="#b8d94e" stroke="none"/> +<path d="M337.5,235.656 L337.5,255.656 L338.5,255.656 L338.5,235.656" fill="#bada4d" stroke="none"/> +<path d="M338.5,235.656 L338.5,255.656 L339.5,255.656 L339.5,235.656" fill="#bbda4d" stroke="none"/> +<path d="M339.5,235.656 L339.5,255.656 L340.5,255.656 L340.5,235.656" fill="#bdda4c" stroke="none"/> +<path d="M340.5,235.656 L340.5,255.656 L341.5,255.656 L341.5,235.656" fill="#bfdb4b" stroke="none"/> +<path d="M341.5,235.656 L341.5,255.656 L342.5,255.656 L342.5,235.656" fill="#c0db4b" stroke="none"/> +<path d="M342.5,235.656 L342.5,255.656 L343.5,255.656 L343.5,235.656" fill="#c2db4a" stroke="none"/> +<path d="M343.5,235.656 L343.5,255.656 L344.5,255.656 L344.5,235.656" fill="#c4dc49" stroke="none"/> +<path d="M344.5,235.656 L344.5,255.656 L345.5,255.656 L345.5,235.656" fill="#c5dc49" stroke="none"/> +<path d="M345.5,235.656 L345.5,255.656 L346.5,255.656 L346.5,235.656" fill="#c7dc48" stroke="none"/> +<path d="M346.5,235.656 L346.5,255.656 L347.5,255.656 L347.5,235.656" fill="#c9dd47" stroke="none"/> +<path d="M347.5,235.656 L347.5,255.656 L348.5,255.656 L348.5,235.656" fill="#cadd47" stroke="none"/> +<path d="M348.5,235.656 L348.5,255.656 L349.5,255.656 L349.5,235.656" fill="#ccdd46" stroke="none"/> +<path d="M349.5,235.656 L349.5,255.656 L350.5,255.656 L350.5,235.656" fill="#cdde45" stroke="none"/> +<path d="M350.5,235.656 L350.5,255.656 L351.5,255.656 L351.5,235.656" fill="#cfde44" stroke="none"/> +<path d="M351.5,235.656 L351.5,255.656 L352.5,255.656 L352.5,235.656" fill="#d1de44" stroke="none"/> +<path d="M352.5,235.656 L352.5,255.656 L353.5,255.656 L353.5,235.656" fill="#d2df43" stroke="none"/> +<path d="M353.5,235.656 L353.5,255.656 L354.5,255.656 L354.5,235.656" fill="#d4df42" stroke="none"/> +<path d="M354.5,235.656 L354.5,255.656 L355.5,255.656 L355.5,235.656" fill="#d6df41" stroke="none"/> +<path d="M355.5,235.656 L355.5,255.656 L356.5,255.656 L356.5,235.656" fill="#d7e040" stroke="none"/> +<path d="M356.5,235.656 L356.5,255.656 L357.5,255.656 L357.5,235.656" fill="#d9e040" stroke="none"/> +<path d="M357.5,235.656 L357.5,255.656 L358.5,255.656 L358.5,235.656" fill="#dae03f" stroke="none"/> +<path d="M358.5,235.656 L358.5,255.656 L359.5,255.656 L359.5,235.656" fill="#dce13e" stroke="none"/> +<path d="M359.5,235.656 L359.5,255.656 L360.5,255.656 L360.5,235.656" fill="#dee13d" stroke="none"/> +<path d="M360.5,235.656 L360.5,255.656 L361.5,255.656 L361.5,235.656" fill="#dfe13c" stroke="none"/> +<path d="M361.5,235.656 L361.5,255.656 L362.5,255.656 L362.5,235.656" fill="#e1e13b" stroke="none"/> +<path d="M362.5,235.656 L362.5,255.656 L363.5,255.656 L363.5,235.656" fill="#e2e23a" stroke="none"/> +<path d="M363.5,235.656 L363.5,255.656 L364.5,255.656 L364.5,235.656" fill="#e4e239" stroke="none"/> +<path d="M364.5,235.656 L364.5,255.656 L365.5,255.656 L365.5,235.656" fill="#e6e238" stroke="none"/> +<path d="M365.5,235.656 L365.5,255.656 L366.5,255.656 L366.5,235.656" fill="#e7e337" stroke="none"/> +<path d="M366.5,235.656 L366.5,255.656 L367.5,255.656 L367.5,235.656" fill="#e9e336" stroke="none"/> +<path d="M367.5,235.656 L367.5,255.656 L368.5,255.656 L368.5,235.656" fill="#eae335" stroke="none"/> +<path d="M368.5,235.656 L368.5,255.656 L369.5,255.656 L369.5,235.656" fill="#ece434" stroke="none"/> +<path d="M369.5,235.656 L369.5,255.656 L370.5,255.656 L370.5,235.656" fill="#ede433" stroke="none"/> +<path d="M370.5,235.656 L370.5,255.656 L371.5,255.656 L371.5,235.656" fill="#efe431" stroke="none"/> +<path d="M371.5,235.656 L371.5,255.656 L372.5,255.656 L372.5,235.656" fill="#f1e530" stroke="none"/> +<path d="M372.5,235.656 L372.5,255.656 L373.5,255.656 L373.5,235.656" fill="#f2e52f" stroke="none"/> +<path d="M373.5,235.656 L373.5,255.656 L374.5,255.656 L374.5,235.656" fill="#f4e52d" stroke="none"/> +<path d="M374.5,235.656 L374.5,255.656 L375.5,255.656 L375.5,235.656" fill="#f5e62c" stroke="none"/> +<path d="M375.5,235.656 L375.5,255.656 L376.5,255.656 L376.5,235.656" fill="#f7e62b" stroke="none"/> +<path d="M376.5,235.656 L376.5,255.656 L377.5,255.656 L377.5,235.656" fill="#f8e629" stroke="none"/> +<path d="M377.5,235.656 L377.5,255.656 L378.5,255.656 L378.5,235.656" fill="#fae627" stroke="none"/> +<path d="M378.5,235.656 L378.5,255.656 L379.5,255.656 L379.5,235.656" fill="#fbe726" stroke="none"/> +<path d="M379.5,235.656 L379.5,255.656 L380,255.656 L380,235.656" fill="#fde724" stroke="none"/> +<path d="M20,235.656 L380,235.656 L380,255.656 L20,255.656 z" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M39.962124,255.656 L39.962124,259.656" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,8.532 Q-5.6280003,9.576,-5.7840004,10.392 Q-5.94,11.208,-6.282,11.778 Q-6.624,12.348,-7.17,12.648 Q-7.716,12.948,-8.484,12.948 Q-9.444,12.948,-10.074,12.42 Q-10.704,11.892,-11.01,10.902 Q-11.316,9.912,-11.316,8.532 Q-11.316,7.14,-11.034,6.156 Q-10.752001,5.172,-10.128,4.6499996 Q-9.504,4.1280003,-8.484,4.1280003 Q-7.524,4.1280003,-6.888,4.6499996 Q-6.2520003,5.172,-5.94,6.156 Q-5.6280003,7.14,-5.6280003,8.532 z M-10.26,8.532 Q-10.26,9.708,-10.086,10.488 Q-9.912001,11.268,-9.522,11.658 Q-9.132,12.048,-8.484,12.048 Q-7.8360004,12.048,-7.446,11.664 Q-7.056,11.28,-6.8760004,10.4939995 Q-6.696,9.708,-6.696,8.532 Q-6.696,7.356,-6.8760004,6.582 Q-7.056,5.808,-7.446,5.418 Q-7.8360004,5.028,-8.484,5.028 Q-9.132,5.028,-9.522,5.418 Q-9.912001,5.808,-10.086,6.582 Q-10.26,7.356,-10.26,8.532 z M-4.1760006,12.18 Q-4.1760006,11.736,-3.9600005,11.556 Q-3.7440004,11.376,-3.4440005,11.376 Q-3.1320004,11.376,-2.9100003,11.556 Q-2.6880004,11.736,-2.6880004,12.18 Q-2.6880004,12.612,-2.9100003,12.804 Q-3.1320004,12.996,-3.4440005,12.996 Q-3.7440004,12.996,-3.9600005,12.804 Q-4.1760006,12.612,-4.1760006,12.18 z M2.4359999,12.828 L1.4039996,12.828 L1.4039996,6.84 Q1.4039996,6.492,1.4099996,6.252 Q1.4159997,6.012,1.4279997,5.802 Q1.4399996,5.592,1.4519997,5.364 Q1.2599998,5.556,1.1039996,5.688 Q0.9479997,5.82,0.7079997,6.024 L-0.20400035,6.768 L-0.7560004,6.06 L1.5599997,4.26 L2.4359999,4.26 L2.4359999,12.828 z M11.316,8.532 Q11.316,9.576,11.16,10.392 Q11.004,11.208,10.662,11.778 Q10.32,12.348,9.774,12.648 Q9.228,12.948,8.459999,12.948 Q7.4999995,12.948,6.8699994,12.42 Q6.24,11.892,5.9339995,10.902 Q5.6279993,9.912,5.6279993,8.532 Q5.6279993,7.14,5.9099994,6.156 Q6.1919994,5.172,6.8159995,4.6499996 Q7.4399996,4.1280003,8.459999,4.1280003 Q9.42,4.1280003,10.056,4.6499996 Q10.691999,5.172,11.004,6.156 Q11.316,7.14,11.316,8.532 z M6.6839995,8.532 Q6.6839995,9.708,6.8579993,10.488 Q7.0319996,11.268,7.4219995,11.658 Q7.8119993,12.048,8.459999,12.048 Q9.108,12.048,9.497999,11.664 Q9.888,11.28,10.067999,10.4939995 Q10.247999,9.708,10.247999,8.532 Q10.247999,7.356,10.067999,6.582 Q9.888,5.808,9.497999,5.418 Q9.108,5.028,8.459999,5.028 Q7.8119993,5.028,7.4219995,5.418 Q7.0319996,5.808,6.8579993,6.582 Q6.6839995,7.356,6.6839995,8.532 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 39.962124 263.656)"/> +<path d="M79.42882,255.656 L79.42882,259.656" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,8.532 Q-5.6280003,9.576,-5.7840004,10.392 Q-5.94,11.208,-6.282,11.778 Q-6.624,12.348,-7.17,12.648 Q-7.716,12.948,-8.484,12.948 Q-9.444,12.948,-10.074,12.42 Q-10.704,11.892,-11.01,10.902 Q-11.316,9.912,-11.316,8.532 Q-11.316,7.14,-11.034,6.156 Q-10.752001,5.172,-10.128,4.6499996 Q-9.504,4.1280003,-8.484,4.1280003 Q-7.524,4.1280003,-6.888,4.6499996 Q-6.2520003,5.172,-5.94,6.156 Q-5.6280003,7.14,-5.6280003,8.532 z M-10.26,8.532 Q-10.26,9.708,-10.086,10.488 Q-9.912001,11.268,-9.522,11.658 Q-9.132,12.048,-8.484,12.048 Q-7.8360004,12.048,-7.446,11.664 Q-7.056,11.28,-6.8760004,10.4939995 Q-6.696,9.708,-6.696,8.532 Q-6.696,7.356,-6.8760004,6.582 Q-7.056,5.808,-7.446,5.418 Q-7.8360004,5.028,-8.484,5.028 Q-9.132,5.028,-9.522,5.418 Q-9.912001,5.808,-10.086,6.582 Q-10.26,7.356,-10.26,8.532 z M-4.1760006,12.18 Q-4.1760006,11.736,-3.9600005,11.556 Q-3.7440004,11.376,-3.4440005,11.376 Q-3.1320004,11.376,-2.9100003,11.556 Q-2.6880004,11.736,-2.6880004,12.18 Q-2.6880004,12.612,-2.9100003,12.804 Q-3.1320004,12.996,-3.4440005,12.996 Q-3.7440004,12.996,-3.9600005,12.804 Q-4.1760006,12.612,-4.1760006,12.18 z M4.416,12.828 L-1.2480004,12.828 L-1.2480004,11.952 L0.9959996,9.684 Q1.6439996,9.036,2.0879996,8.532 Q2.5319996,8.028,2.7599998,7.542 Q2.988,7.056,2.988,6.48 Q2.988,5.772,2.5679998,5.406 Q2.1479998,5.04,1.4759996,5.04 Q0.85199976,5.04,0.37799954,5.256 Q-0.096000314,5.472,-0.5880003,5.856 L-1.1520004,5.148 Q-0.81600034,4.86,-0.4140004,4.632 Q-0.012000322,4.4040003,0.46199965,4.2720003 Q0.93599963,4.1400003,1.4759996,4.1400003 Q2.2799997,4.1400003,2.8559995,4.4160004 Q3.4319997,4.6920004,3.7499995,5.202 Q4.068,5.712,4.068,6.42 Q4.068,7.092,3.7919998,7.68 Q3.5159998,8.268,3.0239997,8.838 Q2.5319996,9.408,1.8719997,10.056 L0.083999634,11.82 L0.083999634,11.868 L4.416,11.868 L4.416,12.828 z M11.316,8.532 Q11.316,9.576,11.16,10.392 Q11.004,11.208,10.662,11.778 Q10.32,12.348,9.774,12.648 Q9.228,12.948,8.459999,12.948 Q7.4999995,12.948,6.8699994,12.42 Q6.24,11.892,5.9339995,10.902 Q5.6279993,9.912,5.6279993,8.532 Q5.6279993,7.14,5.9099994,6.156 Q6.1919994,5.172,6.8159995,4.6499996 Q7.4399996,4.1280003,8.459999,4.1280003 Q9.42,4.1280003,10.056,4.6499996 Q10.691999,5.172,11.004,6.156 Q11.316,7.14,11.316,8.532 z M6.6839995,8.532 Q6.6839995,9.708,6.8579993,10.488 Q7.0319996,11.268,7.4219995,11.658 Q7.8119993,12.048,8.459999,12.048 Q9.108,12.048,9.497999,11.664 Q9.888,11.28,10.067999,10.4939995 Q10.247999,9.708,10.247999,8.532 Q10.247999,7.356,10.067999,6.582 Q9.888,5.808,9.497999,5.418 Q9.108,5.028,8.459999,5.028 Q7.8119993,5.028,7.4219995,5.418 Q7.0319996,5.808,6.8579993,6.582 Q6.6839995,7.356,6.6839995,8.532 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 79.42882 263.656)"/> +<path d="M118.895515,255.656 L118.895515,259.656" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,8.532 Q-5.6280003,9.576,-5.7840004,10.392 Q-5.94,11.208,-6.282,11.778 Q-6.624,12.348,-7.17,12.648 Q-7.716,12.948,-8.484,12.948 Q-9.444,12.948,-10.074,12.42 Q-10.704,11.892,-11.01,10.902 Q-11.316,9.912,-11.316,8.532 Q-11.316,7.14,-11.034,6.156 Q-10.752001,5.172,-10.128,4.6499996 Q-9.504,4.1280003,-8.484,4.1280003 Q-7.524,4.1280003,-6.888,4.6499996 Q-6.2520003,5.172,-5.94,6.156 Q-5.6280003,7.14,-5.6280003,8.532 z M-10.26,8.532 Q-10.26,9.708,-10.086,10.488 Q-9.912001,11.268,-9.522,11.658 Q-9.132,12.048,-8.484,12.048 Q-7.8360004,12.048,-7.446,11.664 Q-7.056,11.28,-6.8760004,10.4939995 Q-6.696,9.708,-6.696,8.532 Q-6.696,7.356,-6.8760004,6.582 Q-7.056,5.808,-7.446,5.418 Q-7.8360004,5.028,-8.484,5.028 Q-9.132,5.028,-9.522,5.418 Q-9.912001,5.808,-10.086,6.582 Q-10.26,7.356,-10.26,8.532 z M-4.1760006,12.18 Q-4.1760006,11.736,-3.9600005,11.556 Q-3.7440004,11.376,-3.4440005,11.376 Q-3.1320004,11.376,-2.9100003,11.556 Q-2.6880004,11.736,-2.6880004,12.18 Q-2.6880004,12.612,-2.9100003,12.804 Q-3.1320004,12.996,-3.4440005,12.996 Q-3.7440004,12.996,-3.9600005,12.804 Q-4.1760006,12.612,-4.1760006,12.18 z M4.0919995,6.264 Q4.0919995,6.84,3.876,7.26 Q3.6599998,7.68,3.258,7.9440002 Q2.8559995,8.208,2.3159995,8.316 L2.3159995,8.364 Q3.3479996,8.484,3.8519998,9.012 Q4.3559995,9.54,4.3559995,10.392 Q4.3559995,11.136,4.008,11.718 Q3.6599998,12.3,2.9339995,12.624001 Q2.2079997,12.948,1.0679996,12.948 Q0.39599967,12.948,-0.1800003,12.846 Q-0.7560004,12.744,-1.2840004,12.4800005 L-1.2840004,11.496 Q-0.7440003,11.76,-0.12000036,11.91 Q0.5039997,12.06,1.0799997,12.06 Q2.2319999,12.06,2.7419996,11.61 Q3.2519999,11.16,3.2519999,10.368 Q3.2519999,9.828,2.9699998,9.498 Q2.6879997,9.168,2.1479998,9.012 Q1.6079996,8.856,0.85199976,8.856 L0.023999691,8.856 L0.023999691,7.956 L0.8639996,7.956 Q1.5719998,7.956,2.0459998,7.752 Q2.5199995,7.548,2.7659998,7.182 Q3.0119996,6.816,3.0119996,6.336 Q3.0119996,5.712,2.5919995,5.37 Q2.1719997,5.028,1.4519997,5.028 Q0.9959996,5.028,0.6239996,5.118 Q0.25199962,5.208,-0.06600034,5.37 Q-0.3840003,5.532,-0.7080003,5.748 L-1.2360003,5.028 Q-0.7800003,4.668,-0.102000356,4.4040003 Q0.57599974,4.1400003,1.4399996,4.1400003 Q2.7839994,4.1400003,3.4379997,4.74 Q4.0919995,5.34,4.0919995,6.264 z M11.316,8.532 Q11.316,9.576,11.16,10.392 Q11.004,11.208,10.662,11.778 Q10.32,12.348,9.774,12.648 Q9.228,12.948,8.459999,12.948 Q7.4999995,12.948,6.8699994,12.42 Q6.24,11.892,5.9339995,10.902 Q5.6279993,9.912,5.6279993,8.532 Q5.6279993,7.14,5.9099994,6.156 Q6.1919994,5.172,6.8159995,4.6499996 Q7.4399996,4.1280003,8.459999,4.1280003 Q9.42,4.1280003,10.056,4.6499996 Q10.691999,5.172,11.004,6.156 Q11.316,7.14,11.316,8.532 z M6.6839995,8.532 Q6.6839995,9.708,6.8579993,10.488 Q7.0319996,11.268,7.4219995,11.658 Q7.8119993,12.048,8.459999,12.048 Q9.108,12.048,9.497999,11.664 Q9.888,11.28,10.067999,10.4939995 Q10.247999,9.708,10.247999,8.532 Q10.247999,7.356,10.067999,6.582 Q9.888,5.808,9.497999,5.418 Q9.108,5.028,8.459999,5.028 Q7.8119993,5.028,7.4219995,5.418 Q7.0319996,5.808,6.8579993,6.582 Q6.6839995,7.356,6.6839995,8.532 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 118.895515 263.656)"/> +<path d="M158.3622,255.656 L158.3622,259.656" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,8.532 Q-5.6280003,9.576,-5.7840004,10.392 Q-5.94,11.208,-6.282,11.778 Q-6.624,12.348,-7.17,12.648 Q-7.716,12.948,-8.484,12.948 Q-9.444,12.948,-10.074,12.42 Q-10.704,11.892,-11.01,10.902 Q-11.316,9.912,-11.316,8.532 Q-11.316,7.14,-11.034,6.156 Q-10.752001,5.172,-10.128,4.6499996 Q-9.504,4.1280003,-8.484,4.1280003 Q-7.524,4.1280003,-6.888,4.6499996 Q-6.2520003,5.172,-5.94,6.156 Q-5.6280003,7.14,-5.6280003,8.532 z M-10.26,8.532 Q-10.26,9.708,-10.086,10.488 Q-9.912001,11.268,-9.522,11.658 Q-9.132,12.048,-8.484,12.048 Q-7.8360004,12.048,-7.446,11.664 Q-7.056,11.28,-6.8760004,10.4939995 Q-6.696,9.708,-6.696,8.532 Q-6.696,7.356,-6.8760004,6.582 Q-7.056,5.808,-7.446,5.418 Q-7.8360004,5.028,-8.484,5.028 Q-9.132,5.028,-9.522,5.418 Q-9.912001,5.808,-10.086,6.582 Q-10.26,7.356,-10.26,8.532 z M-4.1760006,12.18 Q-4.1760006,11.736,-3.9600005,11.556 Q-3.7440004,11.376,-3.4440005,11.376 Q-3.1320004,11.376,-2.9100003,11.556 Q-2.6880004,11.736,-2.6880004,12.18 Q-2.6880004,12.612,-2.9100003,12.804 Q-3.1320004,12.996,-3.4440005,12.996 Q-3.7440004,12.996,-3.9600005,12.804 Q-4.1760006,12.612,-4.1760006,12.18 z M4.7999997,10.884 L3.5519996,10.884 L3.5519996,12.828 L2.5319996,12.828 L2.5319996,10.884 L-1.5720004,10.884 L-1.5720004,9.984 L2.4599996,4.212 L3.5519996,4.212 L3.5519996,9.936 L4.7999997,9.936 L4.7999997,10.884 z M2.5319996,7.236 Q2.5319996,6.924,2.5379996,6.666 Q2.5439997,6.408,2.5559998,6.18 Q2.5679998,5.952,2.574,5.742 Q2.5799994,5.532,2.5919995,5.34 L2.5439997,5.34 Q2.4479995,5.568,2.304,5.832 Q2.1599996,6.096,2.0279996,6.276 L-0.5400003,9.936 L2.5319996,9.936 L2.5319996,7.236 z M11.316,8.532 Q11.316,9.576,11.16,10.392 Q11.004,11.208,10.662,11.778 Q10.32,12.348,9.774,12.648 Q9.228,12.948,8.459999,12.948 Q7.4999995,12.948,6.8699994,12.42 Q6.24,11.892,5.9339995,10.902 Q5.6279993,9.912,5.6279993,8.532 Q5.6279993,7.14,5.9099994,6.156 Q6.1919994,5.172,6.8159995,4.6499996 Q7.4399996,4.1280003,8.459999,4.1280003 Q9.42,4.1280003,10.056,4.6499996 Q10.691999,5.172,11.004,6.156 Q11.316,7.14,11.316,8.532 z M6.6839995,8.532 Q6.6839995,9.708,6.8579993,10.488 Q7.0319996,11.268,7.4219995,11.658 Q7.8119993,12.048,8.459999,12.048 Q9.108,12.048,9.497999,11.664 Q9.888,11.28,10.067999,10.4939995 Q10.247999,9.708,10.247999,8.532 Q10.247999,7.356,10.067999,6.582 Q9.888,5.808,9.497999,5.418 Q9.108,5.028,8.459999,5.028 Q7.8119993,5.028,7.4219995,5.418 Q7.0319996,5.808,6.8579993,6.582 Q6.6839995,7.356,6.6839995,8.532 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 158.3622 263.656)"/> +<path d="M197.8289,255.656 L197.8289,259.656" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,8.532 Q-5.6280003,9.576,-5.7840004,10.392 Q-5.94,11.208,-6.282,11.778 Q-6.624,12.348,-7.17,12.648 Q-7.716,12.948,-8.484,12.948 Q-9.444,12.948,-10.074,12.42 Q-10.704,11.892,-11.01,10.902 Q-11.316,9.912,-11.316,8.532 Q-11.316,7.14,-11.034,6.156 Q-10.752001,5.172,-10.128,4.6499996 Q-9.504,4.1280003,-8.484,4.1280003 Q-7.524,4.1280003,-6.888,4.6499996 Q-6.2520003,5.172,-5.94,6.156 Q-5.6280003,7.14,-5.6280003,8.532 z M-10.26,8.532 Q-10.26,9.708,-10.086,10.488 Q-9.912001,11.268,-9.522,11.658 Q-9.132,12.048,-8.484,12.048 Q-7.8360004,12.048,-7.446,11.664 Q-7.056,11.28,-6.8760004,10.4939995 Q-6.696,9.708,-6.696,8.532 Q-6.696,7.356,-6.8760004,6.582 Q-7.056,5.808,-7.446,5.418 Q-7.8360004,5.028,-8.484,5.028 Q-9.132,5.028,-9.522,5.418 Q-9.912001,5.808,-10.086,6.582 Q-10.26,7.356,-10.26,8.532 z M-4.1760006,12.18 Q-4.1760006,11.736,-3.9600005,11.556 Q-3.7440004,11.376,-3.4440005,11.376 Q-3.1320004,11.376,-2.9100003,11.556 Q-2.6880004,11.736,-2.6880004,12.18 Q-2.6880004,12.612,-2.9100003,12.804 Q-3.1320004,12.996,-3.4440005,12.996 Q-3.7440004,12.996,-3.9600005,12.804 Q-4.1760006,12.612,-4.1760006,12.18 z M1.4759996,7.572 Q2.3519998,7.572,2.9999995,7.872 Q3.6479998,8.172,4.002,8.73 Q4.3559995,9.288,4.3559995,10.092 Q4.3559995,10.98,3.9719996,11.622 Q3.5879998,12.264,2.8739996,12.606 Q2.1599996,12.948,1.1519997,12.948 Q0.49199963,12.948,-0.09000039,12.828 Q-0.6720004,12.708,-1.0680003,12.4800005 L-1.0680003,11.484 Q-0.6360004,11.748,-0.018000364,11.898 Q0.59999967,12.048,1.1639996,12.048 Q1.7999997,12.048,2.2739997,11.85 Q2.7479997,11.652,3.0119996,11.238 Q3.2759995,10.824,3.2759995,10.2 Q3.2759995,9.360001,2.7599998,8.91 Q2.2439995,8.46,1.1279998,8.46 Q0.7919996,8.46,0.35999966,8.52 Q-0.072000384,8.58,-0.33600032,8.639999 L-0.8640003,8.304 L-0.5400003,4.26 L3.7559996,4.26 L3.7559996,5.22 L0.35999966,5.22 L0.15599966,7.704 Q0.35999966,7.668,0.7079997,7.62 Q1.0559998,7.572,1.4759996,7.572 z M11.316,8.532 Q11.316,9.576,11.16,10.392 Q11.004,11.208,10.662,11.778 Q10.32,12.348,9.774,12.648 Q9.228,12.948,8.459999,12.948 Q7.4999995,12.948,6.8699994,12.42 Q6.24,11.892,5.9339995,10.902 Q5.6279993,9.912,5.6279993,8.532 Q5.6279993,7.14,5.9099994,6.156 Q6.1919994,5.172,6.8159995,4.6499996 Q7.4399996,4.1280003,8.459999,4.1280003 Q9.42,4.1280003,10.056,4.6499996 Q10.691999,5.172,11.004,6.156 Q11.316,7.14,11.316,8.532 z M6.6839995,8.532 Q6.6839995,9.708,6.8579993,10.488 Q7.0319996,11.268,7.4219995,11.658 Q7.8119993,12.048,8.459999,12.048 Q9.108,12.048,9.497999,11.664 Q9.888,11.28,10.067999,10.4939995 Q10.247999,9.708,10.247999,8.532 Q10.247999,7.356,10.067999,6.582 Q9.888,5.808,9.497999,5.418 Q9.108,5.028,8.459999,5.028 Q7.8119993,5.028,7.4219995,5.418 Q7.0319996,5.808,6.8579993,6.582 Q6.6839995,7.356,6.6839995,8.532 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 197.8289 263.656)"/> +<path d="M237.29561,255.656 L237.29561,259.656" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,8.532 Q-5.6280003,9.576,-5.7840004,10.392 Q-5.94,11.208,-6.282,11.778 Q-6.624,12.348,-7.17,12.648 Q-7.716,12.948,-8.484,12.948 Q-9.444,12.948,-10.074,12.42 Q-10.704,11.892,-11.01,10.902 Q-11.316,9.912,-11.316,8.532 Q-11.316,7.14,-11.034,6.156 Q-10.752001,5.172,-10.128,4.6499996 Q-9.504,4.1280003,-8.484,4.1280003 Q-7.524,4.1280003,-6.888,4.6499996 Q-6.2520003,5.172,-5.94,6.156 Q-5.6280003,7.14,-5.6280003,8.532 z M-10.26,8.532 Q-10.26,9.708,-10.086,10.488 Q-9.912001,11.268,-9.522,11.658 Q-9.132,12.048,-8.484,12.048 Q-7.8360004,12.048,-7.446,11.664 Q-7.056,11.28,-6.8760004,10.4939995 Q-6.696,9.708,-6.696,8.532 Q-6.696,7.356,-6.8760004,6.582 Q-7.056,5.808,-7.446,5.418 Q-7.8360004,5.028,-8.484,5.028 Q-9.132,5.028,-9.522,5.418 Q-9.912001,5.808,-10.086,6.582 Q-10.26,7.356,-10.26,8.532 z M-4.1760006,12.18 Q-4.1760006,11.736,-3.9600005,11.556 Q-3.7440004,11.376,-3.4440005,11.376 Q-3.1320004,11.376,-2.9100003,11.556 Q-2.6880004,11.736,-2.6880004,12.18 Q-2.6880004,12.612,-2.9100003,12.804 Q-3.1320004,12.996,-3.4440005,12.996 Q-3.7440004,12.996,-3.9600005,12.804 Q-4.1760006,12.612,-4.1760006,12.18 z M-1.1640003,9.168 Q-1.1640003,8.424,-1.0620003,7.704 Q-0.96000034,6.984,-0.7080003,6.342 Q-0.45600033,5.7,-0.012000322,5.202 Q0.43199968,4.7040005,1.1099997,4.422 Q1.7879996,4.1400003,2.7599998,4.1400003 Q3.0119996,4.1400003,3.3179998,4.1639996 Q3.6239996,4.1879997,3.8159995,4.248 L3.8159995,5.148 Q3.6,5.076,3.33,5.04 Q3.0599995,5.004,2.7839994,5.004 Q1.9559996,5.004,1.4039996,5.28 Q0.85199976,5.556,0.5339997,6.036 Q0.2159996,6.516,0.07199967,7.14 Q-0.072000384,7.764,-0.1080004,8.472 L-0.03600037,8.472 Q0.1439997,8.184,0.4199996,7.956 Q0.6959996,7.728,1.0859997,7.596 Q1.4759996,7.464,1.9919996,7.464 Q2.7359996,7.464,3.2939997,7.77 Q3.8519998,8.076,4.1639996,8.658 Q4.476,9.24,4.476,10.068 Q4.476,10.956,4.14,11.604 Q3.804,12.252,3.1979995,12.6 Q2.5919995,12.948,1.7519996,12.948 Q1.1399996,12.948,0.61199975,12.72 Q0.083999634,12.492,-0.31800032,12.024 Q-0.7200004,11.556,-0.9420003,10.842 Q-1.1640003,10.128,-1.1640003,9.168 z M1.7399998,12.06 Q2.4959998,12.06,2.9639997,11.574 Q3.4319997,11.088,3.4319997,10.068 Q3.4319997,9.252,3.0179996,8.771999 Q2.6039996,8.292,1.7759998,8.292 Q1.2119997,8.292,0.7919996,8.526 Q0.37199974,8.76,0.13799965,9.12 Q-0.096000314,9.48,-0.096000314,9.864 Q-0.096000314,10.26,0.017999649,10.644 Q0.13199961,11.028,0.3659997,11.352 Q0.59999967,11.676001,0.9419997,11.868 Q1.2839997,12.06,1.7399998,12.06 z M11.316,8.532 Q11.316,9.576,11.16,10.392 Q11.004,11.208,10.662,11.778 Q10.32,12.348,9.774,12.648 Q9.228,12.948,8.459999,12.948 Q7.4999995,12.948,6.8699994,12.42 Q6.24,11.892,5.9339995,10.902 Q5.6279993,9.912,5.6279993,8.532 Q5.6279993,7.14,5.9099994,6.156 Q6.1919994,5.172,6.8159995,4.6499996 Q7.4399996,4.1280003,8.459999,4.1280003 Q9.42,4.1280003,10.056,4.6499996 Q10.691999,5.172,11.004,6.156 Q11.316,7.14,11.316,8.532 z M6.6839995,8.532 Q6.6839995,9.708,6.8579993,10.488 Q7.0319996,11.268,7.4219995,11.658 Q7.8119993,12.048,8.459999,12.048 Q9.108,12.048,9.497999,11.664 Q9.888,11.28,10.067999,10.4939995 Q10.247999,9.708,10.247999,8.532 Q10.247999,7.356,10.067999,6.582 Q9.888,5.808,9.497999,5.418 Q9.108,5.028,8.459999,5.028 Q7.8119993,5.028,7.4219995,5.418 Q7.0319996,5.808,6.8579993,6.582 Q6.6839995,7.356,6.6839995,8.532 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 237.29561 263.656)"/> +<path d="M276.7623,255.656 L276.7623,259.656" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,8.532 Q-5.6280003,9.576,-5.7840004,10.392 Q-5.94,11.208,-6.282,11.778 Q-6.624,12.348,-7.17,12.648 Q-7.716,12.948,-8.484,12.948 Q-9.444,12.948,-10.074,12.42 Q-10.704,11.892,-11.01,10.902 Q-11.316,9.912,-11.316,8.532 Q-11.316,7.14,-11.034,6.156 Q-10.752001,5.172,-10.128,4.6499996 Q-9.504,4.1280003,-8.484,4.1280003 Q-7.524,4.1280003,-6.888,4.6499996 Q-6.2520003,5.172,-5.94,6.156 Q-5.6280003,7.14,-5.6280003,8.532 z M-10.26,8.532 Q-10.26,9.708,-10.086,10.488 Q-9.912001,11.268,-9.522,11.658 Q-9.132,12.048,-8.484,12.048 Q-7.8360004,12.048,-7.446,11.664 Q-7.056,11.28,-6.8760004,10.4939995 Q-6.696,9.708,-6.696,8.532 Q-6.696,7.356,-6.8760004,6.582 Q-7.056,5.808,-7.446,5.418 Q-7.8360004,5.028,-8.484,5.028 Q-9.132,5.028,-9.522,5.418 Q-9.912001,5.808,-10.086,6.582 Q-10.26,7.356,-10.26,8.532 z M-4.1760006,12.18 Q-4.1760006,11.736,-3.9600005,11.556 Q-3.7440004,11.376,-3.4440005,11.376 Q-3.1320004,11.376,-2.9100003,11.556 Q-2.6880004,11.736,-2.6880004,12.18 Q-2.6880004,12.612,-2.9100003,12.804 Q-3.1320004,12.996,-3.4440005,12.996 Q-3.7440004,12.996,-3.9600005,12.804 Q-4.1760006,12.612,-4.1760006,12.18 z M-0.19200039,12.828 L3.324,5.22 L-1.2960004,5.22 L-1.2960004,4.26 L4.4519997,4.26 L4.4519997,5.076 L0.97199965,12.828 L-0.19200039,12.828 z M11.316,8.532 Q11.316,9.576,11.16,10.392 Q11.004,11.208,10.662,11.778 Q10.32,12.348,9.774,12.648 Q9.228,12.948,8.459999,12.948 Q7.4999995,12.948,6.8699994,12.42 Q6.24,11.892,5.9339995,10.902 Q5.6279993,9.912,5.6279993,8.532 Q5.6279993,7.14,5.9099994,6.156 Q6.1919994,5.172,6.8159995,4.6499996 Q7.4399996,4.1280003,8.459999,4.1280003 Q9.42,4.1280003,10.056,4.6499996 Q10.691999,5.172,11.004,6.156 Q11.316,7.14,11.316,8.532 z M6.6839995,8.532 Q6.6839995,9.708,6.8579993,10.488 Q7.0319996,11.268,7.4219995,11.658 Q7.8119993,12.048,8.459999,12.048 Q9.108,12.048,9.497999,11.664 Q9.888,11.28,10.067999,10.4939995 Q10.247999,9.708,10.247999,8.532 Q10.247999,7.356,10.067999,6.582 Q9.888,5.808,9.497999,5.418 Q9.108,5.028,8.459999,5.028 Q7.8119993,5.028,7.4219995,5.418 Q7.0319996,5.808,6.8579993,6.582 Q6.6839995,7.356,6.6839995,8.532 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 276.7623 263.656)"/> +<path d="M316.22897,255.656 L316.22897,259.656" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,8.532 Q-5.6280003,9.576,-5.7840004,10.392 Q-5.94,11.208,-6.282,11.778 Q-6.624,12.348,-7.17,12.648 Q-7.716,12.948,-8.484,12.948 Q-9.444,12.948,-10.074,12.42 Q-10.704,11.892,-11.01,10.902 Q-11.316,9.912,-11.316,8.532 Q-11.316,7.14,-11.034,6.156 Q-10.752001,5.172,-10.128,4.6499996 Q-9.504,4.1280003,-8.484,4.1280003 Q-7.524,4.1280003,-6.888,4.6499996 Q-6.2520003,5.172,-5.94,6.156 Q-5.6280003,7.14,-5.6280003,8.532 z M-10.26,8.532 Q-10.26,9.708,-10.086,10.488 Q-9.912001,11.268,-9.522,11.658 Q-9.132,12.048,-8.484,12.048 Q-7.8360004,12.048,-7.446,11.664 Q-7.056,11.28,-6.8760004,10.4939995 Q-6.696,9.708,-6.696,8.532 Q-6.696,7.356,-6.8760004,6.582 Q-7.056,5.808,-7.446,5.418 Q-7.8360004,5.028,-8.484,5.028 Q-9.132,5.028,-9.522,5.418 Q-9.912001,5.808,-10.086,6.582 Q-10.26,7.356,-10.26,8.532 z M-4.1760006,12.18 Q-4.1760006,11.736,-3.9600005,11.556 Q-3.7440004,11.376,-3.4440005,11.376 Q-3.1320004,11.376,-2.9100003,11.556 Q-2.6880004,11.736,-2.6880004,12.18 Q-2.6880004,12.612,-2.9100003,12.804 Q-3.1320004,12.996,-3.4440005,12.996 Q-3.7440004,12.996,-3.9600005,12.804 Q-4.1760006,12.612,-4.1760006,12.18 z M1.5959997,4.1400003 Q2.3519998,4.1400003,2.9279995,4.3739996 Q3.5039997,4.608,3.8339996,5.064 Q4.1639996,5.52,4.1639996,6.192 Q4.1639996,6.708,3.942,7.092 Q3.7199998,7.476,3.3479996,7.77 Q2.9759998,8.064,2.5319996,8.292 Q3.0599995,8.544001,3.4919996,8.8619995 Q3.9239998,9.18,4.1819997,9.6 Q4.4399996,10.02,4.4399996,10.608 Q4.4399996,11.328,4.0919995,11.85 Q3.7439995,12.372,3.1139998,12.66 Q2.4839997,12.948,1.6319997,12.948 Q0.7079997,12.948,0.06599963,12.672 Q-0.57600033,12.396,-0.9060004,11.886 Q-1.2360003,11.376,-1.2360003,10.644 Q-1.2360003,10.056,-0.99000037,9.624001 Q-0.7440003,9.192,-0.33600032,8.88 Q0.07199967,8.568,0.5399997,8.352 Q0.11999965,8.1119995,-0.22200036,7.806 Q-0.56400037,7.5,-0.7620003,7.104 Q-0.96000034,6.708,-0.96000034,6.18 Q-0.96000034,5.52,-0.6240003,5.07 Q-0.28800035,4.62,0.28799963,4.38 Q0.8639996,4.1400003,1.5959997,4.1400003 z M-0.20400035,10.656 Q-0.20400035,11.28,0.23999977,11.694 Q0.6839998,12.108,1.6079996,12.108 Q2.4839997,12.108,2.9459996,11.694 Q3.4079995,11.28,3.4079995,10.62 Q3.4079995,10.2,3.1859999,9.882 Q2.9639997,9.564,2.5619998,9.312 Q2.1599996,9.059999,1.6079996,8.856 L1.4159997,8.784 Q0.8879998,9.012,0.52799964,9.276 Q0.16799963,9.54,-0.018000364,9.875999 Q-0.20400035,10.212,-0.20400035,10.656 z M1.5839996,4.992 Q0.92399955,4.992,0.49799967,5.31 Q0.07199967,5.628,0.07199967,6.228 Q0.07199967,6.672,0.2819996,6.972 Q0.49199963,7.272,0.85199976,7.482 Q1.2119997,7.692,1.6439996,7.884 Q2.0639997,7.704,2.3939996,7.488 Q2.7239995,7.272,2.9219995,6.966 Q3.12,6.66,3.12,6.228 Q3.12,5.628,2.6999998,5.31 Q2.2799997,4.992,1.5839996,4.992 z M11.316,8.532 Q11.316,9.576,11.16,10.392 Q11.004,11.208,10.662,11.778 Q10.32,12.348,9.774,12.648 Q9.228,12.948,8.459999,12.948 Q7.4999995,12.948,6.8699994,12.42 Q6.24,11.892,5.9339995,10.902 Q5.6279993,9.912,5.6279993,8.532 Q5.6279993,7.14,5.9099994,6.156 Q6.1919994,5.172,6.8159995,4.6499996 Q7.4399996,4.1280003,8.459999,4.1280003 Q9.42,4.1280003,10.056,4.6499996 Q10.691999,5.172,11.004,6.156 Q11.316,7.14,11.316,8.532 z M6.6839995,8.532 Q6.6839995,9.708,6.8579993,10.488 Q7.0319996,11.268,7.4219995,11.658 Q7.8119993,12.048,8.459999,12.048 Q9.108,12.048,9.497999,11.664 Q9.888,11.28,10.067999,10.4939995 Q10.247999,9.708,10.247999,8.532 Q10.247999,7.356,10.067999,6.582 Q9.888,5.808,9.497999,5.418 Q9.108,5.028,8.459999,5.028 Q7.8119993,5.028,7.4219995,5.418 Q7.0319996,5.808,6.8579993,6.582 Q6.6839995,7.356,6.6839995,8.532 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 316.22897 263.656)"/> +<path d="M355.69568,255.656 L355.69568,259.656" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,8.532 Q-5.6280003,9.576,-5.7840004,10.392 Q-5.94,11.208,-6.282,11.778 Q-6.624,12.348,-7.17,12.648 Q-7.716,12.948,-8.484,12.948 Q-9.444,12.948,-10.074,12.42 Q-10.704,11.892,-11.01,10.902 Q-11.316,9.912,-11.316,8.532 Q-11.316,7.14,-11.034,6.156 Q-10.752001,5.172,-10.128,4.6499996 Q-9.504,4.1280003,-8.484,4.1280003 Q-7.524,4.1280003,-6.888,4.6499996 Q-6.2520003,5.172,-5.94,6.156 Q-5.6280003,7.14,-5.6280003,8.532 z M-10.26,8.532 Q-10.26,9.708,-10.086,10.488 Q-9.912001,11.268,-9.522,11.658 Q-9.132,12.048,-8.484,12.048 Q-7.8360004,12.048,-7.446,11.664 Q-7.056,11.28,-6.8760004,10.4939995 Q-6.696,9.708,-6.696,8.532 Q-6.696,7.356,-6.8760004,6.582 Q-7.056,5.808,-7.446,5.418 Q-7.8360004,5.028,-8.484,5.028 Q-9.132,5.028,-9.522,5.418 Q-9.912001,5.808,-10.086,6.582 Q-10.26,7.356,-10.26,8.532 z M-4.1760006,12.18 Q-4.1760006,11.736,-3.9600005,11.556 Q-3.7440004,11.376,-3.4440005,11.376 Q-3.1320004,11.376,-2.9100003,11.556 Q-2.6880004,11.736,-2.6880004,12.18 Q-2.6880004,12.612,-2.9100003,12.804 Q-3.1320004,12.996,-3.4440005,12.996 Q-3.7440004,12.996,-3.9600005,12.804 Q-4.1760006,12.612,-4.1760006,12.18 z M4.416,7.92 Q4.416,8.652,4.3139997,9.378 Q4.212,10.104,3.9599996,10.746 Q3.7079997,11.3880005,3.2639995,11.886 Q2.8199997,12.384,2.1359997,12.666 Q1.4519997,12.948,0.47999954,12.948 Q0.23999977,12.948,-0.07800031,12.918 Q-0.3960004,12.8880005,-0.6000004,12.828 L-0.6000004,11.928 Q-0.3840003,12,-0.096000314,12.042 Q0.19199967,12.084,0.4559996,12.084 Q1.2959998,12.084,1.8419998,11.808001 Q2.3879995,11.532,2.712,11.058001 Q3.0359998,10.584,3.1799998,9.954 Q3.324,9.324,3.3479996,8.628 L3.2759995,8.628 Q3.0959997,8.904,2.8199997,9.132 Q2.5439997,9.360001,2.1539996,9.492001 Q1.7639997,9.624001,1.2359996,9.624001 Q0.5039997,9.624001,-0.054000378,9.318 Q-0.61200035,9.012,-0.91800034,8.436 Q-1.2240003,7.86,-1.2240003,7.032 Q-1.2240003,6.132,-0.8820003,5.484 Q-0.5400003,4.836,0.07199967,4.488 Q0.6839998,4.1400003,1.5119996,4.1400003 Q2.1239996,4.1400003,2.6519995,4.3739996 Q3.1799998,4.608,3.5759997,5.076 Q3.9719996,5.544,4.194,6.252 Q4.416,6.96,4.416,7.92 z M1.5119996,5.028 Q0.76799965,5.028,0.29399967,5.52 Q-0.1800003,6.012,-0.1800003,7.02 Q-0.1800003,7.848,0.22199965,8.3220005 Q0.6239996,8.796,1.4639997,8.796 Q2.0399997,8.796,2.4599996,8.562 Q2.8799996,8.328,3.1139998,7.968 Q3.3479996,7.608,3.3479996,7.224 Q3.3479996,6.84,3.2339997,6.45 Q3.12,6.06,2.8919997,5.736 Q2.6639996,5.412,2.3159995,5.22 Q1.9679997,5.028,1.5119996,5.028 z M11.316,8.532 Q11.316,9.576,11.16,10.392 Q11.004,11.208,10.662,11.778 Q10.32,12.348,9.774,12.648 Q9.228,12.948,8.459999,12.948 Q7.4999995,12.948,6.8699994,12.42 Q6.24,11.892,5.9339995,10.902 Q5.6279993,9.912,5.6279993,8.532 Q5.6279993,7.14,5.9099994,6.156 Q6.1919994,5.172,6.8159995,4.6499996 Q7.4399996,4.1280003,8.459999,4.1280003 Q9.42,4.1280003,10.056,4.6499996 Q10.691999,5.172,11.004,6.156 Q11.316,7.14,11.316,8.532 z M6.6839995,8.532 Q6.6839995,9.708,6.8579993,10.488 Q7.0319996,11.268,7.4219995,11.658 Q7.8119993,12.048,8.459999,12.048 Q9.108,12.048,9.497999,11.664 Q9.888,11.28,10.067999,10.4939995 Q10.247999,9.708,10.247999,8.532 Q10.247999,7.356,10.067999,6.582 Q9.888,5.808,9.497999,5.418 Q9.108,5.028,8.459999,5.028 Q7.8119993,5.028,7.4219995,5.418 Q7.0319996,5.808,6.8579993,6.582 Q6.6839995,7.356,6.6839995,8.532 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 355.69568 263.656)"/> +</svg> \ No newline at end of file diff --git a/tests/refs/colorbar/default-with-axes.png b/tests/refs/colorbar/default-with-axes.png new file mode 100644 index 0000000..651fcaf Binary files /dev/null and b/tests/refs/colorbar/default-with-axes.png differ diff --git a/tests/refs/colorbar/default-with-axes.svg b/tests/refs/colorbar/default-with-axes.svg new file mode 100644 index 0000000..c862f98 --- /dev/null +++ b/tests/refs/colorbar/default-with-axes.svg @@ -0,0 +1,264 @@ +<svg height="300" viewBox="0 0 400 300" width="400" xmlns="http://www.w3.org/2000/svg"> +<rect fill="#ffffff" height="100%" width="100%"/> +<clipPath id="plotive-clip1"> +<rect height="205.864" width="234.59201" x="81.6" y="20"/> +</clipPath> +<g clip-path="url(#plotive-clip1)"> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#54c16a" fill-opacity="0.7019608" stroke="#54c16a" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 216.20972 94.71388)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#3ba97e" fill-opacity="0.7019608" stroke="#3ba97e" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 207.91516 58.994614)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#8fd159" fill-opacity="0.7019608" stroke="#8fd159" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 225.00061 147.6293)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#440154" fill-opacity="0.7019608" stroke="#440154" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 199.517 113.45325)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#35a282" fill-opacity="0.7019608" stroke="#35a282" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 101.6 106.68832)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#31778c" fill-opacity="0.7019608" stroke="#31778c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 182.70898 40)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#70cb5f" fill-opacity="0.7019608" stroke="#70cb5f" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 192.9993 177.17908)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#38638b" fill-opacity="0.7019608" stroke="#38638b" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 118.61743 145.32857)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#36698c" fill-opacity="0.7019608" stroke="#36698c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 150.36797 100.19581)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#fde724" fill-opacity="0.7019608" stroke="#fde724" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 234.65158 91.21347)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#33a083" fill-opacity="0.7019608" stroke="#33a083" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 200.34225 102.722885)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#90d159" fill-opacity="0.7019608" stroke="#90d159" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 275.72296 65.022415)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#461c61" fill-opacity="0.7019608" stroke="#461c61" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 296.19202 150.18683)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#61c961" fill-opacity="0.7019608" stroke="#61c961" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 105.84342 205.864)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#279689" fill-opacity="0.7019608" stroke="#279689" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 179.84628 52.175858)"/> +</g> +<path d="M16.888134,-4 L16.888134,4 M61.17061,-4 L61.17061,4 M105.45309,-4 L105.45309,4 M149.73557,-4 L149.73557,4 M194.01804,-4 L194.01804,4" fill="none" stroke="#000000" stroke-width="1" transform="matrix(1 0 0 1 81.6 225.864)"/> +<path d="M-5.6280003,8.532 Q-5.6280003,9.576,-5.7840004,10.392 Q-5.94,11.208,-6.282,11.778 Q-6.624,12.348,-7.17,12.648 Q-7.716,12.948,-8.484,12.948 Q-9.444,12.948,-10.074,12.42 Q-10.704,11.892,-11.01,10.902 Q-11.316,9.912,-11.316,8.532 Q-11.316,7.14,-11.034,6.156 Q-10.752001,5.172,-10.128,4.6499996 Q-9.504,4.1280003,-8.484,4.1280003 Q-7.524,4.1280003,-6.888,4.6499996 Q-6.2520003,5.172,-5.94,6.156 Q-5.6280003,7.14,-5.6280003,8.532 z M-10.26,8.532 Q-10.26,9.708,-10.086,10.488 Q-9.912001,11.268,-9.522,11.658 Q-9.132,12.048,-8.484,12.048 Q-7.8360004,12.048,-7.446,11.664 Q-7.056,11.28,-6.8760004,10.4939995 Q-6.696,9.708,-6.696,8.532 Q-6.696,7.356,-6.8760004,6.582 Q-7.056,5.808,-7.446,5.418 Q-7.8360004,5.028,-8.484,5.028 Q-9.132,5.028,-9.522,5.418 Q-9.912001,5.808,-10.086,6.582 Q-10.26,7.356,-10.26,8.532 z M-4.1760006,12.18 Q-4.1760006,11.736,-3.9600005,11.556 Q-3.7440004,11.376,-3.4440005,11.376 Q-3.1320004,11.376,-2.9100003,11.556 Q-2.6880004,11.736,-2.6880004,12.18 Q-2.6880004,12.612,-2.9100003,12.804 Q-3.1320004,12.996,-3.4440005,12.996 Q-3.7440004,12.996,-3.9600005,12.804 Q-4.1760006,12.612,-4.1760006,12.18 z M4.4519997,8.532 Q4.4519997,9.576,4.2959995,10.392 Q4.14,11.208,3.7979999,11.778 Q3.4559999,12.348,2.9099998,12.648 Q2.3639998,12.948,1.5959997,12.948 Q0.6359997,12.948,0.0059996843,12.42 Q-0.6240003,11.892,-0.93000036,10.902 Q-1.2360003,9.912,-1.2360003,8.532 Q-1.2360003,7.14,-0.95400035,6.156 Q-0.6720004,5.172,-0.048000336,4.6499996 Q0.57599974,4.1280003,1.5959997,4.1280003 Q2.5559998,4.1280003,3.192,4.6499996 Q3.8279996,5.172,4.14,6.156 Q4.4519997,7.14,4.4519997,8.532 z M-0.1800003,8.532 Q-0.1800003,9.708,-0.0060003996,10.488 Q0.16799963,11.268,0.5579996,11.658 Q0.9479997,12.048,1.5959997,12.048 Q2.2439995,12.048,2.6339998,11.664 Q3.0239997,11.28,3.2039995,10.4939995 Q3.3839998,9.708,3.3839998,8.532 Q3.3839998,7.356,3.2039995,6.582 Q3.0239997,5.808,2.6339998,5.418 Q2.2439995,5.028,1.5959997,5.028 Q0.9479997,5.028,0.5579996,5.418 Q0.16799963,5.808,-0.0060003996,6.582 Q-0.1800003,7.356,-0.1800003,8.532 z M11.316,8.532 Q11.316,9.576,11.16,10.392 Q11.004,11.208,10.662,11.778 Q10.32,12.348,9.774,12.648 Q9.228,12.948,8.459999,12.948 Q7.4999995,12.948,6.8699994,12.42 Q6.24,11.892,5.9339995,10.902 Q5.6279993,9.912,5.6279993,8.532 Q5.6279993,7.14,5.9099994,6.156 Q6.1919994,5.172,6.8159995,4.6499996 Q7.4399996,4.1280003,8.459999,4.1280003 Q9.42,4.1280003,10.056,4.6499996 Q10.691999,5.172,11.004,6.156 Q11.316,7.14,11.316,8.532 z M6.6839995,8.532 Q6.6839995,9.708,6.8579993,10.488 Q7.0319996,11.268,7.4219995,11.658 Q7.8119993,12.048,8.459999,12.048 Q9.108,12.048,9.497999,11.664 Q9.888,11.28,10.067999,10.4939995 Q10.247999,9.708,10.247999,8.532 Q10.247999,7.356,10.067999,6.582 Q9.888,5.808,9.497999,5.418 Q9.108,5.028,8.459999,5.028 Q7.8119993,5.028,7.4219995,5.418 Q7.0319996,5.808,6.8579993,6.582 Q6.6839995,7.356,6.6839995,8.532 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 98.48813 233.864)"/> +<path d="M-5.6280003,8.532 Q-5.6280003,9.576,-5.7840004,10.392 Q-5.94,11.208,-6.282,11.778 Q-6.624,12.348,-7.17,12.648 Q-7.716,12.948,-8.484,12.948 Q-9.444,12.948,-10.074,12.42 Q-10.704,11.892,-11.01,10.902 Q-11.316,9.912,-11.316,8.532 Q-11.316,7.14,-11.034,6.156 Q-10.752001,5.172,-10.128,4.6499996 Q-9.504,4.1280003,-8.484,4.1280003 Q-7.524,4.1280003,-6.888,4.6499996 Q-6.2520003,5.172,-5.94,6.156 Q-5.6280003,7.14,-5.6280003,8.532 z M-10.26,8.532 Q-10.26,9.708,-10.086,10.488 Q-9.912001,11.268,-9.522,11.658 Q-9.132,12.048,-8.484,12.048 Q-7.8360004,12.048,-7.446,11.664 Q-7.056,11.28,-6.8760004,10.4939995 Q-6.696,9.708,-6.696,8.532 Q-6.696,7.356,-6.8760004,6.582 Q-7.056,5.808,-7.446,5.418 Q-7.8360004,5.028,-8.484,5.028 Q-9.132,5.028,-9.522,5.418 Q-9.912001,5.808,-10.086,6.582 Q-10.26,7.356,-10.26,8.532 z M-4.1760006,12.18 Q-4.1760006,11.736,-3.9600005,11.556 Q-3.7440004,11.376,-3.4440005,11.376 Q-3.1320004,11.376,-2.9100003,11.556 Q-2.6880004,11.736,-2.6880004,12.18 Q-2.6880004,12.612,-2.9100003,12.804 Q-3.1320004,12.996,-3.4440005,12.996 Q-3.7440004,12.996,-3.9600005,12.804 Q-4.1760006,12.612,-4.1760006,12.18 z M4.416,12.828 L-1.2480004,12.828 L-1.2480004,11.952 L0.9959996,9.684 Q1.6439996,9.036,2.0879996,8.532 Q2.5319996,8.028,2.7599998,7.542 Q2.988,7.056,2.988,6.48 Q2.988,5.772,2.5679998,5.406 Q2.1479998,5.04,1.4759996,5.04 Q0.85199976,5.04,0.37799954,5.256 Q-0.096000314,5.472,-0.5880003,5.856 L-1.1520004,5.148 Q-0.81600034,4.86,-0.4140004,4.632 Q-0.012000322,4.4040003,0.46199965,4.2720003 Q0.93599963,4.1400003,1.4759996,4.1400003 Q2.2799997,4.1400003,2.8559995,4.4160004 Q3.4319997,4.6920004,3.7499995,5.202 Q4.068,5.712,4.068,6.42 Q4.068,7.092,3.7919998,7.68 Q3.5159998,8.268,3.0239997,8.838 Q2.5319996,9.408,1.8719997,10.056 L0.083999634,11.82 L0.083999634,11.868 L4.416,11.868 L4.416,12.828 z M11.316,8.532 Q11.316,9.576,11.16,10.392 Q11.004,11.208,10.662,11.778 Q10.32,12.348,9.774,12.648 Q9.228,12.948,8.459999,12.948 Q7.4999995,12.948,6.8699994,12.42 Q6.24,11.892,5.9339995,10.902 Q5.6279993,9.912,5.6279993,8.532 Q5.6279993,7.14,5.9099994,6.156 Q6.1919994,5.172,6.8159995,4.6499996 Q7.4399996,4.1280003,8.459999,4.1280003 Q9.42,4.1280003,10.056,4.6499996 Q10.691999,5.172,11.004,6.156 Q11.316,7.14,11.316,8.532 z M6.6839995,8.532 Q6.6839995,9.708,6.8579993,10.488 Q7.0319996,11.268,7.4219995,11.658 Q7.8119993,12.048,8.459999,12.048 Q9.108,12.048,9.497999,11.664 Q9.888,11.28,10.067999,10.4939995 Q10.247999,9.708,10.247999,8.532 Q10.247999,7.356,10.067999,6.582 Q9.888,5.808,9.497999,5.418 Q9.108,5.028,8.459999,5.028 Q7.8119993,5.028,7.4219995,5.418 Q7.0319996,5.808,6.8579993,6.582 Q6.6839995,7.356,6.6839995,8.532 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 142.7706 233.864)"/> +<path d="M-5.6280003,8.532 Q-5.6280003,9.576,-5.7840004,10.392 Q-5.94,11.208,-6.282,11.778 Q-6.624,12.348,-7.17,12.648 Q-7.716,12.948,-8.484,12.948 Q-9.444,12.948,-10.074,12.42 Q-10.704,11.892,-11.01,10.902 Q-11.316,9.912,-11.316,8.532 Q-11.316,7.14,-11.034,6.156 Q-10.752001,5.172,-10.128,4.6499996 Q-9.504,4.1280003,-8.484,4.1280003 Q-7.524,4.1280003,-6.888,4.6499996 Q-6.2520003,5.172,-5.94,6.156 Q-5.6280003,7.14,-5.6280003,8.532 z M-10.26,8.532 Q-10.26,9.708,-10.086,10.488 Q-9.912001,11.268,-9.522,11.658 Q-9.132,12.048,-8.484,12.048 Q-7.8360004,12.048,-7.446,11.664 Q-7.056,11.28,-6.8760004,10.4939995 Q-6.696,9.708,-6.696,8.532 Q-6.696,7.356,-6.8760004,6.582 Q-7.056,5.808,-7.446,5.418 Q-7.8360004,5.028,-8.484,5.028 Q-9.132,5.028,-9.522,5.418 Q-9.912001,5.808,-10.086,6.582 Q-10.26,7.356,-10.26,8.532 z M-4.1760006,12.18 Q-4.1760006,11.736,-3.9600005,11.556 Q-3.7440004,11.376,-3.4440005,11.376 Q-3.1320004,11.376,-2.9100003,11.556 Q-2.6880004,11.736,-2.6880004,12.18 Q-2.6880004,12.612,-2.9100003,12.804 Q-3.1320004,12.996,-3.4440005,12.996 Q-3.7440004,12.996,-3.9600005,12.804 Q-4.1760006,12.612,-4.1760006,12.18 z M4.7999997,10.884 L3.5519996,10.884 L3.5519996,12.828 L2.5319996,12.828 L2.5319996,10.884 L-1.5720004,10.884 L-1.5720004,9.984 L2.4599996,4.212 L3.5519996,4.212 L3.5519996,9.936 L4.7999997,9.936 L4.7999997,10.884 z M2.5319996,7.236 Q2.5319996,6.924,2.5379996,6.666 Q2.5439997,6.408,2.5559998,6.18 Q2.5679998,5.952,2.574,5.742 Q2.5799994,5.532,2.5919995,5.34 L2.5439997,5.34 Q2.4479995,5.568,2.304,5.832 Q2.1599996,6.096,2.0279996,6.276 L-0.5400003,9.936 L2.5319996,9.936 L2.5319996,7.236 z M11.316,8.532 Q11.316,9.576,11.16,10.392 Q11.004,11.208,10.662,11.778 Q10.32,12.348,9.774,12.648 Q9.228,12.948,8.459999,12.948 Q7.4999995,12.948,6.8699994,12.42 Q6.24,11.892,5.9339995,10.902 Q5.6279993,9.912,5.6279993,8.532 Q5.6279993,7.14,5.9099994,6.156 Q6.1919994,5.172,6.8159995,4.6499996 Q7.4399996,4.1280003,8.459999,4.1280003 Q9.42,4.1280003,10.056,4.6499996 Q10.691999,5.172,11.004,6.156 Q11.316,7.14,11.316,8.532 z M6.6839995,8.532 Q6.6839995,9.708,6.8579993,10.488 Q7.0319996,11.268,7.4219995,11.658 Q7.8119993,12.048,8.459999,12.048 Q9.108,12.048,9.497999,11.664 Q9.888,11.28,10.067999,10.4939995 Q10.247999,9.708,10.247999,8.532 Q10.247999,7.356,10.067999,6.582 Q9.888,5.808,9.497999,5.418 Q9.108,5.028,8.459999,5.028 Q7.8119993,5.028,7.4219995,5.418 Q7.0319996,5.808,6.8579993,6.582 Q6.6839995,7.356,6.6839995,8.532 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 187.05309 233.864)"/> +<path d="M-5.6280003,8.532 Q-5.6280003,9.576,-5.7840004,10.392 Q-5.94,11.208,-6.282,11.778 Q-6.624,12.348,-7.17,12.648 Q-7.716,12.948,-8.484,12.948 Q-9.444,12.948,-10.074,12.42 Q-10.704,11.892,-11.01,10.902 Q-11.316,9.912,-11.316,8.532 Q-11.316,7.14,-11.034,6.156 Q-10.752001,5.172,-10.128,4.6499996 Q-9.504,4.1280003,-8.484,4.1280003 Q-7.524,4.1280003,-6.888,4.6499996 Q-6.2520003,5.172,-5.94,6.156 Q-5.6280003,7.14,-5.6280003,8.532 z M-10.26,8.532 Q-10.26,9.708,-10.086,10.488 Q-9.912001,11.268,-9.522,11.658 Q-9.132,12.048,-8.484,12.048 Q-7.8360004,12.048,-7.446,11.664 Q-7.056,11.28,-6.8760004,10.4939995 Q-6.696,9.708,-6.696,8.532 Q-6.696,7.356,-6.8760004,6.582 Q-7.056,5.808,-7.446,5.418 Q-7.8360004,5.028,-8.484,5.028 Q-9.132,5.028,-9.522,5.418 Q-9.912001,5.808,-10.086,6.582 Q-10.26,7.356,-10.26,8.532 z M-4.1760006,12.18 Q-4.1760006,11.736,-3.9600005,11.556 Q-3.7440004,11.376,-3.4440005,11.376 Q-3.1320004,11.376,-2.9100003,11.556 Q-2.6880004,11.736,-2.6880004,12.18 Q-2.6880004,12.612,-2.9100003,12.804 Q-3.1320004,12.996,-3.4440005,12.996 Q-3.7440004,12.996,-3.9600005,12.804 Q-4.1760006,12.612,-4.1760006,12.18 z M-1.1640003,9.168 Q-1.1640003,8.424,-1.0620003,7.704 Q-0.96000034,6.984,-0.7080003,6.342 Q-0.45600033,5.7,-0.012000322,5.202 Q0.43199968,4.7040005,1.1099997,4.422 Q1.7879996,4.1400003,2.7599998,4.1400003 Q3.0119996,4.1400003,3.3179998,4.1639996 Q3.6239996,4.1879997,3.8159995,4.248 L3.8159995,5.148 Q3.6,5.076,3.33,5.04 Q3.0599995,5.004,2.7839994,5.004 Q1.9559996,5.004,1.4039996,5.28 Q0.85199976,5.556,0.5339997,6.036 Q0.2159996,6.516,0.07199967,7.14 Q-0.072000384,7.764,-0.1080004,8.472 L-0.03600037,8.472 Q0.1439997,8.184,0.4199996,7.956 Q0.6959996,7.728,1.0859997,7.596 Q1.4759996,7.464,1.9919996,7.464 Q2.7359996,7.464,3.2939997,7.77 Q3.8519998,8.076,4.1639996,8.658 Q4.476,9.24,4.476,10.068 Q4.476,10.956,4.14,11.604 Q3.804,12.252,3.1979995,12.6 Q2.5919995,12.948,1.7519996,12.948 Q1.1399996,12.948,0.61199975,12.72 Q0.083999634,12.492,-0.31800032,12.024 Q-0.7200004,11.556,-0.9420003,10.842 Q-1.1640003,10.128,-1.1640003,9.168 z M1.7399998,12.06 Q2.4959998,12.06,2.9639997,11.574 Q3.4319997,11.088,3.4319997,10.068 Q3.4319997,9.252,3.0179996,8.771999 Q2.6039996,8.292,1.7759998,8.292 Q1.2119997,8.292,0.7919996,8.526 Q0.37199974,8.76,0.13799965,9.12 Q-0.096000314,9.48,-0.096000314,9.864 Q-0.096000314,10.26,0.017999649,10.644 Q0.13199961,11.028,0.3659997,11.352 Q0.59999967,11.676001,0.9419997,11.868 Q1.2839997,12.06,1.7399998,12.06 z M11.316,8.532 Q11.316,9.576,11.16,10.392 Q11.004,11.208,10.662,11.778 Q10.32,12.348,9.774,12.648 Q9.228,12.948,8.459999,12.948 Q7.4999995,12.948,6.8699994,12.42 Q6.24,11.892,5.9339995,10.902 Q5.6279993,9.912,5.6279993,8.532 Q5.6279993,7.14,5.9099994,6.156 Q6.1919994,5.172,6.8159995,4.6499996 Q7.4399996,4.1280003,8.459999,4.1280003 Q9.42,4.1280003,10.056,4.6499996 Q10.691999,5.172,11.004,6.156 Q11.316,7.14,11.316,8.532 z M6.6839995,8.532 Q6.6839995,9.708,6.8579993,10.488 Q7.0319996,11.268,7.4219995,11.658 Q7.8119993,12.048,8.459999,12.048 Q9.108,12.048,9.497999,11.664 Q9.888,11.28,10.067999,10.4939995 Q10.247999,9.708,10.247999,8.532 Q10.247999,7.356,10.067999,6.582 Q9.888,5.808,9.497999,5.418 Q9.108,5.028,8.459999,5.028 Q7.8119993,5.028,7.4219995,5.418 Q7.0319996,5.808,6.8579993,6.582 Q6.6839995,7.356,6.6839995,8.532 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 231.33557 233.864)"/> +<path d="M-5.6280003,8.532 Q-5.6280003,9.576,-5.7840004,10.392 Q-5.94,11.208,-6.282,11.778 Q-6.624,12.348,-7.17,12.648 Q-7.716,12.948,-8.484,12.948 Q-9.444,12.948,-10.074,12.42 Q-10.704,11.892,-11.01,10.902 Q-11.316,9.912,-11.316,8.532 Q-11.316,7.14,-11.034,6.156 Q-10.752001,5.172,-10.128,4.6499996 Q-9.504,4.1280003,-8.484,4.1280003 Q-7.524,4.1280003,-6.888,4.6499996 Q-6.2520003,5.172,-5.94,6.156 Q-5.6280003,7.14,-5.6280003,8.532 z M-10.26,8.532 Q-10.26,9.708,-10.086,10.488 Q-9.912001,11.268,-9.522,11.658 Q-9.132,12.048,-8.484,12.048 Q-7.8360004,12.048,-7.446,11.664 Q-7.056,11.28,-6.8760004,10.4939995 Q-6.696,9.708,-6.696,8.532 Q-6.696,7.356,-6.8760004,6.582 Q-7.056,5.808,-7.446,5.418 Q-7.8360004,5.028,-8.484,5.028 Q-9.132,5.028,-9.522,5.418 Q-9.912001,5.808,-10.086,6.582 Q-10.26,7.356,-10.26,8.532 z M-4.1760006,12.18 Q-4.1760006,11.736,-3.9600005,11.556 Q-3.7440004,11.376,-3.4440005,11.376 Q-3.1320004,11.376,-2.9100003,11.556 Q-2.6880004,11.736,-2.6880004,12.18 Q-2.6880004,12.612,-2.9100003,12.804 Q-3.1320004,12.996,-3.4440005,12.996 Q-3.7440004,12.996,-3.9600005,12.804 Q-4.1760006,12.612,-4.1760006,12.18 z M1.5959997,4.1400003 Q2.3519998,4.1400003,2.9279995,4.3739996 Q3.5039997,4.608,3.8339996,5.064 Q4.1639996,5.52,4.1639996,6.192 Q4.1639996,6.708,3.942,7.092 Q3.7199998,7.476,3.3479996,7.77 Q2.9759998,8.064,2.5319996,8.292 Q3.0599995,8.544001,3.4919996,8.8619995 Q3.9239998,9.18,4.1819997,9.6 Q4.4399996,10.02,4.4399996,10.608 Q4.4399996,11.328,4.0919995,11.85 Q3.7439995,12.372,3.1139998,12.66 Q2.4839997,12.948,1.6319997,12.948 Q0.7079997,12.948,0.06599963,12.672 Q-0.57600033,12.396,-0.9060004,11.886 Q-1.2360003,11.376,-1.2360003,10.644 Q-1.2360003,10.056,-0.99000037,9.624001 Q-0.7440003,9.192,-0.33600032,8.88 Q0.07199967,8.568,0.5399997,8.352 Q0.11999965,8.1119995,-0.22200036,7.806 Q-0.56400037,7.5,-0.7620003,7.104 Q-0.96000034,6.708,-0.96000034,6.18 Q-0.96000034,5.52,-0.6240003,5.07 Q-0.28800035,4.62,0.28799963,4.38 Q0.8639996,4.1400003,1.5959997,4.1400003 z M-0.20400035,10.656 Q-0.20400035,11.28,0.23999977,11.694 Q0.6839998,12.108,1.6079996,12.108 Q2.4839997,12.108,2.9459996,11.694 Q3.4079995,11.28,3.4079995,10.62 Q3.4079995,10.2,3.1859999,9.882 Q2.9639997,9.564,2.5619998,9.312 Q2.1599996,9.059999,1.6079996,8.856 L1.4159997,8.784 Q0.8879998,9.012,0.52799964,9.276 Q0.16799963,9.54,-0.018000364,9.875999 Q-0.20400035,10.212,-0.20400035,10.656 z M1.5839996,4.992 Q0.92399955,4.992,0.49799967,5.31 Q0.07199967,5.628,0.07199967,6.228 Q0.07199967,6.672,0.2819996,6.972 Q0.49199963,7.272,0.85199976,7.482 Q1.2119997,7.692,1.6439996,7.884 Q2.0639997,7.704,2.3939996,7.488 Q2.7239995,7.272,2.9219995,6.966 Q3.12,6.66,3.12,6.228 Q3.12,5.628,2.6999998,5.31 Q2.2799997,4.992,1.5839996,4.992 z M11.316,8.532 Q11.316,9.576,11.16,10.392 Q11.004,11.208,10.662,11.778 Q10.32,12.348,9.774,12.648 Q9.228,12.948,8.459999,12.948 Q7.4999995,12.948,6.8699994,12.42 Q6.24,11.892,5.9339995,10.902 Q5.6279993,9.912,5.6279993,8.532 Q5.6279993,7.14,5.9099994,6.156 Q6.1919994,5.172,6.8159995,4.6499996 Q7.4399996,4.1280003,8.459999,4.1280003 Q9.42,4.1280003,10.056,4.6499996 Q10.691999,5.172,11.004,6.156 Q11.316,7.14,11.316,8.532 z M6.6839995,8.532 Q6.6839995,9.708,6.8579993,10.488 Q7.0319996,11.268,7.4219995,11.658 Q7.8119993,12.048,8.459999,12.048 Q9.108,12.048,9.497999,11.664 Q9.888,11.28,10.067999,10.4939995 Q10.247999,9.708,10.247999,8.532 Q10.247999,7.356,10.067999,6.582 Q9.888,5.808,9.497999,5.418 Q9.108,5.028,8.459999,5.028 Q7.8119993,5.028,7.4219995,5.418 Q7.0319996,5.808,6.8579993,6.582 Q6.6839995,7.356,6.6839995,8.532 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 275.61804 233.864)"/> +<path d="M-0.84000015,12.719999 L-3.8000004,8.528 L-2.2000003,8.528 L0.007999897,11.76 L2.1999998,8.528 L3.7840004,8.528 L0.8239999,12.719999 L3.9440002,17.104 L2.3439999,17.104 L0.007999897,13.68 L-2.3600001,17.104 L-3.9440002,17.104 L-0.84000015,12.719999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 198.896 258.208)"/> +<path d="M16.511969,-4 L16.511969,4 M56.773296,-4 L56.773296,4 M97.034615,-4 L97.034615,4 M137.29594,-4 L137.29594,4 M177.55727,-4 L177.55727,4" fill="none" stroke="#000000" stroke-width="1" transform="matrix(-0.00000004371139 -1 1 -0.00000004371139 81.6 225.864)"/> +<path d="M-17.532001,-1.0799999 Q-17.532001,-0.036000013,-17.688,0.78 Q-17.844,1.5960001,-18.186,2.1660001 Q-18.528,2.736,-19.074001,3.036 Q-19.62,3.336,-20.388,3.336 Q-21.348,3.336,-21.978,2.808 Q-22.608,2.2800002,-22.914001,1.2900001 Q-23.220001,0.29999995,-23.220001,-1.0799999 Q-23.220001,-2.4720001,-22.938,-3.4559999 Q-22.656,-4.44,-22.032001,-4.9620004 Q-21.408,-5.4839997,-20.388,-5.4839997 Q-19.428001,-5.4839997,-18.792,-4.9620004 Q-18.156,-4.44,-17.844,-3.4559999 Q-17.532001,-2.4720001,-17.532001,-1.0799999 z M-22.164001,-1.0799999 Q-22.164001,0.095999956,-21.99,0.87600017 Q-21.816,1.656,-21.426,2.046 Q-21.036001,2.436,-20.388,2.436 Q-19.740002,2.436,-19.35,2.052 Q-18.960001,1.6680001,-18.78,0.88199997 Q-18.6,0.095999956,-18.6,-1.0799999 Q-18.6,-2.256,-18.78,-3.0300002 Q-18.960001,-3.804,-19.35,-4.194 Q-19.740002,-4.584,-20.388,-4.584 Q-21.036001,-4.584,-21.426,-4.194 Q-21.816,-3.804,-21.99,-3.0300002 Q-22.164001,-2.256,-22.164001,-1.0799999 z M-16.08,2.568 Q-16.08,2.124,-15.864,1.9440001 Q-15.648001,1.764,-15.348001,1.764 Q-15.036,1.764,-14.814,1.9440001 Q-14.592,2.124,-14.592,2.568 Q-14.592,3,-14.814,3.1920002 Q-15.036,3.384,-15.348001,3.384 Q-15.648001,3.384,-15.864,3.1920002 Q-16.08,3,-16.08,2.568 z M-7.4520006,-1.0799999 Q-7.4520006,-0.036000013,-7.6080008,0.78 Q-7.7640004,1.5960001,-8.106001,2.1660001 Q-8.448,2.736,-8.994,3.036 Q-9.540001,3.336,-10.308001,3.336 Q-11.268001,3.336,-11.898001,2.808 Q-12.528001,2.2800002,-12.834001,1.2900001 Q-13.14,0.29999995,-13.14,-1.0799999 Q-13.14,-2.4720001,-12.858001,-3.4559999 Q-12.576,-4.44,-11.952001,-4.9620004 Q-11.328001,-5.4839997,-10.308001,-5.4839997 Q-9.348001,-5.4839997,-8.712,-4.9620004 Q-8.076,-4.44,-7.7640004,-3.4559999 Q-7.4520006,-2.4720001,-7.4520006,-1.0799999 z M-12.084001,-1.0799999 Q-12.084001,0.095999956,-11.910001,0.87600017 Q-11.736001,1.656,-11.346001,2.046 Q-10.956,2.436,-10.308001,2.436 Q-9.660001,2.436,-9.27,2.052 Q-8.880001,1.6680001,-8.700001,0.88199997 Q-8.52,0.095999956,-8.52,-1.0799999 Q-8.52,-2.256,-8.700001,-3.0300002 Q-8.880001,-3.804,-9.27,-4.194 Q-9.660001,-4.584,-10.308001,-4.584 Q-10.956,-4.584,-11.346001,-4.194 Q-11.736001,-3.804,-11.910001,-3.0300002 Q-12.084001,-2.256,-12.084001,-1.0799999 z M-0.5880008,-1.0799999 Q-0.5880008,-0.036000013,-0.7440009,0.78 Q-0.9000006,1.5960001,-1.2420006,2.1660001 Q-1.5840006,2.736,-2.1300006,3.036 Q-2.6760006,3.336,-3.4440007,3.336 Q-4.4040008,3.336,-5.034001,2.808 Q-5.6640005,2.2800002,-5.9700007,1.2900001 Q-6.276001,0.29999995,-6.276001,-1.0799999 Q-6.276001,-2.4720001,-5.994001,-3.4559999 Q-5.712001,-4.44,-5.088001,-4.9620004 Q-4.4640007,-5.4839997,-3.4440007,-5.4839997 Q-2.4840007,-5.4839997,-1.8480005,-4.9620004 Q-1.2120008,-4.44,-0.9000006,-3.4559999 Q-0.5880008,-2.4720001,-0.5880008,-1.0799999 z M-5.2200007,-1.0799999 Q-5.2200007,0.095999956,-5.046001,0.87600017 Q-4.8720007,1.656,-4.482001,2.046 Q-4.092001,2.436,-3.4440007,2.436 Q-2.796001,2.436,-2.4060006,2.052 Q-2.0160007,1.6680001,-1.8360009,0.88199997 Q-1.6560006,0.095999956,-1.6560006,-1.0799999 Q-1.6560006,-2.256,-1.8360009,-3.0300002 Q-2.0160007,-3.804,-2.4060006,-4.194 Q-2.796001,-4.584,-3.4440007,-4.584 Q-4.092001,-4.584,-4.482001,-4.194 Q-4.8720007,-3.804,-5.046001,-3.0300002 Q-5.2200007,-2.256,-5.2200007,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 73.6 209.35204)"/> +<path d="M-17.532001,-1.0799999 Q-17.532001,-0.036000013,-17.688,0.78 Q-17.844,1.5960001,-18.186,2.1660001 Q-18.528,2.736,-19.074001,3.036 Q-19.62,3.336,-20.388,3.336 Q-21.348,3.336,-21.978,2.808 Q-22.608,2.2800002,-22.914001,1.2900001 Q-23.220001,0.29999995,-23.220001,-1.0799999 Q-23.220001,-2.4720001,-22.938,-3.4559999 Q-22.656,-4.44,-22.032001,-4.9620004 Q-21.408,-5.4839997,-20.388,-5.4839997 Q-19.428001,-5.4839997,-18.792,-4.9620004 Q-18.156,-4.44,-17.844,-3.4559999 Q-17.532001,-2.4720001,-17.532001,-1.0799999 z M-22.164001,-1.0799999 Q-22.164001,0.095999956,-21.99,0.87600017 Q-21.816,1.656,-21.426,2.046 Q-21.036001,2.436,-20.388,2.436 Q-19.740002,2.436,-19.35,2.052 Q-18.960001,1.6680001,-18.78,0.88199997 Q-18.6,0.095999956,-18.6,-1.0799999 Q-18.6,-2.256,-18.78,-3.0300002 Q-18.960001,-3.804,-19.35,-4.194 Q-19.740002,-4.584,-20.388,-4.584 Q-21.036001,-4.584,-21.426,-4.194 Q-21.816,-3.804,-21.99,-3.0300002 Q-22.164001,-2.256,-22.164001,-1.0799999 z M-16.08,2.568 Q-16.08,2.124,-15.864,1.9440001 Q-15.648001,1.764,-15.348001,1.764 Q-15.036,1.764,-14.814,1.9440001 Q-14.592,2.124,-14.592,2.568 Q-14.592,3,-14.814,3.1920002 Q-15.036,3.384,-15.348001,3.384 Q-15.648001,3.384,-15.864,3.1920002 Q-16.08,3,-16.08,2.568 z M-7.4880004,3.216 L-13.152,3.216 L-13.152,2.3400002 L-10.908001,0.07200003 Q-10.26,-0.576,-9.816001,-1.0799999 Q-9.372001,-1.5840001,-9.144001,-2.0700002 Q-8.916,-2.5559998,-8.916,-3.132 Q-8.916,-3.8400002,-9.336,-4.206 Q-9.7560005,-4.572,-10.428,-4.572 Q-11.052,-4.572,-11.526001,-4.356 Q-12.000001,-4.14,-12.492001,-3.756 L-13.056001,-4.464 Q-12.72,-4.752,-12.318001,-4.98 Q-11.916,-5.2079997,-11.442,-5.3399997 Q-10.968,-5.4719996,-10.428,-5.4719996 Q-9.624001,-5.4719996,-9.048,-5.1959996 Q-8.472,-4.9199996,-8.154001,-4.41 Q-7.8360004,-3.9,-7.8360004,-3.192 Q-7.8360004,-2.52,-8.112,-1.9320002 Q-8.3880005,-1.3439999,-8.880001,-0.7739999 Q-9.372001,-0.204,-10.032001,0.444 L-11.820001,2.2080002 L-11.820001,2.256 L-7.4880004,2.256 L-7.4880004,3.216 z M-0.5880008,-1.0799999 Q-0.5880008,-0.036000013,-0.7440009,0.78 Q-0.9000006,1.5960001,-1.2420006,2.1660001 Q-1.5840006,2.736,-2.1300006,3.036 Q-2.6760006,3.336,-3.4440007,3.336 Q-4.4040008,3.336,-5.034001,2.808 Q-5.6640005,2.2800002,-5.9700007,1.2900001 Q-6.276001,0.29999995,-6.276001,-1.0799999 Q-6.276001,-2.4720001,-5.994001,-3.4559999 Q-5.712001,-4.44,-5.088001,-4.9620004 Q-4.4640007,-5.4839997,-3.4440007,-5.4839997 Q-2.4840007,-5.4839997,-1.8480005,-4.9620004 Q-1.2120008,-4.44,-0.9000006,-3.4559999 Q-0.5880008,-2.4720001,-0.5880008,-1.0799999 z M-5.2200007,-1.0799999 Q-5.2200007,0.095999956,-5.046001,0.87600017 Q-4.8720007,1.656,-4.482001,2.046 Q-4.092001,2.436,-3.4440007,2.436 Q-2.796001,2.436,-2.4060006,2.052 Q-2.0160007,1.6680001,-1.8360009,0.88199997 Q-1.6560006,0.095999956,-1.6560006,-1.0799999 Q-1.6560006,-2.256,-1.8360009,-3.0300002 Q-2.0160007,-3.804,-2.4060006,-4.194 Q-2.796001,-4.584,-3.4440007,-4.584 Q-4.092001,-4.584,-4.482001,-4.194 Q-4.8720007,-3.804,-5.046001,-3.0300002 Q-5.2200007,-2.256,-5.2200007,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 73.6 169.0907)"/> +<path d="M-17.532001,-1.0799999 Q-17.532001,-0.036000013,-17.688,0.78 Q-17.844,1.5960001,-18.186,2.1660001 Q-18.528,2.736,-19.074001,3.036 Q-19.62,3.336,-20.388,3.336 Q-21.348,3.336,-21.978,2.808 Q-22.608,2.2800002,-22.914001,1.2900001 Q-23.220001,0.29999995,-23.220001,-1.0799999 Q-23.220001,-2.4720001,-22.938,-3.4559999 Q-22.656,-4.44,-22.032001,-4.9620004 Q-21.408,-5.4839997,-20.388,-5.4839997 Q-19.428001,-5.4839997,-18.792,-4.9620004 Q-18.156,-4.44,-17.844,-3.4559999 Q-17.532001,-2.4720001,-17.532001,-1.0799999 z M-22.164001,-1.0799999 Q-22.164001,0.095999956,-21.99,0.87600017 Q-21.816,1.656,-21.426,2.046 Q-21.036001,2.436,-20.388,2.436 Q-19.740002,2.436,-19.35,2.052 Q-18.960001,1.6680001,-18.78,0.88199997 Q-18.6,0.095999956,-18.6,-1.0799999 Q-18.6,-2.256,-18.78,-3.0300002 Q-18.960001,-3.804,-19.35,-4.194 Q-19.740002,-4.584,-20.388,-4.584 Q-21.036001,-4.584,-21.426,-4.194 Q-21.816,-3.804,-21.99,-3.0300002 Q-22.164001,-2.256,-22.164001,-1.0799999 z M-16.08,2.568 Q-16.08,2.124,-15.864,1.9440001 Q-15.648001,1.764,-15.348001,1.764 Q-15.036,1.764,-14.814,1.9440001 Q-14.592,2.124,-14.592,2.568 Q-14.592,3,-14.814,3.1920002 Q-15.036,3.384,-15.348001,3.384 Q-15.648001,3.384,-15.864,3.1920002 Q-16.08,3,-16.08,2.568 z M-7.1040006,1.2720001 L-8.352001,1.2720001 L-8.352001,3.216 L-9.372001,3.216 L-9.372001,1.2720001 L-13.476001,1.2720001 L-13.476001,0.37199998 L-9.444,-5.4 L-8.352001,-5.4 L-8.352001,0.32400012 L-7.1040006,0.32400012 L-7.1040006,1.2720001 z M-9.372001,-2.376 Q-9.372001,-2.6880002,-9.366001,-2.946 Q-9.360001,-3.204,-9.348001,-3.4320002 Q-9.336,-3.6599998,-9.33,-3.87 Q-9.324001,-4.08,-9.312,-4.272 L-9.360001,-4.272 Q-9.456001,-4.044,-9.6,-3.7800002 Q-9.744,-3.5159998,-9.876,-3.336 L-12.444,0.32400012 L-9.372001,0.32400012 L-9.372001,-2.376 z M-0.5880008,-1.0799999 Q-0.5880008,-0.036000013,-0.7440009,0.78 Q-0.9000006,1.5960001,-1.2420006,2.1660001 Q-1.5840006,2.736,-2.1300006,3.036 Q-2.6760006,3.336,-3.4440007,3.336 Q-4.4040008,3.336,-5.034001,2.808 Q-5.6640005,2.2800002,-5.9700007,1.2900001 Q-6.276001,0.29999995,-6.276001,-1.0799999 Q-6.276001,-2.4720001,-5.994001,-3.4559999 Q-5.712001,-4.44,-5.088001,-4.9620004 Q-4.4640007,-5.4839997,-3.4440007,-5.4839997 Q-2.4840007,-5.4839997,-1.8480005,-4.9620004 Q-1.2120008,-4.44,-0.9000006,-3.4559999 Q-0.5880008,-2.4720001,-0.5880008,-1.0799999 z M-5.2200007,-1.0799999 Q-5.2200007,0.095999956,-5.046001,0.87600017 Q-4.8720007,1.656,-4.482001,2.046 Q-4.092001,2.436,-3.4440007,2.436 Q-2.796001,2.436,-2.4060006,2.052 Q-2.0160007,1.6680001,-1.8360009,0.88199997 Q-1.6560006,0.095999956,-1.6560006,-1.0799999 Q-1.6560006,-2.256,-1.8360009,-3.0300002 Q-2.0160007,-3.804,-2.4060006,-4.194 Q-2.796001,-4.584,-3.4440007,-4.584 Q-4.092001,-4.584,-4.482001,-4.194 Q-4.8720007,-3.804,-5.046001,-3.0300002 Q-5.2200007,-2.256,-5.2200007,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 73.6 128.82938)"/> +<path d="M-17.532001,-1.0799999 Q-17.532001,-0.036000013,-17.688,0.78 Q-17.844,1.5960001,-18.186,2.1660001 Q-18.528,2.736,-19.074001,3.036 Q-19.62,3.336,-20.388,3.336 Q-21.348,3.336,-21.978,2.808 Q-22.608,2.2800002,-22.914001,1.2900001 Q-23.220001,0.29999995,-23.220001,-1.0799999 Q-23.220001,-2.4720001,-22.938,-3.4559999 Q-22.656,-4.44,-22.032001,-4.9620004 Q-21.408,-5.4839997,-20.388,-5.4839997 Q-19.428001,-5.4839997,-18.792,-4.9620004 Q-18.156,-4.44,-17.844,-3.4559999 Q-17.532001,-2.4720001,-17.532001,-1.0799999 z M-22.164001,-1.0799999 Q-22.164001,0.095999956,-21.99,0.87600017 Q-21.816,1.656,-21.426,2.046 Q-21.036001,2.436,-20.388,2.436 Q-19.740002,2.436,-19.35,2.052 Q-18.960001,1.6680001,-18.78,0.88199997 Q-18.6,0.095999956,-18.6,-1.0799999 Q-18.6,-2.256,-18.78,-3.0300002 Q-18.960001,-3.804,-19.35,-4.194 Q-19.740002,-4.584,-20.388,-4.584 Q-21.036001,-4.584,-21.426,-4.194 Q-21.816,-3.804,-21.99,-3.0300002 Q-22.164001,-2.256,-22.164001,-1.0799999 z M-16.08,2.568 Q-16.08,2.124,-15.864,1.9440001 Q-15.648001,1.764,-15.348001,1.764 Q-15.036,1.764,-14.814,1.9440001 Q-14.592,2.124,-14.592,2.568 Q-14.592,3,-14.814,3.1920002 Q-15.036,3.384,-15.348001,3.384 Q-15.648001,3.384,-15.864,3.1920002 Q-16.08,3,-16.08,2.568 z M-13.068001,-0.444 Q-13.068001,-1.1879997,-12.966001,-1.908 Q-12.864,-2.6279998,-12.612,-3.27 Q-12.360001,-3.9120002,-11.916,-4.41 Q-11.472,-4.9079995,-10.794001,-5.19 Q-10.116001,-5.4719996,-9.144001,-5.4719996 Q-8.892,-5.4719996,-8.586,-5.4480004 Q-8.280001,-5.4240003,-8.088001,-5.364 L-8.088001,-4.464 Q-8.304001,-4.536,-8.574,-4.572 Q-8.844001,-4.608,-9.120001,-4.608 Q-9.948001,-4.608,-10.500001,-4.332 Q-11.052,-4.0559998,-11.370001,-3.5760002 Q-11.688001,-3.0960002,-11.832001,-2.4720001 Q-11.976001,-1.848,-12.012001,-1.1399999 L-11.940001,-1.1399999 Q-11.76,-1.428,-11.484001,-1.6560001 Q-11.208,-1.8839998,-10.818001,-2.0159998 Q-10.428,-2.1479998,-9.912001,-2.1479998 Q-9.168001,-2.1479998,-8.610001,-1.842 Q-8.052,-1.5359998,-7.7400007,-0.954 Q-7.4280005,-0.37199998,-7.4280005,0.4560001 Q-7.4280005,1.3440001,-7.7640004,1.9920001 Q-8.1,2.64,-8.706001,2.9880002 Q-9.312,3.336,-10.152,3.336 Q-10.764001,3.336,-11.292001,3.108 Q-11.820001,2.88,-12.222,2.4120002 Q-12.624001,1.9440001,-12.846001,1.23 Q-13.068001,0.51600003,-13.068001,-0.444 z M-10.1640005,2.448 Q-9.408001,2.448,-8.940001,1.962 Q-8.472,1.4760001,-8.472,0.4560001 Q-8.472,-0.3599999,-8.886001,-0.84000015 Q-9.300001,-1.3200002,-10.128,-1.3200002 Q-10.692,-1.3200002,-11.112,-1.086 Q-11.532001,-0.85199976,-11.766001,-0.49199986 Q-12.000001,-0.13199997,-12.000001,0.2520001 Q-12.000001,0.648,-11.886001,1.0320001 Q-11.772,1.416,-11.538,1.74 Q-11.304001,2.0640001,-10.962001,2.256 Q-10.620001,2.448,-10.1640005,2.448 z M-0.5880008,-1.0799999 Q-0.5880008,-0.036000013,-0.7440009,0.78 Q-0.9000006,1.5960001,-1.2420006,2.1660001 Q-1.5840006,2.736,-2.1300006,3.036 Q-2.6760006,3.336,-3.4440007,3.336 Q-4.4040008,3.336,-5.034001,2.808 Q-5.6640005,2.2800002,-5.9700007,1.2900001 Q-6.276001,0.29999995,-6.276001,-1.0799999 Q-6.276001,-2.4720001,-5.994001,-3.4559999 Q-5.712001,-4.44,-5.088001,-4.9620004 Q-4.4640007,-5.4839997,-3.4440007,-5.4839997 Q-2.4840007,-5.4839997,-1.8480005,-4.9620004 Q-1.2120008,-4.44,-0.9000006,-3.4559999 Q-0.5880008,-2.4720001,-0.5880008,-1.0799999 z M-5.2200007,-1.0799999 Q-5.2200007,0.095999956,-5.046001,0.87600017 Q-4.8720007,1.656,-4.482001,2.046 Q-4.092001,2.436,-3.4440007,2.436 Q-2.796001,2.436,-2.4060006,2.052 Q-2.0160007,1.6680001,-1.8360009,0.88199997 Q-1.6560006,0.095999956,-1.6560006,-1.0799999 Q-1.6560006,-2.256,-1.8360009,-3.0300002 Q-2.0160007,-3.804,-2.4060006,-4.194 Q-2.796001,-4.584,-3.4440007,-4.584 Q-4.092001,-4.584,-4.482001,-4.194 Q-4.8720007,-3.804,-5.046001,-3.0300002 Q-5.2200007,-2.256,-5.2200007,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 73.6 88.568054)"/> +<path d="M-17.532001,-1.0799999 Q-17.532001,-0.036000013,-17.688,0.78 Q-17.844,1.5960001,-18.186,2.1660001 Q-18.528,2.736,-19.074001,3.036 Q-19.62,3.336,-20.388,3.336 Q-21.348,3.336,-21.978,2.808 Q-22.608,2.2800002,-22.914001,1.2900001 Q-23.220001,0.29999995,-23.220001,-1.0799999 Q-23.220001,-2.4720001,-22.938,-3.4559999 Q-22.656,-4.44,-22.032001,-4.9620004 Q-21.408,-5.4839997,-20.388,-5.4839997 Q-19.428001,-5.4839997,-18.792,-4.9620004 Q-18.156,-4.44,-17.844,-3.4559999 Q-17.532001,-2.4720001,-17.532001,-1.0799999 z M-22.164001,-1.0799999 Q-22.164001,0.095999956,-21.99,0.87600017 Q-21.816,1.656,-21.426,2.046 Q-21.036001,2.436,-20.388,2.436 Q-19.740002,2.436,-19.35,2.052 Q-18.960001,1.6680001,-18.78,0.88199997 Q-18.6,0.095999956,-18.6,-1.0799999 Q-18.6,-2.256,-18.78,-3.0300002 Q-18.960001,-3.804,-19.35,-4.194 Q-19.740002,-4.584,-20.388,-4.584 Q-21.036001,-4.584,-21.426,-4.194 Q-21.816,-3.804,-21.99,-3.0300002 Q-22.164001,-2.256,-22.164001,-1.0799999 z M-16.08,2.568 Q-16.08,2.124,-15.864,1.9440001 Q-15.648001,1.764,-15.348001,1.764 Q-15.036,1.764,-14.814,1.9440001 Q-14.592,2.124,-14.592,2.568 Q-14.592,3,-14.814,3.1920002 Q-15.036,3.384,-15.348001,3.384 Q-15.648001,3.384,-15.864,3.1920002 Q-16.08,3,-16.08,2.568 z M-10.308001,-5.4719996 Q-9.552,-5.4719996,-8.976001,-5.2380004 Q-8.400001,-5.004,-8.070001,-4.548 Q-7.7400007,-4.092,-7.7400007,-3.42 Q-7.7400007,-2.9039998,-7.9620004,-2.52 Q-8.184,-2.1360002,-8.556001,-1.842 Q-8.928,-1.5479999,-9.372001,-1.3200002 Q-8.844001,-1.0679998,-8.412001,-0.75 Q-7.9800005,-0.43199992,-7.7220006,-0.0119998455 Q-7.4640007,0.408,-7.4640007,0.99600005 Q-7.4640007,1.7160001,-7.8120008,2.2380002 Q-8.160001,2.76,-8.790001,3.048 Q-9.42,3.336,-10.272,3.336 Q-11.196001,3.336,-11.838,3.0600002 Q-12.4800005,2.7840002,-12.81,2.2740002 Q-13.14,1.764,-13.14,1.0320001 Q-13.14,0.444,-12.894001,0.012000084 Q-12.648001,-0.41999984,-12.240001,-0.7319999 Q-11.832001,-1.0440001,-11.364,-1.2599998 Q-11.784,-1.5,-12.126,-1.8059998 Q-12.468,-2.112,-12.666,-2.508 Q-12.864,-2.9039998,-12.864,-3.4320002 Q-12.864,-4.092,-12.528001,-4.542 Q-12.192,-4.992,-11.616001,-5.232 Q-11.040001,-5.4719996,-10.308001,-5.4719996 z M-12.108001,1.0440001 Q-12.108001,1.6680001,-11.6640005,2.082 Q-11.22,2.496,-10.2960005,2.496 Q-9.42,2.496,-8.958,2.082 Q-8.496,1.6680001,-8.496,1.0080001 Q-8.496,0.58800006,-8.718,0.26999998 Q-8.940001,-0.04799986,-9.342001,-0.29999995 Q-9.744,-0.55200005,-10.2960005,-0.75600004 L-10.488001,-0.82800007 Q-11.016001,-0.5999999,-11.376,-0.33599997 Q-11.736001,-0.07200003,-11.922001,0.26399994 Q-12.108001,0.60000014,-12.108001,1.0440001 z M-10.320001,-4.62 Q-10.9800005,-4.62,-11.406,-4.302 Q-11.832001,-3.9840002,-11.832001,-3.3839998 Q-11.832001,-2.94,-11.622001,-2.6399999 Q-11.412001,-2.3400002,-11.052,-2.13 Q-10.692,-1.9200001,-10.26,-1.7280002 Q-9.84,-1.908,-9.51,-2.124 Q-9.18,-2.3400002,-8.982,-2.646 Q-8.784,-2.9520001,-8.784,-3.3839998 Q-8.784,-3.9840002,-9.204,-4.302 Q-9.624001,-4.62,-10.320001,-4.62 z M-0.5880008,-1.0799999 Q-0.5880008,-0.036000013,-0.7440009,0.78 Q-0.9000006,1.5960001,-1.2420006,2.1660001 Q-1.5840006,2.736,-2.1300006,3.036 Q-2.6760006,3.336,-3.4440007,3.336 Q-4.4040008,3.336,-5.034001,2.808 Q-5.6640005,2.2800002,-5.9700007,1.2900001 Q-6.276001,0.29999995,-6.276001,-1.0799999 Q-6.276001,-2.4720001,-5.994001,-3.4559999 Q-5.712001,-4.44,-5.088001,-4.9620004 Q-4.4640007,-5.4839997,-3.4440007,-5.4839997 Q-2.4840007,-5.4839997,-1.8480005,-4.9620004 Q-1.2120008,-4.44,-0.9000006,-3.4559999 Q-0.5880008,-2.4720001,-0.5880008,-1.0799999 z M-5.2200007,-1.0799999 Q-5.2200007,0.095999956,-5.046001,0.87600017 Q-4.8720007,1.656,-4.482001,2.046 Q-4.092001,2.436,-3.4440007,2.436 Q-2.796001,2.436,-2.4060006,2.052 Q-2.0160007,1.6680001,-1.8360009,0.88199997 Q-1.6560006,0.095999956,-1.6560006,-1.0799999 Q-1.6560006,-2.256,-1.8360009,-3.0300002 Q-2.0160007,-3.804,-2.4060006,-4.194 Q-2.796001,-4.584,-3.4440007,-4.584 Q-4.092001,-4.584,-4.482001,-4.194 Q-4.8720007,-3.804,-5.046001,-3.0300002 Q-5.2200007,-2.256,-5.2200007,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 73.6 48.306732)"/> +<path d="M-4.0640006,-13.264 L-2.5600004,-13.264 L-0.70400023,-8.384001 Q-0.54400015,-7.9520006,-0.40800023,-7.552 Q-0.2720003,-7.1520004,-0.16000032,-6.776 Q-0.048000336,-6.4000006,0.015999794,-6.0480003 L0.07999992,-6.0480003 Q0.17599964,-6.4480004,0.38399982,-7.0960007 Q0.592,-7.7440004,0.816,-8.400001 L2.56,-13.264 L4.0800004,-13.264 L0.38399982,-3.5040002 Q0.07999992,-2.704,-0.3280003,-2.104 Q-0.7360003,-1.504,-1.3200002,-1.1760001 Q-1.9040003,-0.84800005,-2.7360003,-0.84800005 Q-3.1200004,-0.84800005,-3.4080005,-0.888 Q-3.6960003,-0.928,-3.9040003,-0.9760001 L-3.9040003,-2.0960002 Q-3.7280004,-2.0640001,-3.4800005,-2.032 Q-3.2320004,-2,-2.9600005,-2 Q-2.4640002,-2,-2.1040003,-2.184 Q-1.7440002,-2.368,-1.4880004,-2.7120001 Q-1.2320004,-3.0560002,-1.0560002,-3.52 L-0.6080003,-4.656 L-4.0640006,-13.264 z" fill="#000000" stroke="none" transform="matrix(-0.00000004371139 -1 1 -0.00000004371139 41.792 122.932)"/> +<rect fill="none" height="205.864" stroke="#000000" stroke-width="1" width="234.59201" x="81.6" y="20"/> +<path d="M328.19202,225.864 L328.19202,225.36433 L348.19202,225.36433 L348.19202,225.864" fill="#440154" stroke="none"/> +<path d="M328.19202,225.36433 L328.19202,224.36499 L348.19202,224.36499 L348.19202,225.36433" fill="#440355" stroke="none"/> +<path d="M328.19202,224.36499 L328.19202,223.36566 L348.19202,223.36566 L348.19202,224.36499" fill="#440656" stroke="none"/> +<path d="M328.19202,223.36566 L328.19202,222.36632 L348.19202,222.36632 L348.19202,223.36566" fill="#450857" stroke="none"/> +<path d="M328.19202,222.36632 L328.19202,221.36697 L348.19202,221.36697 L348.19202,222.36632" fill="#450b58" stroke="none"/> +<path d="M328.19202,221.36697 L328.19202,220.36763 L348.19202,220.36763 L348.19202,221.36697" fill="#450d59" stroke="none"/> +<path d="M328.19202,220.36763 L328.19202,219.3683 L348.19202,219.3683 L348.19202,220.36763" fill="#45105a" stroke="none"/> +<path d="M328.19202,219.3683 L328.19202,218.36896 L348.19202,218.36896 L348.19202,219.3683" fill="#45125b" stroke="none"/> +<path d="M328.19202,218.36896 L328.19202,217.36961 L348.19202,217.36961 L348.19202,218.36896" fill="#45145c" stroke="none"/> +<path d="M328.19202,217.36961 L328.19202,216.37027 L348.19202,216.37027 L348.19202,217.36961" fill="#45165d" stroke="none"/> +<path d="M328.19202,216.37027 L328.19202,215.37094 L348.19202,215.37094 L348.19202,216.37027" fill="#46175e" stroke="none"/> +<path d="M328.19202,215.37094 L328.19202,214.3716 L348.19202,214.3716 L348.19202,215.37094" fill="#46195f" stroke="none"/> +<path d="M328.19202,214.3716 L328.19202,213.37225 L348.19202,213.37225 L348.19202,214.3716" fill="#461b60" stroke="none"/> +<path d="M328.19202,213.37225 L328.19202,212.37291 L348.19202,212.37291 L348.19202,213.37225" fill="#461c61" stroke="none"/> +<path d="M328.19202,212.37291 L328.19202,211.37358 L348.19202,211.37358 L348.19202,212.37291" fill="#461e62" stroke="none"/> +<path d="M328.19202,211.37358 L328.19202,210.37424 L348.19202,210.37424 L348.19202,211.37358" fill="#462063" stroke="none"/> +<path d="M328.19202,210.37424 L328.19202,209.3749 L348.19202,209.3749 L348.19202,210.37424" fill="#462164" stroke="none"/> +<path d="M328.19202,209.3749 L328.19202,208.37555 L348.19202,208.37555 L348.19202,209.3749" fill="#462365" stroke="none"/> +<path d="M328.19202,208.37555 L328.19202,207.37622 L348.19202,207.37622 L348.19202,208.37555" fill="#462466" stroke="none"/> +<path d="M328.19202,207.37622 L328.19202,206.37688 L348.19202,206.37688 L348.19202,207.37622" fill="#462667" stroke="none"/> +<path d="M328.19202,206.37688 L328.19202,205.37753 L348.19202,205.37753 L348.19202,206.37688" fill="#462769" stroke="none"/> +<path d="M328.19202,205.37753 L328.19202,204.3782 L348.19202,204.3782 L348.19202,205.37753" fill="#46296a" stroke="none"/> +<path d="M328.19202,204.3782 L328.19202,203.37886 L348.19202,203.37886 L348.19202,204.3782" fill="#462a6b" stroke="none"/> +<path d="M328.19202,203.37886 L328.19202,202.37952 L348.19202,202.37952 L348.19202,203.37886" fill="#462b6c" stroke="none"/> +<path d="M328.19202,202.37952 L328.19202,201.38017 L348.19202,201.38017 L348.19202,202.37952" fill="#452d6d" stroke="none"/> +<path d="M328.19202,201.38017 L328.19202,200.38084 L348.19202,200.38084 L348.19202,201.38017" fill="#452e6e" stroke="none"/> +<path d="M328.19202,200.38084 L328.19202,199.3815 L348.19202,199.3815 L348.19202,200.38084" fill="#45306f" stroke="none"/> +<path d="M328.19202,199.3815 L328.19202,198.38216 L348.19202,198.38216 L348.19202,199.3815" fill="#453170" stroke="none"/> +<path d="M328.19202,198.38216 L328.19202,197.38281 L348.19202,197.38281 L348.19202,198.38216" fill="#453271" stroke="none"/> +<path d="M328.19202,197.38281 L328.19202,196.38348 L348.19202,196.38348 L348.19202,197.38281" fill="#453472" stroke="none"/> +<path d="M328.19202,196.38348 L328.19202,195.38414 L348.19202,195.38414 L348.19202,196.38348" fill="#453573" stroke="none"/> +<path d="M328.19202,195.38414 L328.19202,194.3848 L348.19202,194.3848 L348.19202,195.38414" fill="#443674" stroke="none"/> +<path d="M328.19202,194.3848 L328.19202,193.38547 L348.19202,193.38547 L348.19202,194.3848" fill="#443875" stroke="none"/> +<path d="M328.19202,193.38547 L328.19202,192.38612 L348.19202,192.38612 L348.19202,193.38547" fill="#443976" stroke="none"/> +<path d="M328.19202,192.38612 L328.19202,191.38678 L348.19202,191.38678 L348.19202,192.38612" fill="#443a77" stroke="none"/> +<path d="M328.19202,191.38678 L328.19202,190.38744 L348.19202,190.38744 L348.19202,191.38678" fill="#433c78" stroke="none"/> +<path d="M328.19202,190.38744 L328.19202,189.38809 L348.19202,189.38809 L348.19202,190.38744" fill="#433d79" stroke="none"/> +<path d="M328.19202,189.38809 L328.19202,188.38876 L348.19202,188.38876 L348.19202,189.38809" fill="#433e7a" stroke="none"/> +<path d="M328.19202,188.38876 L328.19202,187.38942 L348.19202,187.38942 L348.19202,188.38876" fill="#42407b" stroke="none"/> +<path d="M328.19202,187.38942 L328.19202,186.39008 L348.19202,186.39008 L348.19202,187.38942" fill="#42417d" stroke="none"/> +<path d="M328.19202,186.39008 L328.19202,185.39075 L348.19202,185.39075 L348.19202,186.39008" fill="#42427e" stroke="none"/> +<path d="M328.19202,185.39075 L328.19202,184.3914 L348.19202,184.3914 L348.19202,185.39075" fill="#41437f" stroke="none"/> +<path d="M328.19202,184.3914 L328.19202,183.39206 L348.19202,183.39206 L348.19202,184.3914" fill="#414580" stroke="none"/> +<path d="M328.19202,183.39206 L328.19202,182.39273 L348.19202,182.39273 L348.19202,183.39206" fill="#404681" stroke="none"/> +<path d="M328.19202,182.39273 L328.19202,181.39339 L348.19202,181.39339 L348.19202,182.39273" fill="#404782" stroke="none"/> +<path d="M328.19202,181.39339 L328.19202,180.39404 L348.19202,180.39404 L348.19202,181.39339" fill="#3f4983" stroke="none"/> +<path d="M328.19202,180.39404 L328.19202,179.3947 L348.19202,179.3947 L348.19202,180.39404" fill="#3f4a84" stroke="none"/> +<path d="M328.19202,179.3947 L328.19202,178.39536 L348.19202,178.39536 L348.19202,179.3947" fill="#3e4b85" stroke="none"/> +<path d="M328.19202,178.39536 L328.19202,177.39603 L348.19202,177.39603 L348.19202,178.39536" fill="#3d4d86" stroke="none"/> +<path d="M328.19202,177.39603 L328.19202,176.39668 L348.19202,176.39668 L348.19202,177.39603" fill="#3d4e87" stroke="none"/> +<path d="M328.19202,176.39668 L328.19202,175.39734 L348.19202,175.39734 L348.19202,176.39668" fill="#3c4f88" stroke="none"/> +<path d="M328.19202,175.39734 L328.19202,174.39801 L348.19202,174.39801 L348.19202,175.39734" fill="#3b5089" stroke="none"/> +<path d="M328.19202,174.39801 L328.19202,173.39867 L348.19202,173.39867 L348.19202,174.39801" fill="#3b528a" stroke="none"/> +<path d="M328.19202,173.39867 L328.19202,172.39932 L348.19202,172.39932 L348.19202,173.39867" fill="#3b538a" stroke="none"/> +<path d="M328.19202,172.39932 L328.19202,171.39998 L348.19202,171.39998 L348.19202,172.39932" fill="#3b548a" stroke="none"/> +<path d="M328.19202,171.39998 L328.19202,170.40063 L348.19202,170.40063 L348.19202,171.39998" fill="#3a558a" stroke="none"/> +<path d="M328.19202,170.40063 L328.19202,169.4013 L348.19202,169.4013 L348.19202,170.40063" fill="#3a578a" stroke="none"/> +<path d="M328.19202,169.4013 L328.19202,168.40196 L348.19202,168.40196 L348.19202,169.4013" fill="#3a588b" stroke="none"/> +<path d="M328.19202,168.40196 L328.19202,167.40262 L348.19202,167.40262 L348.19202,168.40196" fill="#3a598b" stroke="none"/> +<path d="M328.19202,167.40262 L328.19202,166.40329 L348.19202,166.40329 L348.19202,167.40262" fill="#3a5a8b" stroke="none"/> +<path d="M328.19202,166.40329 L328.19202,165.40395 L348.19202,165.40395 L348.19202,166.40329" fill="#395c8b" stroke="none"/> +<path d="M328.19202,165.40395 L328.19202,164.4046 L348.19202,164.4046 L348.19202,165.40395" fill="#395d8b" stroke="none"/> +<path d="M328.19202,164.4046 L328.19202,163.40527 L348.19202,163.40527 L348.19202,164.4046" fill="#395e8b" stroke="none"/> +<path d="M328.19202,163.40527 L328.19202,162.40593 L348.19202,162.40593 L348.19202,163.40527" fill="#385f8b" stroke="none"/> +<path d="M328.19202,162.40593 L328.19202,161.40659 L348.19202,161.40659 L348.19202,162.40593" fill="#38608b" stroke="none"/> +<path d="M328.19202,161.40659 L328.19202,160.40726 L348.19202,160.40726 L348.19202,161.40659" fill="#38628b" stroke="none"/> +<path d="M328.19202,160.40726 L328.19202,159.4079 L348.19202,159.4079 L348.19202,160.40726" fill="#38638b" stroke="none"/> +<path d="M328.19202,159.4079 L328.19202,158.40857 L348.19202,158.40857 L348.19202,159.4079" fill="#37648b" stroke="none"/> +<path d="M328.19202,158.40857 L328.19202,157.40923 L348.19202,157.40923 L348.19202,158.40857" fill="#37658c" stroke="none"/> +<path d="M328.19202,157.40923 L328.19202,156.40988 L348.19202,156.40988 L348.19202,157.40923" fill="#37678c" stroke="none"/> +<path d="M328.19202,156.40988 L328.19202,155.41055 L348.19202,155.41055 L348.19202,156.40988" fill="#36688c" stroke="none"/> +<path d="M328.19202,155.41055 L328.19202,154.41121 L348.19202,154.41121 L348.19202,155.41055" fill="#36698c" stroke="none"/> +<path d="M328.19202,154.41121 L328.19202,153.41187 L348.19202,153.41187 L348.19202,154.41121" fill="#366a8c" stroke="none"/> +<path d="M328.19202,153.41187 L328.19202,152.41254 L348.19202,152.41254 L348.19202,153.41187" fill="#356b8c" stroke="none"/> +<path d="M328.19202,152.41254 L328.19202,151.41318 L348.19202,151.41318 L348.19202,152.41254" fill="#356d8c" stroke="none"/> +<path d="M328.19202,151.41318 L328.19202,150.41385 L348.19202,150.41385 L348.19202,151.41318" fill="#346e8c" stroke="none"/> +<path d="M328.19202,150.41385 L328.19202,149.4145 L348.19202,149.4145 L348.19202,150.41385" fill="#346f8c" stroke="none"/> +<path d="M328.19202,149.4145 L328.19202,148.41516 L348.19202,148.41516 L348.19202,149.4145" fill="#34708c" stroke="none"/> +<path d="M328.19202,148.41516 L328.19202,147.41583 L348.19202,147.41583 L348.19202,148.41516" fill="#33718c" stroke="none"/> +<path d="M328.19202,147.41583 L328.19202,146.41649 L348.19202,146.41649 L348.19202,147.41583" fill="#33738c" stroke="none"/> +<path d="M328.19202,146.41649 L328.19202,145.41714 L348.19202,145.41714 L348.19202,146.41649" fill="#32748c" stroke="none"/> +<path d="M328.19202,145.41714 L328.19202,144.41782 L348.19202,144.41782 L348.19202,145.41714" fill="#32758c" stroke="none"/> +<path d="M328.19202,144.41782 L328.19202,143.41847 L348.19202,143.41847 L348.19202,144.41782" fill="#31768c" stroke="none"/> +<path d="M328.19202,143.41847 L328.19202,142.41913 L348.19202,142.41913 L348.19202,143.41847" fill="#31778c" stroke="none"/> +<path d="M328.19202,142.41913 L328.19202,141.4198 L348.19202,141.4198 L348.19202,142.41913" fill="#30788c" stroke="none"/> +<path d="M328.19202,141.4198 L328.19202,140.42044 L348.19202,140.42044 L348.19202,141.4198" fill="#2f7a8c" stroke="none"/> +<path d="M328.19202,140.42044 L328.19202,139.42111 L348.19202,139.42111 L348.19202,140.42044" fill="#2f7b8c" stroke="none"/> +<path d="M328.19202,139.42111 L328.19202,138.42177 L348.19202,138.42177 L348.19202,139.42111" fill="#2e7c8c" stroke="none"/> +<path d="M328.19202,138.42177 L328.19202,137.42242 L348.19202,137.42242 L348.19202,138.42177" fill="#2e7d8c" stroke="none"/> +<path d="M328.19202,137.42242 L328.19202,136.4231 L348.19202,136.4231 L348.19202,137.42242" fill="#2d7e8c" stroke="none"/> +<path d="M328.19202,136.4231 L328.19202,135.42375 L348.19202,135.42375 L348.19202,136.4231" fill="#2c808c" stroke="none"/> +<path d="M328.19202,135.42375 L328.19202,134.42441 L348.19202,134.42441 L348.19202,135.42375" fill="#2b818c" stroke="none"/> +<path d="M328.19202,134.42441 L328.19202,133.42508 L348.19202,133.42508 L348.19202,134.42441" fill="#2b828c" stroke="none"/> +<path d="M328.19202,133.42508 L328.19202,132.42572 L348.19202,132.42572 L348.19202,133.42508" fill="#2a838c" stroke="none"/> +<path d="M328.19202,132.42572 L328.19202,131.42639 L348.19202,131.42639 L348.19202,132.42572" fill="#29848c" stroke="none"/> +<path d="M328.19202,131.42639 L328.19202,130.42705 L348.19202,130.42705 L348.19202,131.42639" fill="#28868c" stroke="none"/> +<path d="M328.19202,130.42705 L328.19202,129.4277 L348.19202,129.4277 L348.19202,130.42705" fill="#27878c" stroke="none"/> +<path d="M328.19202,129.4277 L328.19202,128.42838 L348.19202,128.42838 L348.19202,129.4277" fill="#26888c" stroke="none"/> +<path d="M328.19202,128.42838 L328.19202,127.42902 L348.19202,127.42902 L348.19202,128.42838" fill="#26898c" stroke="none"/> +<path d="M328.19202,127.42902 L328.19202,126.42969 L348.19202,126.42969 L348.19202,127.42902" fill="#258a8c" stroke="none"/> +<path d="M328.19202,126.42969 L328.19202,125.43034 L348.19202,125.43034 L348.19202,126.42969" fill="#238b8c" stroke="none"/> +<path d="M328.19202,125.43034 L328.19202,124.43101 L348.19202,124.43101 L348.19202,125.43034" fill="#228d8c" stroke="none"/> +<path d="M328.19202,124.43101 L328.19202,123.43166 L348.19202,123.43166 L348.19202,124.43101" fill="#218e8c" stroke="none"/> +<path d="M328.19202,123.43166 L328.19202,122.43233 L348.19202,122.43233 L348.19202,123.43166" fill="#208f8c" stroke="none"/> +<path d="M328.19202,122.43233 L328.19202,121.43298 L348.19202,121.43298 L348.19202,122.43233" fill="#21908b" stroke="none"/> +<path d="M328.19202,121.43298 L328.19202,120.43365 L348.19202,120.43365 L348.19202,121.43298" fill="#23918b" stroke="none"/> +<path d="M328.19202,120.43365 L328.19202,119.4343 L348.19202,119.4343 L348.19202,120.43365" fill="#24928a" stroke="none"/> +<path d="M328.19202,119.4343 L328.19202,118.43497 L348.19202,118.43497 L348.19202,119.4343" fill="#25948a" stroke="none"/> +<path d="M328.19202,118.43497 L328.19202,117.43562 L348.19202,117.43562 L348.19202,118.43497" fill="#269589" stroke="none"/> +<path d="M328.19202,117.43562 L328.19202,116.43629 L348.19202,116.43629 L348.19202,117.43562" fill="#279689" stroke="none"/> +<path d="M328.19202,116.43629 L328.19202,115.43694 L348.19202,115.43694 L348.19202,116.43629" fill="#299788" stroke="none"/> +<path d="M328.19202,115.43694 L328.19202,114.43761 L348.19202,114.43761 L348.19202,115.43694" fill="#2a9888" stroke="none"/> +<path d="M328.19202,114.43761 L328.19202,113.43827 L348.19202,113.43827 L348.19202,114.43761" fill="#2b9987" stroke="none"/> +<path d="M328.19202,113.43827 L328.19202,112.43893 L348.19202,112.43893 L348.19202,113.43827" fill="#2c9a86" stroke="none"/> +<path d="M328.19202,112.43893 L328.19202,111.43959 L348.19202,111.43959 L348.19202,112.43893" fill="#2d9b86" stroke="none"/> +<path d="M328.19202,111.43959 L328.19202,110.44025 L348.19202,110.44025 L348.19202,111.43959" fill="#2f9c85" stroke="none"/> +<path d="M328.19202,110.44025 L328.19202,109.44091 L348.19202,109.44091 L348.19202,110.44025" fill="#309e85" stroke="none"/> +<path d="M328.19202,109.44091 L328.19202,108.44157 L348.19202,108.44157 L348.19202,109.44091" fill="#319f84" stroke="none"/> +<path d="M328.19202,108.44157 L328.19202,107.44223 L348.19202,107.44223 L348.19202,108.44157" fill="#32a083" stroke="none"/> +<path d="M328.19202,107.44223 L328.19202,106.44289 L348.19202,106.44289 L348.19202,107.44223" fill="#33a183" stroke="none"/> +<path d="M328.19202,106.44289 L328.19202,105.44355 L348.19202,105.44355 L348.19202,106.44289" fill="#34a282" stroke="none"/> +<path d="M328.19202,105.44355 L328.19202,104.44421 L348.19202,104.44421 L348.19202,105.44355" fill="#36a381" stroke="none"/> +<path d="M328.19202,104.44421 L328.19202,103.44487 L348.19202,103.44487 L348.19202,104.44421" fill="#37a481" stroke="none"/> +<path d="M328.19202,103.44487 L328.19202,102.445526 L348.19202,102.445526 L348.19202,103.44487" fill="#38a580" stroke="none"/> +<path d="M328.19202,102.445526 L328.19202,101.44619 L348.19202,101.44619 L348.19202,102.445526" fill="#39a67f" stroke="none"/> +<path d="M328.19202,101.44619 L328.19202,100.446846 L348.19202,100.446846 L348.19202,101.44619" fill="#3aa87f" stroke="none"/> +<path d="M328.19202,100.446846 L328.19202,99.44751 L348.19202,99.44751 L348.19202,100.446846" fill="#3ba97e" stroke="none"/> +<path d="M328.19202,99.44751 L328.19202,98.448166 L348.19202,98.448166 L348.19202,99.44751" fill="#3caa7d" stroke="none"/> +<path d="M328.19202,98.448166 L328.19202,97.44883 L348.19202,97.44883 L348.19202,98.448166" fill="#3dab7c" stroke="none"/> +<path d="M328.19202,97.44883 L328.19202,96.449486 L348.19202,96.449486 L348.19202,97.44883" fill="#3fac7b" stroke="none"/> +<path d="M328.19202,96.449486 L328.19202,95.45016 L348.19202,95.45016 L348.19202,96.449486" fill="#40ad7b" stroke="none"/> +<path d="M328.19202,95.45016 L328.19202,94.45081 L348.19202,94.45081 L348.19202,95.45016" fill="#41ae7a" stroke="none"/> +<path d="M328.19202,94.45081 L328.19202,93.45147 L348.19202,93.45147 L348.19202,94.45081" fill="#42af79" stroke="none"/> +<path d="M328.19202,93.45147 L328.19202,92.452126 L348.19202,92.452126 L348.19202,93.45147" fill="#43b078" stroke="none"/> +<path d="M328.19202,92.452126 L328.19202,91.4528 L348.19202,91.4528 L348.19202,92.452126" fill="#44b177" stroke="none"/> +<path d="M328.19202,91.4528 L328.19202,90.45345 L348.19202,90.45345 L348.19202,91.4528" fill="#45b377" stroke="none"/> +<path d="M328.19202,90.45345 L328.19202,89.45411 L348.19202,89.45411 L348.19202,90.45345" fill="#46b476" stroke="none"/> +<path d="M328.19202,89.45411 L328.19202,88.454765 L348.19202,88.454765 L348.19202,89.45411" fill="#48b575" stroke="none"/> +<path d="M328.19202,88.454765 L328.19202,87.45544 L348.19202,87.45544 L348.19202,88.454765" fill="#49b674" stroke="none"/> +<path d="M328.19202,87.45544 L328.19202,86.45609 L348.19202,86.45609 L348.19202,87.45544" fill="#4ab773" stroke="none"/> +<path d="M328.19202,86.45609 L328.19202,85.45675 L348.19202,85.45675 L348.19202,86.45609" fill="#4bb872" stroke="none"/> +<path d="M328.19202,85.45675 L328.19202,84.457405 L348.19202,84.457405 L348.19202,85.45675" fill="#4cb971" stroke="none"/> +<path d="M328.19202,84.457405 L328.19202,83.45808 L348.19202,83.45808 L348.19202,84.457405" fill="#4dba70" stroke="none"/> +<path d="M328.19202,83.45808 L328.19202,82.45873 L348.19202,82.45873 L348.19202,83.45808" fill="#4ebb6f" stroke="none"/> +<path d="M328.19202,82.45873 L328.19202,81.45939 L348.19202,81.45939 L348.19202,82.45873" fill="#4fbc6e" stroke="none"/> +<path d="M328.19202,81.45939 L328.19202,80.46006 L348.19202,80.46006 L348.19202,81.45939" fill="#50be6d" stroke="none"/> +<path d="M328.19202,80.46006 L328.19202,79.46072 L348.19202,79.46072 L348.19202,80.46006" fill="#52bf6c" stroke="none"/> +<path d="M328.19202,79.46072 L328.19202,78.46137 L348.19202,78.46137 L348.19202,79.46072" fill="#53c06b" stroke="none"/> +<path d="M328.19202,78.46137 L328.19202,77.46203 L348.19202,77.46203 L348.19202,78.46137" fill="#54c16a" stroke="none"/> +<path d="M328.19202,77.46203 L328.19202,76.4627 L348.19202,76.4627 L348.19202,77.46203" fill="#55c269" stroke="none"/> +<path d="M328.19202,76.4627 L328.19202,75.463356 L348.19202,75.463356 L348.19202,76.4627" fill="#56c368" stroke="none"/> +<path d="M328.19202,75.463356 L328.19202,74.46401 L348.19202,74.46401 L348.19202,75.463356" fill="#57c466" stroke="none"/> +<path d="M328.19202,74.46401 L328.19202,73.46467 L348.19202,73.46467 L348.19202,74.46401" fill="#58c565" stroke="none"/> +<path d="M328.19202,73.46467 L328.19202,72.46534 L348.19202,72.46534 L348.19202,73.46467" fill="#59c664" stroke="none"/> +<path d="M328.19202,72.46534 L328.19202,71.465996 L348.19202,71.465996 L348.19202,72.46534" fill="#5ac763" stroke="none"/> +<path d="M328.19202,71.465996 L328.19202,70.46665 L348.19202,70.46665 L348.19202,71.465996" fill="#5dc862" stroke="none"/> +<path d="M328.19202,70.46665 L328.19202,69.46731 L348.19202,69.46731 L348.19202,70.46665" fill="#62c961" stroke="none"/> +<path d="M328.19202,69.46731 L328.19202,68.46798 L348.19202,68.46798 L348.19202,69.46731" fill="#66ca61" stroke="none"/> +<path d="M328.19202,68.46798 L328.19202,67.468636 L348.19202,67.468636 L348.19202,68.46798" fill="#6aca60" stroke="none"/> +<path d="M328.19202,67.468636 L328.19202,66.46929 L348.19202,66.46929 L348.19202,67.468636" fill="#6ecb5f" stroke="none"/> +<path d="M328.19202,66.46929 L328.19202,65.46995 L348.19202,65.46995 L348.19202,66.46929" fill="#72cc5f" stroke="none"/> +<path d="M328.19202,65.46995 L328.19202,64.47062 L348.19202,64.47062 L348.19202,65.46995" fill="#76cc5e" stroke="none"/> +<path d="M328.19202,64.47062 L328.19202,63.47128 L348.19202,63.47128 L348.19202,64.47062" fill="#79cd5e" stroke="none"/> +<path d="M328.19202,63.47128 L328.19202,62.471935 L348.19202,62.471935 L348.19202,63.47128" fill="#7dce5d" stroke="none"/> +<path d="M328.19202,62.471935 L328.19202,61.472607 L348.19202,61.472607 L348.19202,62.471935" fill="#80ce5c" stroke="none"/> +<path d="M328.19202,61.472607 L328.19202,60.473263 L348.19202,60.473263 L348.19202,61.472607" fill="#84cf5c" stroke="none"/> +<path d="M328.19202,60.473263 L328.19202,59.47392 L348.19202,59.47392 L348.19202,60.473263" fill="#87d05b" stroke="none"/> +<path d="M328.19202,59.47392 L328.19202,58.474575 L348.19202,58.474575 L348.19202,59.47392" fill="#8bd05a" stroke="none"/> +<path d="M328.19202,58.474575 L328.19202,57.475246 L348.19202,57.475246 L348.19202,58.474575" fill="#8ed159" stroke="none"/> +<path d="M328.19202,57.475246 L328.19202,56.475903 L348.19202,56.475903 L348.19202,57.475246" fill="#91d259" stroke="none"/> +<path d="M328.19202,56.475903 L328.19202,55.47656 L348.19202,55.47656 L348.19202,56.475903" fill="#95d258" stroke="none"/> +<path d="M328.19202,55.47656 L328.19202,54.477215 L348.19202,54.477215 L348.19202,55.47656" fill="#98d357" stroke="none"/> +<path d="M328.19202,54.477215 L328.19202,53.477886 L348.19202,53.477886 L348.19202,54.477215" fill="#9bd456" stroke="none"/> +<path d="M328.19202,53.477886 L328.19202,52.478542 L348.19202,52.478542 L348.19202,53.477886" fill="#9ed456" stroke="none"/> +<path d="M328.19202,52.478542 L328.19202,51.4792 L348.19202,51.4792 L348.19202,52.478542" fill="#a1d555" stroke="none"/> +<path d="M328.19202,51.4792 L328.19202,50.479855 L348.19202,50.479855 L348.19202,51.4792" fill="#a5d554" stroke="none"/> +<path d="M328.19202,50.479855 L328.19202,49.480526 L348.19202,49.480526 L348.19202,50.479855" fill="#a8d653" stroke="none"/> +<path d="M328.19202,49.480526 L328.19202,48.481182 L348.19202,48.481182 L348.19202,49.480526" fill="#abd752" stroke="none"/> +<path d="M328.19202,48.481182 L328.19202,47.48184 L348.19202,47.48184 L348.19202,48.481182" fill="#aed751" stroke="none"/> +<path d="M328.19202,47.48184 L328.19202,46.48251 L348.19202,46.48251 L348.19202,47.48184" fill="#b1d850" stroke="none"/> +<path d="M328.19202,46.48251 L328.19202,45.483166 L348.19202,45.483166 L348.19202,46.48251" fill="#b4d84f" stroke="none"/> +<path d="M328.19202,45.483166 L328.19202,44.48382 L348.19202,44.48382 L348.19202,45.483166" fill="#b7d94e" stroke="none"/> +<path d="M328.19202,44.48382 L328.19202,43.484478 L348.19202,43.484478 L348.19202,44.48382" fill="#bada4d" stroke="none"/> +<path d="M328.19202,43.484478 L328.19202,42.48515 L348.19202,42.48515 L348.19202,43.484478" fill="#bdda4c" stroke="none"/> +<path d="M328.19202,42.48515 L328.19202,41.485806 L348.19202,41.485806 L348.19202,42.48515" fill="#c0db4b" stroke="none"/> +<path d="M328.19202,41.485806 L328.19202,40.48646 L348.19202,40.48646 L348.19202,41.485806" fill="#c2db4a" stroke="none"/> +<path d="M328.19202,40.48646 L328.19202,39.487118 L348.19202,39.487118 L348.19202,40.48646" fill="#c5dc49" stroke="none"/> +<path d="M328.19202,39.487118 L328.19202,38.48779 L348.19202,38.48779 L348.19202,39.487118" fill="#c8dd47" stroke="none"/> +<path d="M328.19202,38.48779 L328.19202,37.488445 L348.19202,37.488445 L348.19202,38.48779" fill="#cbdd46" stroke="none"/> +<path d="M328.19202,37.488445 L328.19202,36.4891 L348.19202,36.4891 L348.19202,37.488445" fill="#cede45" stroke="none"/> +<path d="M328.19202,36.4891 L328.19202,35.489758 L348.19202,35.489758 L348.19202,36.4891" fill="#d1de44" stroke="none"/> +<path d="M328.19202,35.489758 L328.19202,34.49043 L348.19202,34.49043 L348.19202,35.489758" fill="#d4df42" stroke="none"/> +<path d="M328.19202,34.49043 L328.19202,33.491085 L348.19202,33.491085 L348.19202,34.49043" fill="#d6df41" stroke="none"/> +<path d="M328.19202,33.491085 L328.19202,32.49174 L348.19202,32.49174 L348.19202,33.491085" fill="#d9e03f" stroke="none"/> +<path d="M328.19202,32.49174 L328.19202,31.49241 L348.19202,31.49241 L348.19202,32.49174" fill="#dce13e" stroke="none"/> +<path d="M328.19202,31.49241 L328.19202,30.493067 L348.19202,30.493067 L348.19202,31.49241" fill="#dfe13c" stroke="none"/> +<path d="M328.19202,30.493067 L328.19202,29.493723 L348.19202,29.493723 L348.19202,30.493067" fill="#e2e23b" stroke="none"/> +<path d="M328.19202,29.493723 L328.19202,28.494379 L348.19202,28.494379 L348.19202,29.493723" fill="#e4e239" stroke="none"/> +<path d="M328.19202,28.494379 L328.19202,27.49505 L348.19202,27.49505 L348.19202,28.494379" fill="#e7e337" stroke="none"/> +<path d="M328.19202,27.49505 L328.19202,26.495707 L348.19202,26.495707 L348.19202,27.49505" fill="#eae335" stroke="none"/> +<path d="M328.19202,26.495707 L328.19202,25.496363 L348.19202,25.496363 L348.19202,26.495707" fill="#ede433" stroke="none"/> +<path d="M328.19202,25.496363 L328.19202,24.497019 L348.19202,24.497019 L348.19202,25.496363" fill="#efe431" stroke="none"/> +<path d="M328.19202,24.497019 L328.19202,23.49769 L348.19202,23.49769 L348.19202,24.497019" fill="#f2e52f" stroke="none"/> +<path d="M328.19202,23.49769 L328.19202,22.498346 L348.19202,22.498346 L348.19202,23.49769" fill="#f5e52c" stroke="none"/> +<path d="M328.19202,22.498346 L328.19202,21.499002 L348.19202,21.499002 L348.19202,22.498346" fill="#f8e62a" stroke="none"/> +<path d="M328.19202,21.499002 L328.19202,20.499659 L348.19202,20.499659 L348.19202,21.499002" fill="#fae627" stroke="none"/> +<path d="M328.19202,20.499659 L328.19202,20 L348.19202,20 L348.19202,20.499659" fill="#fde724" stroke="none"/> +<path d="M328.19202,20 L348.19202,20 L348.19202,225.864 L328.19202,225.864 z" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M348.19202,214.44878 L352.19202,214.44878" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M14.34,3.216 L13.308,3.216 L13.308,-2.7719998 Q13.308,-3.12,13.314,-3.3600001 Q13.32,-3.6,13.332,-3.81 Q13.344,-4.02,13.356,-4.248 Q13.164,-4.0559998,13.007999,-3.9239998 Q12.852,-3.7919998,12.6119995,-3.5879998 L11.7,-2.8439999 L11.148,-3.552 L13.464,-5.3519998 L14.34,-5.3519998 L14.34,3.216 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 214.44878)"/> +<path d="M348.19202,191.87996 L352.19202,191.87996" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.32,3.216 L10.656,3.216 L10.656,2.3400002 L12.9,0.07200003 Q13.548,-0.576,13.992,-1.0799999 Q14.436,-1.5840001,14.664,-2.0700002 Q14.892,-2.5559998,14.892,-3.132 Q14.892,-3.8400002,14.472,-4.206 Q14.052,-4.572,13.38,-4.572 Q12.7560005,-4.572,12.282,-4.356 Q11.808,-4.14,11.316,-3.756 L10.752,-4.464 Q11.088,-4.752,11.49,-4.98 Q11.892,-5.2079997,12.366,-5.3399997 Q12.84,-5.4719996,13.38,-5.4719996 Q14.184,-5.4719996,14.76,-5.1959996 Q15.336,-4.9199996,15.653999,-4.41 Q15.972,-3.9,15.972,-3.192 Q15.972,-2.52,15.696,-1.9320002 Q15.42,-1.3439999,14.9279995,-0.7739999 Q14.436,-0.204,13.776,0.444 L11.988,2.2080002 L11.988,2.256 L16.32,2.256 L16.32,3.216 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 191.87996)"/> +<path d="M348.19202,169.31116 L352.19202,169.31116" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M15.996,-3.348 Q15.996,-2.7719998,15.780001,-2.3519998 Q15.564,-1.9320002,15.162001,-1.6679997 Q14.76,-1.4039998,14.219999,-1.296 L14.219999,-1.2480001 Q15.252,-1.1279998,15.7560005,-0.5999999 Q16.26,-0.07200003,16.26,0.78 Q16.26,1.524,15.912001,2.106 Q15.564,2.6880002,14.837999,3.012 Q14.1119995,3.336,12.972,3.336 Q12.3,3.336,11.724,3.234 Q11.148,3.132,10.62,2.868 L10.62,1.8840001 Q11.16,2.1480002,11.784,2.298 Q12.408,2.448,12.984,2.448 Q14.136,2.448,14.646,1.998 Q15.156,1.5480001,15.156,0.75600004 Q15.156,0.21600008,14.874001,-0.11399984 Q14.592,-0.444,14.052,-0.5999999 Q13.512,-0.75600004,12.7560005,-0.75600004 L11.9279995,-0.75600004 L11.9279995,-1.6560001 L12.768,-1.6560001 Q13.476,-1.6560001,13.95,-1.8600001 Q14.424,-2.0640001,14.67,-2.4299998 Q14.916,-2.796,14.916,-3.276 Q14.916,-3.9,14.496,-4.242 Q14.076,-4.584,13.356,-4.584 Q12.9,-4.584,12.528,-4.494 Q12.156,-4.404,11.838,-4.242 Q11.52,-4.08,11.196,-3.8639998 L10.668,-4.584 Q11.124,-4.944,11.802,-5.2079997 Q12.48,-5.4719996,13.344,-5.4719996 Q14.688,-5.4719996,15.342,-4.872 Q15.996,-4.272,15.996,-3.348 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 169.31116)"/> +<path d="M348.19202,146.74234 L352.19202,146.74234" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.704,1.2720001 L15.455999,1.2720001 L15.455999,3.216 L14.436,3.216 L14.436,1.2720001 L10.332,1.2720001 L10.332,0.37199998 L14.364,-5.4 L15.455999,-5.4 L15.455999,0.32400012 L16.704,0.32400012 L16.704,1.2720001 z M14.436,-2.376 Q14.436,-2.6880002,14.441999,-2.946 Q14.448,-3.204,14.46,-3.4320002 Q14.472,-3.6599998,14.478001,-3.87 Q14.483999,-4.08,14.496,-4.272 L14.448,-4.272 Q14.351999,-4.044,14.208,-3.7800002 Q14.064,-3.5159998,13.932,-3.336 L11.364,0.32400012 L14.436,0.32400012 L14.436,-2.376 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 146.74234)"/> +<path d="M348.19202,124.17353 L352.19202,124.17353" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M13.38,-2.04 Q14.2560005,-2.04,14.903999,-1.7399998 Q15.552,-1.44,15.906,-0.88199997 Q16.26,-0.32399988,16.26,0.48000002 Q16.26,1.368,15.875999,2.0100002 Q15.492001,2.652,14.778,2.994 Q14.064,3.336,13.056,3.336 Q12.396,3.336,11.814,3.216 Q11.232,3.0960002,10.8359995,2.868 L10.8359995,1.8720001 Q11.268,2.1360002,11.886,2.286 Q12.504,2.436,13.068,2.436 Q13.704,2.436,14.1779995,2.2380002 Q14.652,2.04,14.916,1.626 Q15.18,1.2120001,15.18,0.58800006 Q15.18,-0.25199986,14.664,-0.7019999 Q14.148,-1.152,13.032,-1.152 Q12.696,-1.152,12.264,-1.092 Q11.832,-1.0320001,11.568,-0.9720001 L11.04,-1.3080001 L11.364,-5.3519998 L15.66,-5.3519998 L15.66,-4.392 L12.264,-4.392 L12.059999,-1.908 Q12.264,-1.9439998,12.6119995,-1.9920001 Q12.96,-2.04,13.38,-2.04 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 124.17353)"/> +<path d="M348.19202,101.60471 L352.19202,101.60471" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M10.74,-0.444 Q10.74,-1.1879997,10.842,-1.908 Q10.944,-2.6279998,11.196,-3.27 Q11.448,-3.9120002,11.892,-4.41 Q12.336,-4.9079995,13.014,-5.19 Q13.691999,-5.4719996,14.664,-5.4719996 Q14.916,-5.4719996,15.222,-5.4480004 Q15.528,-5.4240003,15.719999,-5.364 L15.719999,-4.464 Q15.504,-4.536,15.234,-4.572 Q14.964,-4.608,14.688,-4.608 Q13.86,-4.608,13.308,-4.332 Q12.7560005,-4.0559998,12.438,-3.5760002 Q12.12,-3.0960002,11.976,-2.4720001 Q11.832,-1.848,11.796,-1.1399999 L11.868,-1.1399999 Q12.048,-1.428,12.323999,-1.6560001 Q12.6,-1.8839998,12.99,-2.0159998 Q13.38,-2.1479998,13.896,-2.1479998 Q14.639999,-2.1479998,15.198,-1.842 Q15.7560005,-1.5359998,16.068,-0.954 Q16.380001,-0.37199998,16.380001,0.4560001 Q16.380001,1.3440001,16.044,1.9920001 Q15.708,2.64,15.101999,2.9880002 Q14.496,3.336,13.656,3.336 Q13.044,3.336,12.516,3.108 Q11.988,2.88,11.586,2.4120002 Q11.184,1.9440001,10.962,1.23 Q10.74,0.51600003,10.74,-0.444 z M13.644,2.448 Q14.4,2.448,14.868,1.962 Q15.336,1.4760001,15.336,0.4560001 Q15.336,-0.3599999,14.922,-0.84000015 Q14.507999,-1.3200002,13.68,-1.3200002 Q13.116,-1.3200002,12.696,-1.086 Q12.276,-0.85199976,12.042,-0.49199986 Q11.808,-0.13199997,11.808,0.2520001 Q11.808,0.648,11.922,1.0320001 Q12.036,1.416,12.27,1.74 Q12.504,2.0640001,12.846,2.256 Q13.188,2.448,13.644,2.448 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 101.60471)"/> +<path d="M348.19202,79.035904 L352.19202,79.035904" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M11.712,3.216 L15.228001,-4.392 L10.608,-4.392 L10.608,-5.3519998 L16.355999,-5.3519998 L16.355999,-4.536 L12.875999,3.216 L11.712,3.216 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 79.035904)"/> +<path d="M348.19202,56.467102 L352.19202,56.467102" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M13.5,-5.4719996 Q14.2560005,-5.4719996,14.832,-5.2380004 Q15.408,-5.004,15.738,-4.548 Q16.068,-4.092,16.068,-3.42 Q16.068,-2.9039998,15.846001,-2.52 Q15.624001,-2.1360002,15.252,-1.842 Q14.88,-1.5479999,14.436,-1.3200002 Q14.964,-1.0679998,15.396,-0.75 Q15.828,-0.43199992,16.086,-0.0119998455 Q16.344,0.408,16.344,0.99600005 Q16.344,1.7160001,15.996,2.2380002 Q15.648,2.76,15.018,3.048 Q14.3880005,3.336,13.536,3.336 Q12.6119995,3.336,11.97,3.0600002 Q11.328,2.7840002,10.998,2.2740002 Q10.668,1.764,10.668,1.0320001 Q10.668,0.444,10.914,0.012000084 Q11.16,-0.41999984,11.568,-0.7319999 Q11.976,-1.0440001,12.444,-1.2599998 Q12.024,-1.5,11.682,-1.8059998 Q11.34,-2.112,11.142,-2.508 Q10.944,-2.9039998,10.944,-3.4320002 Q10.944,-4.092,11.28,-4.542 Q11.616,-4.992,12.191999,-5.232 Q12.768,-5.4719996,13.5,-5.4719996 z M11.7,1.0440001 Q11.7,1.6680001,12.144,2.082 Q12.588,2.496,13.512,2.496 Q14.3880005,2.496,14.85,2.082 Q15.312,1.6680001,15.312,1.0080001 Q15.312,0.58800006,15.09,0.26999998 Q14.868,-0.04799986,14.466,-0.29999995 Q14.064,-0.55200005,13.512,-0.75600004 L13.32,-0.82800007 Q12.792,-0.5999999,12.432,-0.33599997 Q12.072,-0.07200003,11.886,0.26399994 Q11.7,0.60000014,11.7,1.0440001 z M13.488,-4.62 Q12.828,-4.62,12.402,-4.302 Q11.976,-3.9840002,11.976,-3.3839998 Q11.976,-2.94,12.186,-2.6399999 Q12.396,-2.3400002,12.7560005,-2.13 Q13.116,-1.9200001,13.548,-1.7280002 Q13.968,-1.908,14.298,-2.124 Q14.628,-2.3400002,14.826,-2.646 Q15.024,-2.9520001,15.024,-3.3839998 Q15.024,-3.9840002,14.604,-4.302 Q14.184,-4.62,13.488,-4.62 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 56.467102)"/> +<path d="M348.19202,33.8983 L352.19202,33.8983" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.32,-1.6919999 Q16.32,-0.96000004,16.218,-0.23399997 Q16.116001,0.4920001,15.864,1.1340001 Q15.6119995,1.776,15.167999,2.2740002 Q14.724,2.772,14.04,3.0540001 Q13.356,3.336,12.384,3.336 Q12.144,3.336,11.826,3.306 Q11.507999,3.276,11.304,3.216 L11.304,2.316 Q11.52,2.388,11.808,2.43 Q12.096,2.4720001,12.36,2.4720001 Q13.2,2.4720001,13.746,2.196 Q14.292,1.9200001,14.616,1.4460001 Q14.940001,0.9720001,15.084,0.342 Q15.228001,-0.28799987,15.252,-0.9839997 L15.18,-0.9839997 Q15,-0.70799994,14.724,-0.48000002 Q14.448,-0.25199986,14.058,-0.119999886 Q13.668,0.012000084,13.139999,0.012000084 Q12.408,0.012000084,11.85,-0.2939999 Q11.292,-0.5999999,10.986,-1.1760001 Q10.68,-1.7519999,10.68,-2.58 Q10.68,-3.48,11.022,-4.128 Q11.364,-4.776,11.976,-5.124 Q12.588,-5.4719996,13.416,-5.4719996 Q14.028,-5.4719996,14.556,-5.2380004 Q15.084,-5.004,15.48,-4.536 Q15.875999,-4.068,16.098,-3.3600001 Q16.32,-2.652,16.32,-1.6919999 z M13.416,-4.584 Q12.672,-4.584,12.198,-4.092 Q11.724,-3.6,11.724,-2.592 Q11.724,-1.7639999,12.125999,-1.29 Q12.528,-0.816,13.368,-0.816 Q13.944,-0.816,14.364,-1.0500002 Q14.784,-1.2839999,15.018,-1.644 Q15.252,-2.0040002,15.252,-2.388 Q15.252,-2.7719998,15.1380005,-3.1620002 Q15.024,-3.552,14.796,-3.876 Q14.568,-4.2,14.219999,-4.392 Q13.872,-4.584,13.416,-4.584 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 33.8983)"/> +</svg> \ No newline at end of file diff --git a/tests/refs/colorbar/default.png b/tests/refs/colorbar/default.png new file mode 100644 index 0000000..ad6faa4 Binary files /dev/null and b/tests/refs/colorbar/default.png differ diff --git a/tests/refs/colorbar/default.svg b/tests/refs/colorbar/default.svg new file mode 100644 index 0000000..53436e0 --- /dev/null +++ b/tests/refs/colorbar/default.svg @@ -0,0 +1,304 @@ +<svg height="300" viewBox="0 0 400 300" width="400" xmlns="http://www.w3.org/2000/svg"> +<rect fill="#ffffff" height="100%" width="100%"/> +<clipPath id="plotive-clip1"> +<rect height="260" width="296.19202" x="20" y="20"/> +</clipPath> +<g clip-path="url(#plotive-clip1)"> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#54c16a" fill-opacity="0.7019608" stroke="#54c16a" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 190.89055 112.57182)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#3ba97e" fill-opacity="0.7019608" stroke="#3ba97e" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 179.97026 65.19423)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#8fd159" fill-opacity="0.7019608" stroke="#8fd159" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 202.46431 182.75821)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#440154" fill-opacity="0.7019608" stroke="#440154" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 168.9136 137.4275)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#35a282" fill-opacity="0.7019608" stroke="#35a282" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 40 128.45457)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#31778c" fill-opacity="0.7019608" stroke="#31778c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 146.78484 40)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#70cb5f" fill-opacity="0.7019608" stroke="#70cb5f" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 160.33264 221.95265)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#38638b" fill-opacity="0.7019608" stroke="#38638b" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 62.404472 179.70654)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#36698c" fill-opacity="0.7019608" stroke="#36698c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 104.20594 119.84299)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#fde724" fill-opacity="0.7019608" stroke="#fde724" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 215.1704 107.928925)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#33a083" fill-opacity="0.7019608" stroke="#33a083" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 170.00009 123.19487)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#90d159" fill-opacity="0.7019608" stroke="#90d159" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 269.2433 73.18942)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#461c61" fill-opacity="0.7019608" stroke="#461c61" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 296.19202 186.15048)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#61c961" fill-opacity="0.7019608" stroke="#61c961" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 45.586716 260)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#279689" fill-opacity="0.7019608" stroke="#279689" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 143.01593 56.149902)"/> +</g> +<rect fill="none" height="260" stroke="#000000" stroke-width="1" width="296.19202" x="20" y="20"/> +<path d="M328.19202,280 L328.19202,279.5 L348.19202,279.5 L348.19202,280" fill="#440154" stroke="none"/> +<path d="M328.19202,279.5 L328.19202,278.5 L348.19202,278.5 L348.19202,279.5" fill="#440355" stroke="none"/> +<path d="M328.19202,278.5 L328.19202,277.5 L348.19202,277.5 L348.19202,278.5" fill="#440556" stroke="none"/> +<path d="M328.19202,277.5 L328.19202,276.5 L348.19202,276.5 L348.19202,277.5" fill="#440756" stroke="none"/> +<path d="M328.19202,276.5 L328.19202,275.5 L348.19202,275.5 L348.19202,276.5" fill="#450957" stroke="none"/> +<path d="M328.19202,275.5 L328.19202,274.5 L348.19202,274.5 L348.19202,275.5" fill="#450b58" stroke="none"/> +<path d="M328.19202,274.5 L328.19202,273.5 L348.19202,273.5 L348.19202,274.5" fill="#450d59" stroke="none"/> +<path d="M328.19202,273.5 L328.19202,272.5 L348.19202,272.5 L348.19202,273.5" fill="#450f5a" stroke="none"/> +<path d="M328.19202,272.5 L328.19202,271.5 L348.19202,271.5 L348.19202,272.5" fill="#45105a" stroke="none"/> +<path d="M328.19202,271.5 L328.19202,270.5 L348.19202,270.5 L348.19202,271.5" fill="#45125b" stroke="none"/> +<path d="M328.19202,270.5 L328.19202,269.5 L348.19202,269.5 L348.19202,270.5" fill="#45145c" stroke="none"/> +<path d="M328.19202,269.5 L328.19202,268.5 L348.19202,268.5 L348.19202,269.5" fill="#45155d" stroke="none"/> +<path d="M328.19202,268.5 L328.19202,267.5 L348.19202,267.5 L348.19202,268.5" fill="#45165e" stroke="none"/> +<path d="M328.19202,267.5 L328.19202,266.5 L348.19202,266.5 L348.19202,267.5" fill="#46185e" stroke="none"/> +<path d="M328.19202,266.5 L328.19202,265.5 L348.19202,265.5 L348.19202,266.5" fill="#46195f" stroke="none"/> +<path d="M328.19202,265.5 L328.19202,264.5 L348.19202,264.5 L348.19202,265.5" fill="#461b60" stroke="none"/> +<path d="M328.19202,264.5 L328.19202,263.5 L348.19202,263.5 L348.19202,264.5" fill="#461c61" stroke="none"/> +<path d="M328.19202,263.5 L328.19202,262.5 L348.19202,262.5 L348.19202,263.5" fill="#461d62" stroke="none"/> +<path d="M328.19202,262.5 L328.19202,261.5 L348.19202,261.5 L348.19202,262.5" fill="#461e63" stroke="none"/> +<path d="M328.19202,261.5 L328.19202,260.5 L348.19202,260.5 L348.19202,261.5" fill="#462063" stroke="none"/> +<path d="M328.19202,260.5 L328.19202,259.5 L348.19202,259.5 L348.19202,260.5" fill="#462164" stroke="none"/> +<path d="M328.19202,259.5 L328.19202,258.5 L348.19202,258.5 L348.19202,259.5" fill="#462265" stroke="none"/> +<path d="M328.19202,258.5 L328.19202,257.5 L348.19202,257.5 L348.19202,258.5" fill="#462366" stroke="none"/> +<path d="M328.19202,257.5 L328.19202,256.5 L348.19202,256.5 L348.19202,257.5" fill="#462467" stroke="none"/> +<path d="M328.19202,256.5 L328.19202,255.5 L348.19202,255.5 L348.19202,256.5" fill="#462667" stroke="none"/> +<path d="M328.19202,255.5 L328.19202,254.5 L348.19202,254.5 L348.19202,255.5" fill="#462768" stroke="none"/> +<path d="M328.19202,254.5 L328.19202,253.5 L348.19202,253.5 L348.19202,254.5" fill="#462869" stroke="none"/> +<path d="M328.19202,253.5 L328.19202,252.5 L348.19202,252.5 L348.19202,253.5" fill="#46296a" stroke="none"/> +<path d="M328.19202,252.5 L328.19202,251.5 L348.19202,251.5 L348.19202,252.5" fill="#462a6b" stroke="none"/> +<path d="M328.19202,251.5 L328.19202,250.5 L348.19202,250.5 L348.19202,251.5" fill="#462b6c" stroke="none"/> +<path d="M328.19202,250.5 L328.19202,249.5 L348.19202,249.5 L348.19202,250.5" fill="#452c6c" stroke="none"/> +<path d="M328.19202,249.5 L328.19202,248.5 L348.19202,248.5 L348.19202,249.5" fill="#452e6d" stroke="none"/> +<path d="M328.19202,248.5 L328.19202,247.5 L348.19202,247.5 L348.19202,248.5" fill="#452f6e" stroke="none"/> +<path d="M328.19202,247.5 L328.19202,246.5 L348.19202,246.5 L348.19202,247.5" fill="#45306f" stroke="none"/> +<path d="M328.19202,246.5 L328.19202,245.5 L348.19202,245.5 L348.19202,246.5" fill="#453170" stroke="none"/> +<path d="M328.19202,245.5 L328.19202,244.5 L348.19202,244.5 L348.19202,245.5" fill="#453271" stroke="none"/> +<path d="M328.19202,244.5 L328.19202,243.5 L348.19202,243.5 L348.19202,244.5" fill="#453371" stroke="none"/> +<path d="M328.19202,243.5 L328.19202,242.5 L348.19202,242.5 L348.19202,243.5" fill="#453472" stroke="none"/> +<path d="M328.19202,242.5 L328.19202,241.5 L348.19202,241.5 L348.19202,242.5" fill="#453573" stroke="none"/> +<path d="M328.19202,241.5 L328.19202,240.5 L348.19202,240.5 L348.19202,241.5" fill="#443674" stroke="none"/> +<path d="M328.19202,240.5 L328.19202,239.5 L348.19202,239.5 L348.19202,240.5" fill="#443775" stroke="none"/> +<path d="M328.19202,239.5 L328.19202,238.5 L348.19202,238.5 L348.19202,239.5" fill="#443876" stroke="none"/> +<path d="M328.19202,238.5 L328.19202,237.5 L348.19202,237.5 L348.19202,238.5" fill="#443976" stroke="none"/> +<path d="M328.19202,237.5 L328.19202,236.5 L348.19202,236.5 L348.19202,237.5" fill="#443a77" stroke="none"/> +<path d="M328.19202,236.5 L328.19202,235.5 L348.19202,235.5 L348.19202,236.5" fill="#433b78" stroke="none"/> +<path d="M328.19202,235.5 L328.19202,234.5 L348.19202,234.5 L348.19202,235.5" fill="#433c79" stroke="none"/> +<path d="M328.19202,234.5 L328.19202,233.5 L348.19202,233.5 L348.19202,234.5" fill="#433e7a" stroke="none"/> +<path d="M328.19202,233.5 L328.19202,232.5 L348.19202,232.5 L348.19202,233.5" fill="#433f7b" stroke="none"/> +<path d="M328.19202,232.5 L328.19202,231.5 L348.19202,231.5 L348.19202,232.5" fill="#42407c" stroke="none"/> +<path d="M328.19202,231.5 L328.19202,230.5 L348.19202,230.5 L348.19202,231.5" fill="#42417c" stroke="none"/> +<path d="M328.19202,230.5 L328.19202,229.5 L348.19202,229.5 L348.19202,230.5" fill="#42427d" stroke="none"/> +<path d="M328.19202,229.5 L328.19202,228.5 L348.19202,228.5 L348.19202,229.5" fill="#41437e" stroke="none"/> +<path d="M328.19202,228.5 L328.19202,227.5 L348.19202,227.5 L348.19202,228.5" fill="#41447f" stroke="none"/> +<path d="M328.19202,227.5 L328.19202,226.5 L348.19202,226.5 L348.19202,227.5" fill="#414580" stroke="none"/> +<path d="M328.19202,226.5 L328.19202,225.5 L348.19202,225.5 L348.19202,226.5" fill="#404681" stroke="none"/> +<path d="M328.19202,225.5 L328.19202,224.5 L348.19202,224.5 L348.19202,225.5" fill="#404781" stroke="none"/> +<path d="M328.19202,224.5 L328.19202,223.5 L348.19202,223.5 L348.19202,224.5" fill="#3f4882" stroke="none"/> +<path d="M328.19202,223.5 L328.19202,222.5 L348.19202,222.5 L348.19202,223.5" fill="#3f4983" stroke="none"/> +<path d="M328.19202,222.5 L328.19202,221.5 L348.19202,221.5 L348.19202,222.5" fill="#3f4a84" stroke="none"/> +<path d="M328.19202,221.5 L328.19202,220.5 L348.19202,220.5 L348.19202,221.5" fill="#3e4b85" stroke="none"/> +<path d="M328.19202,220.5 L328.19202,219.5 L348.19202,219.5 L348.19202,220.5" fill="#3e4c86" stroke="none"/> +<path d="M328.19202,219.5 L328.19202,218.5 L348.19202,218.5 L348.19202,219.5" fill="#3d4d87" stroke="none"/> +<path d="M328.19202,218.5 L328.19202,217.5 L348.19202,217.5 L348.19202,218.5" fill="#3d4e87" stroke="none"/> +<path d="M328.19202,217.5 L328.19202,216.5 L348.19202,216.5 L348.19202,217.5" fill="#3c4f88" stroke="none"/> +<path d="M328.19202,216.5 L328.19202,215.5 L348.19202,215.5 L348.19202,216.5" fill="#3c5089" stroke="none"/> +<path d="M328.19202,215.5 L328.19202,214.5 L348.19202,214.5 L348.19202,215.5" fill="#3b518a" stroke="none"/> +<path d="M328.19202,214.5 L328.19202,213.5 L348.19202,213.5 L348.19202,214.5" fill="#3b528a" stroke="none"/> +<path d="M328.19202,213.5 L328.19202,212.5 L348.19202,212.5 L348.19202,213.5" fill="#3b538a" stroke="none"/> +<path d="M328.19202,212.5 L328.19202,211.5 L348.19202,211.5 L348.19202,212.5" fill="#3b548a" stroke="none"/> +<path d="M328.19202,211.5 L328.19202,210.5 L348.19202,210.5 L348.19202,211.5" fill="#3a558a" stroke="none"/> +<path d="M328.19202,210.5 L328.19202,209.5 L348.19202,209.5 L348.19202,210.5" fill="#3a568a" stroke="none"/> +<path d="M328.19202,209.5 L328.19202,208.5 L348.19202,208.5 L348.19202,209.5" fill="#3a578b" stroke="none"/> +<path d="M328.19202,208.5 L328.19202,207.5 L348.19202,207.5 L348.19202,208.5" fill="#3a588b" stroke="none"/> +<path d="M328.19202,207.5 L328.19202,206.5 L348.19202,206.5 L348.19202,207.5" fill="#3a598b" stroke="none"/> +<path d="M328.19202,206.5 L328.19202,205.5 L348.19202,205.5 L348.19202,206.5" fill="#3a5a8b" stroke="none"/> +<path d="M328.19202,205.5 L328.19202,204.5 L348.19202,204.5 L348.19202,205.5" fill="#395b8b" stroke="none"/> +<path d="M328.19202,204.5 L328.19202,203.5 L348.19202,203.5 L348.19202,204.5" fill="#395c8b" stroke="none"/> +<path d="M328.19202,203.5 L328.19202,202.5 L348.19202,202.5 L348.19202,203.5" fill="#395d8b" stroke="none"/> +<path d="M328.19202,202.5 L328.19202,201.5 L348.19202,201.5 L348.19202,202.5" fill="#395e8b" stroke="none"/> +<path d="M328.19202,201.5 L328.19202,200.5 L348.19202,200.5 L348.19202,201.5" fill="#395f8b" stroke="none"/> +<path d="M328.19202,200.5 L328.19202,199.5 L348.19202,199.5 L348.19202,200.5" fill="#38608b" stroke="none"/> +<path d="M328.19202,199.5 L328.19202,198.5 L348.19202,198.5 L348.19202,199.5" fill="#38618b" stroke="none"/> +<path d="M328.19202,198.5 L328.19202,197.5 L348.19202,197.5 L348.19202,198.5" fill="#38628b" stroke="none"/> +<path d="M328.19202,197.5 L328.19202,196.5 L348.19202,196.5 L348.19202,197.5" fill="#38638b" stroke="none"/> +<path d="M328.19202,196.5 L328.19202,195.5 L348.19202,195.5 L348.19202,196.5" fill="#37648b" stroke="none"/> +<path d="M328.19202,195.5 L328.19202,194.5 L348.19202,194.5 L348.19202,195.5" fill="#37658b" stroke="none"/> +<path d="M328.19202,194.5 L328.19202,193.5 L348.19202,193.5 L348.19202,194.5" fill="#37658c" stroke="none"/> +<path d="M328.19202,193.5 L328.19202,192.5 L348.19202,192.5 L348.19202,193.5" fill="#37668c" stroke="none"/> +<path d="M328.19202,192.5 L328.19202,191.5 L348.19202,191.5 L348.19202,192.5" fill="#36678c" stroke="none"/> +<path d="M328.19202,191.5 L328.19202,190.5 L348.19202,190.5 L348.19202,191.5" fill="#36688c" stroke="none"/> +<path d="M328.19202,190.5 L328.19202,189.5 L348.19202,189.5 L348.19202,190.5" fill="#36698c" stroke="none"/> +<path d="M328.19202,189.5 L328.19202,188.5 L348.19202,188.5 L348.19202,189.5" fill="#366a8c" stroke="none"/> +<path d="M328.19202,188.5 L328.19202,187.5 L348.19202,187.5 L348.19202,188.5" fill="#356b8c" stroke="none"/> +<path d="M328.19202,187.5 L328.19202,186.5 L348.19202,186.5 L348.19202,187.5" fill="#356c8c" stroke="none"/> +<path d="M328.19202,186.5 L328.19202,185.5 L348.19202,185.5 L348.19202,186.5" fill="#356d8c" stroke="none"/> +<path d="M328.19202,185.5 L328.19202,184.5 L348.19202,184.5 L348.19202,185.5" fill="#346e8c" stroke="none"/> +<path d="M328.19202,184.5 L328.19202,183.5 L348.19202,183.5 L348.19202,184.5" fill="#346f8c" stroke="none"/> +<path d="M328.19202,183.5 L328.19202,182.5 L348.19202,182.5 L348.19202,183.5" fill="#34708c" stroke="none"/> +<path d="M328.19202,182.5 L328.19202,181.5 L348.19202,181.5 L348.19202,182.5" fill="#33718c" stroke="none"/> +<path d="M328.19202,181.5 L328.19202,180.5 L348.19202,180.5 L348.19202,181.5" fill="#33728c" stroke="none"/> +<path d="M328.19202,180.5 L328.19202,179.5 L348.19202,179.5 L348.19202,180.5" fill="#33738c" stroke="none"/> +<path d="M328.19202,179.5 L328.19202,178.5 L348.19202,178.5 L348.19202,179.5" fill="#32748c" stroke="none"/> +<path d="M328.19202,178.5 L328.19202,177.5 L348.19202,177.5 L348.19202,178.5" fill="#32758c" stroke="none"/> +<path d="M328.19202,177.5 L328.19202,176.5 L348.19202,176.5 L348.19202,177.5" fill="#31768c" stroke="none"/> +<path d="M328.19202,176.5 L328.19202,175.5 L348.19202,175.5 L348.19202,176.5" fill="#31778c" stroke="none"/> +<path d="M328.19202,175.5 L328.19202,174.5 L348.19202,174.5 L348.19202,175.5" fill="#30788c" stroke="none"/> +<path d="M328.19202,174.5 L328.19202,173.5 L348.19202,173.5 L348.19202,174.5" fill="#30788c" stroke="none"/> +<path d="M328.19202,173.5 L328.19202,172.5 L348.19202,172.5 L348.19202,173.5" fill="#30798c" stroke="none"/> +<path d="M328.19202,172.5 L328.19202,171.5 L348.19202,171.5 L348.19202,172.5" fill="#2f7a8c" stroke="none"/> +<path d="M328.19202,171.5 L328.19202,170.5 L348.19202,170.5 L348.19202,171.5" fill="#2f7b8c" stroke="none"/> +<path d="M328.19202,170.5 L328.19202,169.5 L348.19202,169.5 L348.19202,170.5" fill="#2e7c8c" stroke="none"/> +<path d="M328.19202,169.5 L328.19202,168.5 L348.19202,168.5 L348.19202,169.5" fill="#2e7d8c" stroke="none"/> +<path d="M328.19202,168.5 L328.19202,167.5 L348.19202,167.5 L348.19202,168.5" fill="#2d7e8c" stroke="none"/> +<path d="M328.19202,167.5 L328.19202,166.5 L348.19202,166.5 L348.19202,167.5" fill="#2d7f8c" stroke="none"/> +<path d="M328.19202,166.5 L328.19202,165.5 L348.19202,165.5 L348.19202,166.5" fill="#2c808c" stroke="none"/> +<path d="M328.19202,165.5 L328.19202,164.5 L348.19202,164.5 L348.19202,165.5" fill="#2b818c" stroke="none"/> +<path d="M328.19202,164.5 L328.19202,163.5 L348.19202,163.5 L348.19202,164.5" fill="#2b828c" stroke="none"/> +<path d="M328.19202,163.5 L328.19202,162.5 L348.19202,162.5 L348.19202,163.5" fill="#2a838c" stroke="none"/> +<path d="M328.19202,162.5 L328.19202,161.5 L348.19202,161.5 L348.19202,162.5" fill="#2a848c" stroke="none"/> +<path d="M328.19202,161.5 L328.19202,160.5 L348.19202,160.5 L348.19202,161.5" fill="#29858c" stroke="none"/> +<path d="M328.19202,160.5 L328.19202,159.5 L348.19202,159.5 L348.19202,160.5" fill="#28868c" stroke="none"/> +<path d="M328.19202,159.5 L328.19202,158.5 L348.19202,158.5 L348.19202,159.5" fill="#28878c" stroke="none"/> +<path d="M328.19202,158.5 L328.19202,157.5 L348.19202,157.5 L348.19202,158.5" fill="#27888c" stroke="none"/> +<path d="M328.19202,157.5 L328.19202,156.5 L348.19202,156.5 L348.19202,157.5" fill="#26888c" stroke="none"/> +<path d="M328.19202,156.5 L328.19202,155.5 L348.19202,155.5 L348.19202,156.5" fill="#25898c" stroke="none"/> +<path d="M328.19202,155.5 L328.19202,154.5 L348.19202,154.5 L348.19202,155.5" fill="#248a8c" stroke="none"/> +<path d="M328.19202,154.5 L328.19202,153.5 L348.19202,153.5 L348.19202,154.5" fill="#248b8c" stroke="none"/> +<path d="M328.19202,153.5 L328.19202,152.5 L348.19202,152.5 L348.19202,153.5" fill="#238c8c" stroke="none"/> +<path d="M328.19202,152.5 L328.19202,151.5 L348.19202,151.5 L348.19202,152.5" fill="#228d8c" stroke="none"/> +<path d="M328.19202,151.5 L328.19202,150.5 L348.19202,150.5 L348.19202,151.5" fill="#218e8c" stroke="none"/> +<path d="M328.19202,150.5 L328.19202,149.5 L348.19202,149.5 L348.19202,150.5" fill="#208f8c" stroke="none"/> +<path d="M328.19202,149.5 L328.19202,148.5 L348.19202,148.5 L348.19202,149.5" fill="#21908c" stroke="none"/> +<path d="M328.19202,148.5 L328.19202,147.5 L348.19202,147.5 L348.19202,148.5" fill="#22918b" stroke="none"/> +<path d="M328.19202,147.5 L328.19202,146.5 L348.19202,146.5 L348.19202,147.5" fill="#23928b" stroke="none"/> +<path d="M328.19202,146.5 L328.19202,145.5 L348.19202,145.5 L348.19202,146.5" fill="#24938a" stroke="none"/> +<path d="M328.19202,145.5 L328.19202,144.5 L348.19202,144.5 L348.19202,145.5" fill="#25938a" stroke="none"/> +<path d="M328.19202,144.5 L328.19202,143.5 L348.19202,143.5 L348.19202,144.5" fill="#269489" stroke="none"/> +<path d="M328.19202,143.5 L328.19202,142.5 L348.19202,142.5 L348.19202,143.5" fill="#279589" stroke="none"/> +<path d="M328.19202,142.5 L328.19202,141.5 L348.19202,141.5 L348.19202,142.5" fill="#289689" stroke="none"/> +<path d="M328.19202,141.5 L328.19202,140.5 L348.19202,140.5 L348.19202,141.5" fill="#299788" stroke="none"/> +<path d="M328.19202,140.5 L328.19202,139.5 L348.19202,139.5 L348.19202,140.5" fill="#2a9888" stroke="none"/> +<path d="M328.19202,139.5 L328.19202,138.5 L348.19202,138.5 L348.19202,139.5" fill="#2b9987" stroke="none"/> +<path d="M328.19202,138.5 L328.19202,137.5 L348.19202,137.5 L348.19202,138.5" fill="#2c9a87" stroke="none"/> +<path d="M328.19202,137.5 L328.19202,136.5 L348.19202,136.5 L348.19202,137.5" fill="#2d9b86" stroke="none"/> +<path d="M328.19202,136.5 L328.19202,135.5 L348.19202,135.5 L348.19202,136.5" fill="#2e9b86" stroke="none"/> +<path d="M328.19202,135.5 L328.19202,134.5 L348.19202,134.5 L348.19202,135.5" fill="#2e9c85" stroke="none"/> +<path d="M328.19202,134.5 L328.19202,133.5 L348.19202,133.5 L348.19202,134.5" fill="#2f9d85" stroke="none"/> +<path d="M328.19202,133.5 L328.19202,132.5 L348.19202,132.5 L348.19202,133.5" fill="#309e84" stroke="none"/> +<path d="M328.19202,132.5 L328.19202,131.5 L348.19202,131.5 L348.19202,132.5" fill="#319f84" stroke="none"/> +<path d="M328.19202,131.5 L328.19202,130.5 L348.19202,130.5 L348.19202,131.5" fill="#32a083" stroke="none"/> +<path d="M328.19202,130.5 L328.19202,129.5 L348.19202,129.5 L348.19202,130.5" fill="#33a183" stroke="none"/> +<path d="M328.19202,129.5 L328.19202,128.5 L348.19202,128.5 L348.19202,129.5" fill="#34a282" stroke="none"/> +<path d="M328.19202,128.5 L328.19202,127.5 L348.19202,127.5 L348.19202,128.5" fill="#35a282" stroke="none"/> +<path d="M328.19202,127.5 L328.19202,126.5 L348.19202,126.5 L348.19202,127.5" fill="#36a381" stroke="none"/> +<path d="M328.19202,126.5 L328.19202,125.5 L348.19202,125.5 L348.19202,126.5" fill="#37a481" stroke="none"/> +<path d="M328.19202,125.5 L328.19202,124.5 L348.19202,124.5 L348.19202,125.5" fill="#38a580" stroke="none"/> +<path d="M328.19202,124.5 L328.19202,123.5 L348.19202,123.5 L348.19202,124.5" fill="#39a680" stroke="none"/> +<path d="M328.19202,123.5 L328.19202,122.5 L348.19202,122.5 L348.19202,123.5" fill="#39a77f" stroke="none"/> +<path d="M328.19202,122.5 L328.19202,121.5 L348.19202,121.5 L348.19202,122.5" fill="#3aa87e" stroke="none"/> +<path d="M328.19202,121.5 L328.19202,120.5 L348.19202,120.5 L348.19202,121.5" fill="#3ba97e" stroke="none"/> +<path d="M328.19202,120.5 L328.19202,119.5 L348.19202,119.5 L348.19202,120.5" fill="#3caa7d" stroke="none"/> +<path d="M328.19202,119.5 L328.19202,118.5 L348.19202,118.5 L348.19202,119.5" fill="#3daa7d" stroke="none"/> +<path d="M328.19202,118.5 L328.19202,117.5 L348.19202,117.5 L348.19202,118.5" fill="#3eab7c" stroke="none"/> +<path d="M328.19202,117.5 L328.19202,116.5 L348.19202,116.5 L348.19202,117.5" fill="#3fac7b" stroke="none"/> +<path d="M328.19202,116.5 L328.19202,115.5 L348.19202,115.5 L348.19202,116.5" fill="#40ad7b" stroke="none"/> +<path d="M328.19202,115.5 L328.19202,114.5 L348.19202,114.5 L348.19202,115.5" fill="#41ae7a" stroke="none"/> +<path d="M328.19202,114.5 L328.19202,113.5 L348.19202,113.5 L348.19202,114.5" fill="#41af79" stroke="none"/> +<path d="M328.19202,113.5 L328.19202,112.5 L348.19202,112.5 L348.19202,113.5" fill="#42b079" stroke="none"/> +<path d="M328.19202,112.5 L328.19202,111.5 L348.19202,111.5 L348.19202,112.5" fill="#43b178" stroke="none"/> +<path d="M328.19202,111.5 L328.19202,110.5 L348.19202,110.5 L348.19202,111.5" fill="#44b178" stroke="none"/> +<path d="M328.19202,110.5 L328.19202,109.5 L348.19202,109.5 L348.19202,110.5" fill="#45b277" stroke="none"/> +<path d="M328.19202,109.5 L328.19202,108.5 L348.19202,108.5 L348.19202,109.5" fill="#46b376" stroke="none"/> +<path d="M328.19202,108.5 L328.19202,107.5 L348.19202,107.5 L348.19202,108.5" fill="#47b475" stroke="none"/> +<path d="M328.19202,107.5 L328.19202,106.5 L348.19202,106.5 L348.19202,107.5" fill="#48b575" stroke="none"/> +<path d="M328.19202,106.5 L328.19202,105.5 L348.19202,105.5 L348.19202,106.5" fill="#49b674" stroke="none"/> +<path d="M328.19202,105.5 L328.19202,104.5 L348.19202,104.5 L348.19202,105.5" fill="#49b773" stroke="none"/> +<path d="M328.19202,104.5 L328.19202,103.5 L348.19202,103.5 L348.19202,104.5" fill="#4ab773" stroke="none"/> +<path d="M328.19202,103.5 L328.19202,102.5 L348.19202,102.5 L348.19202,103.5" fill="#4bb872" stroke="none"/> +<path d="M328.19202,102.5 L328.19202,101.5 L348.19202,101.5 L348.19202,102.5" fill="#4cb971" stroke="none"/> +<path d="M328.19202,101.5 L328.19202,100.5 L348.19202,100.5 L348.19202,101.5" fill="#4dba70" stroke="none"/> +<path d="M328.19202,100.5 L328.19202,99.5 L348.19202,99.5 L348.19202,100.5" fill="#4ebb6f" stroke="none"/> +<path d="M328.19202,99.5 L328.19202,98.5 L348.19202,98.5 L348.19202,99.5" fill="#4fbc6f" stroke="none"/> +<path d="M328.19202,98.5 L328.19202,97.5 L348.19202,97.5 L348.19202,98.5" fill="#50bd6e" stroke="none"/> +<path d="M328.19202,97.5 L328.19202,96.5 L348.19202,96.5 L348.19202,97.5" fill="#50be6d" stroke="none"/> +<path d="M328.19202,96.5 L328.19202,95.5 L348.19202,95.5 L348.19202,96.5" fill="#51be6c" stroke="none"/> +<path d="M328.19202,95.5 L328.19202,94.5 L348.19202,94.5 L348.19202,95.5" fill="#52bf6b" stroke="none"/> +<path d="M328.19202,94.5 L328.19202,93.5 L348.19202,93.5 L348.19202,94.5" fill="#53c06b" stroke="none"/> +<path d="M328.19202,93.5 L328.19202,92.5 L348.19202,92.5 L348.19202,93.5" fill="#54c16a" stroke="none"/> +<path d="M328.19202,92.5 L328.19202,91.5 L348.19202,91.5 L348.19202,92.5" fill="#55c269" stroke="none"/> +<path d="M328.19202,91.5 L328.19202,90.5 L348.19202,90.5 L348.19202,91.5" fill="#56c368" stroke="none"/> +<path d="M328.19202,90.5 L328.19202,89.5 L348.19202,89.5 L348.19202,90.5" fill="#57c467" stroke="none"/> +<path d="M328.19202,89.5 L328.19202,88.5 L348.19202,88.5 L348.19202,89.5" fill="#57c566" stroke="none"/> +<path d="M328.19202,88.5 L328.19202,87.5 L348.19202,87.5 L348.19202,88.5" fill="#58c565" stroke="none"/> +<path d="M328.19202,87.5 L328.19202,86.5 L348.19202,86.5 L348.19202,87.5" fill="#59c664" stroke="none"/> +<path d="M328.19202,86.5 L328.19202,85.5 L348.19202,85.5 L348.19202,86.5" fill="#5ac763" stroke="none"/> +<path d="M328.19202,85.5 L328.19202,84.5 L348.19202,84.5 L348.19202,85.5" fill="#5bc862" stroke="none"/> +<path d="M328.19202,84.5 L328.19202,83.5 L348.19202,83.5 L348.19202,84.5" fill="#5fc962" stroke="none"/> +<path d="M328.19202,83.5 L328.19202,82.5 L348.19202,82.5 L348.19202,83.5" fill="#62c961" stroke="none"/> +<path d="M328.19202,82.5 L328.19202,81.5 L348.19202,81.5 L348.19202,82.5" fill="#65ca61" stroke="none"/> +<path d="M328.19202,81.5 L328.19202,80.5 L348.19202,80.5 L348.19202,81.5" fill="#69ca60" stroke="none"/> +<path d="M328.19202,80.5 L328.19202,79.5 L348.19202,79.5 L348.19202,80.5" fill="#6ccb60" stroke="none"/> +<path d="M328.19202,79.5 L328.19202,78.5 L348.19202,78.5 L348.19202,79.5" fill="#6fcb5f" stroke="none"/> +<path d="M328.19202,78.5 L328.19202,77.5 L348.19202,77.5 L348.19202,78.5" fill="#72cc5f" stroke="none"/> +<path d="M328.19202,77.5 L328.19202,76.5 L348.19202,76.5 L348.19202,77.5" fill="#75cc5e" stroke="none"/> +<path d="M328.19202,76.5 L328.19202,75.5 L348.19202,75.5 L348.19202,76.5" fill="#78cd5e" stroke="none"/> +<path d="M328.19202,75.5 L328.19202,74.5 L348.19202,74.5 L348.19202,75.5" fill="#7bcd5d" stroke="none"/> +<path d="M328.19202,74.5 L328.19202,73.5 L348.19202,73.5 L348.19202,74.5" fill="#7ece5d" stroke="none"/> +<path d="M328.19202,73.5 L328.19202,72.5 L348.19202,72.5 L348.19202,73.5" fill="#80ce5c" stroke="none"/> +<path d="M328.19202,72.5 L328.19202,71.5 L348.19202,71.5 L348.19202,72.5" fill="#83cf5c" stroke="none"/> +<path d="M328.19202,71.5 L328.19202,70.5 L348.19202,70.5 L348.19202,71.5" fill="#86cf5b" stroke="none"/> +<path d="M328.19202,70.5 L328.19202,69.5 L348.19202,69.5 L348.19202,70.5" fill="#89d05b" stroke="none"/> +<path d="M328.19202,69.5 L328.19202,68.5 L348.19202,68.5 L348.19202,69.5" fill="#8bd05a" stroke="none"/> +<path d="M328.19202,68.5 L328.19202,67.5 L348.19202,67.5 L348.19202,68.5" fill="#8ed159" stroke="none"/> +<path d="M328.19202,67.5 L328.19202,66.5 L348.19202,66.5 L348.19202,67.5" fill="#91d159" stroke="none"/> +<path d="M328.19202,66.5 L328.19202,65.5 L348.19202,65.5 L348.19202,66.5" fill="#93d258" stroke="none"/> +<path d="M328.19202,65.5 L328.19202,64.5 L348.19202,64.5 L348.19202,65.5" fill="#96d258" stroke="none"/> +<path d="M328.19202,64.5 L328.19202,63.5 L348.19202,63.5 L348.19202,64.5" fill="#98d357" stroke="none"/> +<path d="M328.19202,63.5 L328.19202,62.5 L348.19202,62.5 L348.19202,63.5" fill="#9bd356" stroke="none"/> +<path d="M328.19202,62.5 L328.19202,61.5 L348.19202,61.5 L348.19202,62.5" fill="#9dd456" stroke="none"/> +<path d="M328.19202,61.5 L328.19202,60.5 L348.19202,60.5 L348.19202,61.5" fill="#a0d455" stroke="none"/> +<path d="M328.19202,60.5 L328.19202,59.5 L348.19202,59.5 L348.19202,60.5" fill="#a2d554" stroke="none"/> +<path d="M328.19202,59.5 L328.19202,58.5 L348.19202,58.5 L348.19202,59.5" fill="#a5d554" stroke="none"/> +<path d="M328.19202,58.5 L328.19202,57.5 L348.19202,57.5 L348.19202,58.5" fill="#a7d653" stroke="none"/> +<path d="M328.19202,57.5 L328.19202,56.5 L348.19202,56.5 L348.19202,57.5" fill="#aad652" stroke="none"/> +<path d="M328.19202,56.5 L328.19202,55.5 L348.19202,55.5 L348.19202,56.5" fill="#acd752" stroke="none"/> +<path d="M328.19202,55.5 L328.19202,54.5 L348.19202,54.5 L348.19202,55.5" fill="#afd751" stroke="none"/> +<path d="M328.19202,54.5 L328.19202,53.5 L348.19202,53.5 L348.19202,54.5" fill="#b1d850" stroke="none"/> +<path d="M328.19202,53.5 L328.19202,52.5 L348.19202,52.5 L348.19202,53.5" fill="#b3d84f" stroke="none"/> +<path d="M328.19202,52.5 L328.19202,51.5 L348.19202,51.5 L348.19202,52.5" fill="#b6d94f" stroke="none"/> +<path d="M328.19202,51.5 L328.19202,50.5 L348.19202,50.5 L348.19202,51.5" fill="#b8d94e" stroke="none"/> +<path d="M328.19202,50.5 L328.19202,49.5 L348.19202,49.5 L348.19202,50.5" fill="#bada4d" stroke="none"/> +<path d="M328.19202,49.5 L328.19202,48.5 L348.19202,48.5 L348.19202,49.5" fill="#bdda4c" stroke="none"/> +<path d="M328.19202,48.5 L328.19202,47.5 L348.19202,47.5 L348.19202,48.5" fill="#bfdb4b" stroke="none"/> +<path d="M328.19202,47.5 L328.19202,46.5 L348.19202,46.5 L348.19202,47.5" fill="#c1db4a" stroke="none"/> +<path d="M328.19202,46.5 L328.19202,45.5 L348.19202,45.5 L348.19202,46.5" fill="#c4dc49" stroke="none"/> +<path d="M328.19202,45.5 L328.19202,44.5 L348.19202,44.5 L348.19202,45.5" fill="#c6dc48" stroke="none"/> +<path d="M328.19202,44.5 L328.19202,43.5 L348.19202,43.5 L348.19202,44.5" fill="#c8dd47" stroke="none"/> +<path d="M328.19202,43.5 L328.19202,42.5 L348.19202,42.5 L348.19202,43.5" fill="#cadd46" stroke="none"/> +<path d="M328.19202,42.5 L328.19202,41.5 L348.19202,41.5 L348.19202,42.5" fill="#cddd45" stroke="none"/> +<path d="M328.19202,41.5 L328.19202,40.5 L348.19202,40.5 L348.19202,41.5" fill="#cfde44" stroke="none"/> +<path d="M328.19202,40.5 L328.19202,39.5 L348.19202,39.5 L348.19202,40.5" fill="#d1de43" stroke="none"/> +<path d="M328.19202,39.5 L328.19202,38.5 L348.19202,38.5 L348.19202,39.5" fill="#d3df42" stroke="none"/> +<path d="M328.19202,38.5 L328.19202,37.5 L348.19202,37.5 L348.19202,38.5" fill="#d6df41" stroke="none"/> +<path d="M328.19202,37.5 L328.19202,36.5 L348.19202,36.5 L348.19202,37.5" fill="#d8e040" stroke="none"/> +<path d="M328.19202,36.5 L328.19202,35.5 L348.19202,35.5 L348.19202,36.5" fill="#dae03f" stroke="none"/> +<path d="M328.19202,35.5 L328.19202,34.5 L348.19202,34.5 L348.19202,35.5" fill="#dce13e" stroke="none"/> +<path d="M328.19202,34.5 L328.19202,33.5 L348.19202,33.5 L348.19202,34.5" fill="#dfe13c" stroke="none"/> +<path d="M328.19202,33.5 L328.19202,32.5 L348.19202,32.5 L348.19202,33.5" fill="#e1e13b" stroke="none"/> +<path d="M328.19202,32.5 L328.19202,31.5 L348.19202,31.5 L348.19202,32.5" fill="#e3e23a" stroke="none"/> +<path d="M328.19202,31.5 L328.19202,30.5 L348.19202,30.5 L348.19202,31.5" fill="#e5e238" stroke="none"/> +<path d="M328.19202,30.5 L328.19202,29.5 L348.19202,29.5 L348.19202,30.5" fill="#e7e337" stroke="none"/> +<path d="M328.19202,29.5 L328.19202,28.5 L348.19202,28.5 L348.19202,29.5" fill="#eae335" stroke="none"/> +<path d="M328.19202,28.5 L328.19202,27.5 L348.19202,27.5 L348.19202,28.5" fill="#ece434" stroke="none"/> +<path d="M328.19202,27.5 L328.19202,26.5 L348.19202,26.5 L348.19202,27.5" fill="#eee432" stroke="none"/> +<path d="M328.19202,26.5 L328.19202,25.5 L348.19202,25.5 L348.19202,26.5" fill="#f0e530" stroke="none"/> +<path d="M328.19202,25.5 L328.19202,24.5 L348.19202,24.5 L348.19202,25.5" fill="#f2e52f" stroke="none"/> +<path d="M328.19202,24.5 L328.19202,23.5 L348.19202,23.5 L348.19202,24.5" fill="#f4e52d" stroke="none"/> +<path d="M328.19202,23.5 L328.19202,22.5 L348.19202,22.5 L348.19202,23.5" fill="#f7e62b" stroke="none"/> +<path d="M328.19202,22.5 L328.19202,21.5 L348.19202,21.5 L348.19202,22.5" fill="#f9e629" stroke="none"/> +<path d="M328.19202,21.5 L328.19202,20.5 L348.19202,20.5 L348.19202,21.5" fill="#fbe726" stroke="none"/> +<path d="M328.19202,20.5 L328.19202,20 L348.19202,20 L348.19202,20.5" fill="#fde724" stroke="none"/> +<path d="M328.19202,20 L348.19202,20 L348.19202,280 L328.19202,280 z" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M348.19202,265.58292 L352.19202,265.58292" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M14.34,3.216 L13.308,3.216 L13.308,-2.7719998 Q13.308,-3.12,13.314,-3.3600001 Q13.32,-3.6,13.332,-3.81 Q13.344,-4.02,13.356,-4.248 Q13.164,-4.0559998,13.007999,-3.9239998 Q12.852,-3.7919998,12.6119995,-3.5879998 L11.7,-2.8439999 L11.148,-3.552 L13.464,-5.3519998 L14.34,-5.3519998 L14.34,3.216 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 265.58292)"/> +<path d="M348.19202,237.0792 L352.19202,237.0792" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.32,3.216 L10.656,3.216 L10.656,2.3400002 L12.9,0.07200003 Q13.548,-0.576,13.992,-1.0799999 Q14.436,-1.5840001,14.664,-2.0700002 Q14.892,-2.5559998,14.892,-3.132 Q14.892,-3.8400002,14.472,-4.206 Q14.052,-4.572,13.38,-4.572 Q12.7560005,-4.572,12.282,-4.356 Q11.808,-4.14,11.316,-3.756 L10.752,-4.464 Q11.088,-4.752,11.49,-4.98 Q11.892,-5.2079997,12.366,-5.3399997 Q12.84,-5.4719996,13.38,-5.4719996 Q14.184,-5.4719996,14.76,-5.1959996 Q15.336,-4.9199996,15.653999,-4.41 Q15.972,-3.9,15.972,-3.192 Q15.972,-2.52,15.696,-1.9320002 Q15.42,-1.3439999,14.9279995,-0.7739999 Q14.436,-0.204,13.776,0.444 L11.988,2.2080002 L11.988,2.256 L16.32,2.256 L16.32,3.216 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 237.0792)"/> +<path d="M348.19202,208.57547 L352.19202,208.57547" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M15.996,-3.348 Q15.996,-2.7719998,15.780001,-2.3519998 Q15.564,-1.9320002,15.162001,-1.6679997 Q14.76,-1.4039998,14.219999,-1.296 L14.219999,-1.2480001 Q15.252,-1.1279998,15.7560005,-0.5999999 Q16.26,-0.07200003,16.26,0.78 Q16.26,1.524,15.912001,2.106 Q15.564,2.6880002,14.837999,3.012 Q14.1119995,3.336,12.972,3.336 Q12.3,3.336,11.724,3.234 Q11.148,3.132,10.62,2.868 L10.62,1.8840001 Q11.16,2.1480002,11.784,2.298 Q12.408,2.448,12.984,2.448 Q14.136,2.448,14.646,1.998 Q15.156,1.5480001,15.156,0.75600004 Q15.156,0.21600008,14.874001,-0.11399984 Q14.592,-0.444,14.052,-0.5999999 Q13.512,-0.75600004,12.7560005,-0.75600004 L11.9279995,-0.75600004 L11.9279995,-1.6560001 L12.768,-1.6560001 Q13.476,-1.6560001,13.95,-1.8600001 Q14.424,-2.0640001,14.67,-2.4299998 Q14.916,-2.796,14.916,-3.276 Q14.916,-3.9,14.496,-4.242 Q14.076,-4.584,13.356,-4.584 Q12.9,-4.584,12.528,-4.494 Q12.156,-4.404,11.838,-4.242 Q11.52,-4.08,11.196,-3.8639998 L10.668,-4.584 Q11.124,-4.944,11.802,-5.2079997 Q12.48,-5.4719996,13.344,-5.4719996 Q14.688,-5.4719996,15.342,-4.872 Q15.996,-4.272,15.996,-3.348 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 208.57547)"/> +<path d="M348.19202,180.07175 L352.19202,180.07175" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.704,1.2720001 L15.455999,1.2720001 L15.455999,3.216 L14.436,3.216 L14.436,1.2720001 L10.332,1.2720001 L10.332,0.37199998 L14.364,-5.4 L15.455999,-5.4 L15.455999,0.32400012 L16.704,0.32400012 L16.704,1.2720001 z M14.436,-2.376 Q14.436,-2.6880002,14.441999,-2.946 Q14.448,-3.204,14.46,-3.4320002 Q14.472,-3.6599998,14.478001,-3.87 Q14.483999,-4.08,14.496,-4.272 L14.448,-4.272 Q14.351999,-4.044,14.208,-3.7800002 Q14.064,-3.5159998,13.932,-3.336 L11.364,0.32400012 L14.436,0.32400012 L14.436,-2.376 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 180.07175)"/> +<path d="M348.19202,151.56801 L352.19202,151.56801" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M13.38,-2.04 Q14.2560005,-2.04,14.903999,-1.7399998 Q15.552,-1.44,15.906,-0.88199997 Q16.26,-0.32399988,16.26,0.48000002 Q16.26,1.368,15.875999,2.0100002 Q15.492001,2.652,14.778,2.994 Q14.064,3.336,13.056,3.336 Q12.396,3.336,11.814,3.216 Q11.232,3.0960002,10.8359995,2.868 L10.8359995,1.8720001 Q11.268,2.1360002,11.886,2.286 Q12.504,2.436,13.068,2.436 Q13.704,2.436,14.1779995,2.2380002 Q14.652,2.04,14.916,1.626 Q15.18,1.2120001,15.18,0.58800006 Q15.18,-0.25199986,14.664,-0.7019999 Q14.148,-1.152,13.032,-1.152 Q12.696,-1.152,12.264,-1.092 Q11.832,-1.0320001,11.568,-0.9720001 L11.04,-1.3080001 L11.364,-5.3519998 L15.66,-5.3519998 L15.66,-4.392 L12.264,-4.392 L12.059999,-1.908 Q12.264,-1.9439998,12.6119995,-1.9920001 Q12.96,-2.04,13.38,-2.04 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 151.56801)"/> +<path d="M348.19202,123.064285 L352.19202,123.064285" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M10.74,-0.444 Q10.74,-1.1879997,10.842,-1.908 Q10.944,-2.6279998,11.196,-3.27 Q11.448,-3.9120002,11.892,-4.41 Q12.336,-4.9079995,13.014,-5.19 Q13.691999,-5.4719996,14.664,-5.4719996 Q14.916,-5.4719996,15.222,-5.4480004 Q15.528,-5.4240003,15.719999,-5.364 L15.719999,-4.464 Q15.504,-4.536,15.234,-4.572 Q14.964,-4.608,14.688,-4.608 Q13.86,-4.608,13.308,-4.332 Q12.7560005,-4.0559998,12.438,-3.5760002 Q12.12,-3.0960002,11.976,-2.4720001 Q11.832,-1.848,11.796,-1.1399999 L11.868,-1.1399999 Q12.048,-1.428,12.323999,-1.6560001 Q12.6,-1.8839998,12.99,-2.0159998 Q13.38,-2.1479998,13.896,-2.1479998 Q14.639999,-2.1479998,15.198,-1.842 Q15.7560005,-1.5359998,16.068,-0.954 Q16.380001,-0.37199998,16.380001,0.4560001 Q16.380001,1.3440001,16.044,1.9920001 Q15.708,2.64,15.101999,2.9880002 Q14.496,3.336,13.656,3.336 Q13.044,3.336,12.516,3.108 Q11.988,2.88,11.586,2.4120002 Q11.184,1.9440001,10.962,1.23 Q10.74,0.51600003,10.74,-0.444 z M13.644,2.448 Q14.4,2.448,14.868,1.962 Q15.336,1.4760001,15.336,0.4560001 Q15.336,-0.3599999,14.922,-0.84000015 Q14.507999,-1.3200002,13.68,-1.3200002 Q13.116,-1.3200002,12.696,-1.086 Q12.276,-0.85199976,12.042,-0.49199986 Q11.808,-0.13199997,11.808,0.2520001 Q11.808,0.648,11.922,1.0320001 Q12.036,1.416,12.27,1.74 Q12.504,2.0640001,12.846,2.256 Q13.188,2.448,13.644,2.448 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 123.064285)"/> +<path d="M348.19202,94.56056 L352.19202,94.56056" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M11.712,3.216 L15.228001,-4.392 L10.608,-4.392 L10.608,-5.3519998 L16.355999,-5.3519998 L16.355999,-4.536 L12.875999,3.216 L11.712,3.216 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 94.56056)"/> +<path d="M348.19202,66.056854 L352.19202,66.056854" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M13.5,-5.4719996 Q14.2560005,-5.4719996,14.832,-5.2380004 Q15.408,-5.004,15.738,-4.548 Q16.068,-4.092,16.068,-3.42 Q16.068,-2.9039998,15.846001,-2.52 Q15.624001,-2.1360002,15.252,-1.842 Q14.88,-1.5479999,14.436,-1.3200002 Q14.964,-1.0679998,15.396,-0.75 Q15.828,-0.43199992,16.086,-0.0119998455 Q16.344,0.408,16.344,0.99600005 Q16.344,1.7160001,15.996,2.2380002 Q15.648,2.76,15.018,3.048 Q14.3880005,3.336,13.536,3.336 Q12.6119995,3.336,11.97,3.0600002 Q11.328,2.7840002,10.998,2.2740002 Q10.668,1.764,10.668,1.0320001 Q10.668,0.444,10.914,0.012000084 Q11.16,-0.41999984,11.568,-0.7319999 Q11.976,-1.0440001,12.444,-1.2599998 Q12.024,-1.5,11.682,-1.8059998 Q11.34,-2.112,11.142,-2.508 Q10.944,-2.9039998,10.944,-3.4320002 Q10.944,-4.092,11.28,-4.542 Q11.616,-4.992,12.191999,-5.232 Q12.768,-5.4719996,13.5,-5.4719996 z M11.7,1.0440001 Q11.7,1.6680001,12.144,2.082 Q12.588,2.496,13.512,2.496 Q14.3880005,2.496,14.85,2.082 Q15.312,1.6680001,15.312,1.0080001 Q15.312,0.58800006,15.09,0.26999998 Q14.868,-0.04799986,14.466,-0.29999995 Q14.064,-0.55200005,13.512,-0.75600004 L13.32,-0.82800007 Q12.792,-0.5999999,12.432,-0.33599997 Q12.072,-0.07200003,11.886,0.26399994 Q11.7,0.60000014,11.7,1.0440001 z M13.488,-4.62 Q12.828,-4.62,12.402,-4.302 Q11.976,-3.9840002,11.976,-3.3839998 Q11.976,-2.94,12.186,-2.6399999 Q12.396,-2.3400002,12.7560005,-2.13 Q13.116,-1.9200001,13.548,-1.7280002 Q13.968,-1.908,14.298,-2.124 Q14.628,-2.3400002,14.826,-2.646 Q15.024,-2.9520001,15.024,-3.3839998 Q15.024,-3.9840002,14.604,-4.302 Q14.184,-4.62,13.488,-4.62 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 66.056854)"/> +<path d="M348.19202,37.55313 L352.19202,37.55313" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.32,-1.6919999 Q16.32,-0.96000004,16.218,-0.23399997 Q16.116001,0.4920001,15.864,1.1340001 Q15.6119995,1.776,15.167999,2.2740002 Q14.724,2.772,14.04,3.0540001 Q13.356,3.336,12.384,3.336 Q12.144,3.336,11.826,3.306 Q11.507999,3.276,11.304,3.216 L11.304,2.316 Q11.52,2.388,11.808,2.43 Q12.096,2.4720001,12.36,2.4720001 Q13.2,2.4720001,13.746,2.196 Q14.292,1.9200001,14.616,1.4460001 Q14.940001,0.9720001,15.084,0.342 Q15.228001,-0.28799987,15.252,-0.9839997 L15.18,-0.9839997 Q15,-0.70799994,14.724,-0.48000002 Q14.448,-0.25199986,14.058,-0.119999886 Q13.668,0.012000084,13.139999,0.012000084 Q12.408,0.012000084,11.85,-0.2939999 Q11.292,-0.5999999,10.986,-1.1760001 Q10.68,-1.7519999,10.68,-2.58 Q10.68,-3.48,11.022,-4.128 Q11.364,-4.776,11.976,-5.124 Q12.588,-5.4719996,13.416,-5.4719996 Q14.028,-5.4719996,14.556,-5.2380004 Q15.084,-5.004,15.48,-4.536 Q15.875999,-4.068,16.098,-3.3600001 Q16.32,-2.652,16.32,-1.6919999 z M13.416,-4.584 Q12.672,-4.584,12.198,-4.092 Q11.724,-3.6,11.724,-2.592 Q11.724,-1.7639999,12.125999,-1.29 Q12.528,-0.816,13.368,-0.816 Q13.944,-0.816,14.364,-1.0500002 Q14.784,-1.2839999,15.018,-1.644 Q15.252,-2.0040002,15.252,-2.388 Q15.252,-2.7719998,15.1380005,-3.1620002 Q15.024,-3.552,14.796,-3.876 Q14.568,-4.2,14.219999,-4.392 Q13.872,-4.584,13.416,-4.584 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 37.55313)"/> +</svg> \ No newline at end of file diff --git a/tests/refs/colorbar/forced-scale.png b/tests/refs/colorbar/forced-scale.png new file mode 100644 index 0000000..c2ea542 Binary files /dev/null and b/tests/refs/colorbar/forced-scale.png differ diff --git a/tests/refs/colorbar/forced-scale.svg b/tests/refs/colorbar/forced-scale.svg new file mode 100644 index 0000000..4f05836 --- /dev/null +++ b/tests/refs/colorbar/forced-scale.svg @@ -0,0 +1,308 @@ +<svg height="300" viewBox="0 0 400 300" width="400" xmlns="http://www.w3.org/2000/svg"> +<rect fill="#ffffff" height="100%" width="100%"/> +<clipPath id="plotive-clip1"> +<rect height="260" width="296.19202" x="20" y="20"/> +</clipPath> +<g clip-path="url(#plotive-clip1)"> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#356b8c" fill-opacity="0.7019608" stroke="#356b8c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 190.89055 112.57182)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#395f8b" fill-opacity="0.7019608" stroke="#395f8b" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 179.97026 65.19423)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#31768c" fill-opacity="0.7019608" stroke="#31768c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 202.46431 182.75821)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#450e59" fill-opacity="0.7019608" stroke="#450e59" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 168.9136 137.4275)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#395c8b" fill-opacity="0.7019608" stroke="#395c8b" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 40 128.45457)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#404681" fill-opacity="0.7019608" stroke="#404681" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 146.78484 40)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#33718c" fill-opacity="0.7019608" stroke="#33718c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 160.33264 221.95265)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#433c79" fill-opacity="0.7019608" stroke="#433c79" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 62.404472 179.70654)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#433f7b" fill-opacity="0.7019608" stroke="#433f7b" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 104.20594 119.84299)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#248a8c" fill-opacity="0.7019608" stroke="#248a8c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 215.1704 107.928925)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#395b8b" fill-opacity="0.7019608" stroke="#395b8b" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 170.00009 123.19487)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#31768c" fill-opacity="0.7019608" stroke="#31768c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 269.2433 73.18942)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#46195f" fill-opacity="0.7019608" stroke="#46195f" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 296.19202 186.15048)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#346f8c" fill-opacity="0.7019608" stroke="#346f8c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 45.586716 260)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#3a558a" fill-opacity="0.7019608" stroke="#3a558a" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 143.01593 56.149902)"/> +</g> +<rect fill="none" height="260" stroke="#000000" stroke-width="1" width="296.19202" x="20" y="20"/> +<path d="M328.19202,280 L328.19202,279.5 L348.19202,279.5 L348.19202,280" fill="#440154" stroke="none"/> +<path d="M328.19202,279.5 L328.19202,278.5 L348.19202,278.5 L348.19202,279.5" fill="#440355" stroke="none"/> +<path d="M328.19202,278.5 L328.19202,277.5 L348.19202,277.5 L348.19202,278.5" fill="#440556" stroke="none"/> +<path d="M328.19202,277.5 L328.19202,276.5 L348.19202,276.5 L348.19202,277.5" fill="#440756" stroke="none"/> +<path d="M328.19202,276.5 L328.19202,275.5 L348.19202,275.5 L348.19202,276.5" fill="#450957" stroke="none"/> +<path d="M328.19202,275.5 L328.19202,274.5 L348.19202,274.5 L348.19202,275.5" fill="#450b58" stroke="none"/> +<path d="M328.19202,274.5 L328.19202,273.5 L348.19202,273.5 L348.19202,274.5" fill="#450d59" stroke="none"/> +<path d="M328.19202,273.5 L328.19202,272.5 L348.19202,272.5 L348.19202,273.5" fill="#450f5a" stroke="none"/> +<path d="M328.19202,272.5 L328.19202,271.5 L348.19202,271.5 L348.19202,272.5" fill="#45105a" stroke="none"/> +<path d="M328.19202,271.5 L328.19202,270.5 L348.19202,270.5 L348.19202,271.5" fill="#45125b" stroke="none"/> +<path d="M328.19202,270.5 L328.19202,269.5 L348.19202,269.5 L348.19202,270.5" fill="#45145c" stroke="none"/> +<path d="M328.19202,269.5 L328.19202,268.5 L348.19202,268.5 L348.19202,269.5" fill="#45155d" stroke="none"/> +<path d="M328.19202,268.5 L328.19202,267.5 L348.19202,267.5 L348.19202,268.5" fill="#45165e" stroke="none"/> +<path d="M328.19202,267.5 L328.19202,266.5 L348.19202,266.5 L348.19202,267.5" fill="#46185e" stroke="none"/> +<path d="M328.19202,266.5 L328.19202,265.5 L348.19202,265.5 L348.19202,266.5" fill="#46195f" stroke="none"/> +<path d="M328.19202,265.5 L328.19202,264.5 L348.19202,264.5 L348.19202,265.5" fill="#461b60" stroke="none"/> +<path d="M328.19202,264.5 L328.19202,263.5 L348.19202,263.5 L348.19202,264.5" fill="#461c61" stroke="none"/> +<path d="M328.19202,263.5 L328.19202,262.5 L348.19202,262.5 L348.19202,263.5" fill="#461d62" stroke="none"/> +<path d="M328.19202,262.5 L328.19202,261.5 L348.19202,261.5 L348.19202,262.5" fill="#461e63" stroke="none"/> +<path d="M328.19202,261.5 L328.19202,260.5 L348.19202,260.5 L348.19202,261.5" fill="#462063" stroke="none"/> +<path d="M328.19202,260.5 L328.19202,259.5 L348.19202,259.5 L348.19202,260.5" fill="#462164" stroke="none"/> +<path d="M328.19202,259.5 L328.19202,258.5 L348.19202,258.5 L348.19202,259.5" fill="#462265" stroke="none"/> +<path d="M328.19202,258.5 L328.19202,257.5 L348.19202,257.5 L348.19202,258.5" fill="#462366" stroke="none"/> +<path d="M328.19202,257.5 L328.19202,256.5 L348.19202,256.5 L348.19202,257.5" fill="#462467" stroke="none"/> +<path d="M328.19202,256.5 L328.19202,255.5 L348.19202,255.5 L348.19202,256.5" fill="#462667" stroke="none"/> +<path d="M328.19202,255.5 L328.19202,254.5 L348.19202,254.5 L348.19202,255.5" fill="#462768" stroke="none"/> +<path d="M328.19202,254.5 L328.19202,253.5 L348.19202,253.5 L348.19202,254.5" fill="#462869" stroke="none"/> +<path d="M328.19202,253.5 L328.19202,252.5 L348.19202,252.5 L348.19202,253.5" fill="#46296a" stroke="none"/> +<path d="M328.19202,252.5 L328.19202,251.5 L348.19202,251.5 L348.19202,252.5" fill="#462a6b" stroke="none"/> +<path d="M328.19202,251.5 L328.19202,250.5 L348.19202,250.5 L348.19202,251.5" fill="#462b6c" stroke="none"/> +<path d="M328.19202,250.5 L328.19202,249.5 L348.19202,249.5 L348.19202,250.5" fill="#452c6c" stroke="none"/> +<path d="M328.19202,249.5 L328.19202,248.5 L348.19202,248.5 L348.19202,249.5" fill="#452e6d" stroke="none"/> +<path d="M328.19202,248.5 L328.19202,247.5 L348.19202,247.5 L348.19202,248.5" fill="#452f6e" stroke="none"/> +<path d="M328.19202,247.5 L328.19202,246.5 L348.19202,246.5 L348.19202,247.5" fill="#45306f" stroke="none"/> +<path d="M328.19202,246.5 L328.19202,245.5 L348.19202,245.5 L348.19202,246.5" fill="#453170" stroke="none"/> +<path d="M328.19202,245.5 L328.19202,244.5 L348.19202,244.5 L348.19202,245.5" fill="#453271" stroke="none"/> +<path d="M328.19202,244.5 L328.19202,243.5 L348.19202,243.5 L348.19202,244.5" fill="#453371" stroke="none"/> +<path d="M328.19202,243.5 L328.19202,242.5 L348.19202,242.5 L348.19202,243.5" fill="#453472" stroke="none"/> +<path d="M328.19202,242.5 L328.19202,241.5 L348.19202,241.5 L348.19202,242.5" fill="#453573" stroke="none"/> +<path d="M328.19202,241.5 L328.19202,240.5 L348.19202,240.5 L348.19202,241.5" fill="#443674" stroke="none"/> +<path d="M328.19202,240.5 L328.19202,239.5 L348.19202,239.5 L348.19202,240.5" fill="#443775" stroke="none"/> +<path d="M328.19202,239.5 L328.19202,238.5 L348.19202,238.5 L348.19202,239.5" fill="#443876" stroke="none"/> +<path d="M328.19202,238.5 L328.19202,237.5 L348.19202,237.5 L348.19202,238.5" fill="#443976" stroke="none"/> +<path d="M328.19202,237.5 L328.19202,236.5 L348.19202,236.5 L348.19202,237.5" fill="#443a77" stroke="none"/> +<path d="M328.19202,236.5 L328.19202,235.5 L348.19202,235.5 L348.19202,236.5" fill="#433b78" stroke="none"/> +<path d="M328.19202,235.5 L328.19202,234.5 L348.19202,234.5 L348.19202,235.5" fill="#433c79" stroke="none"/> +<path d="M328.19202,234.5 L328.19202,233.5 L348.19202,233.5 L348.19202,234.5" fill="#433e7a" stroke="none"/> +<path d="M328.19202,233.5 L328.19202,232.5 L348.19202,232.5 L348.19202,233.5" fill="#433f7b" stroke="none"/> +<path d="M328.19202,232.5 L328.19202,231.5 L348.19202,231.5 L348.19202,232.5" fill="#42407c" stroke="none"/> +<path d="M328.19202,231.5 L328.19202,230.5 L348.19202,230.5 L348.19202,231.5" fill="#42417c" stroke="none"/> +<path d="M328.19202,230.5 L328.19202,229.5 L348.19202,229.5 L348.19202,230.5" fill="#42427d" stroke="none"/> +<path d="M328.19202,229.5 L328.19202,228.5 L348.19202,228.5 L348.19202,229.5" fill="#41437e" stroke="none"/> +<path d="M328.19202,228.5 L328.19202,227.5 L348.19202,227.5 L348.19202,228.5" fill="#41447f" stroke="none"/> +<path d="M328.19202,227.5 L328.19202,226.5 L348.19202,226.5 L348.19202,227.5" fill="#414580" stroke="none"/> +<path d="M328.19202,226.5 L328.19202,225.5 L348.19202,225.5 L348.19202,226.5" fill="#404681" stroke="none"/> +<path d="M328.19202,225.5 L328.19202,224.5 L348.19202,224.5 L348.19202,225.5" fill="#404781" stroke="none"/> +<path d="M328.19202,224.5 L328.19202,223.5 L348.19202,223.5 L348.19202,224.5" fill="#3f4882" stroke="none"/> +<path d="M328.19202,223.5 L328.19202,222.5 L348.19202,222.5 L348.19202,223.5" fill="#3f4983" stroke="none"/> +<path d="M328.19202,222.5 L328.19202,221.5 L348.19202,221.5 L348.19202,222.5" fill="#3f4a84" stroke="none"/> +<path d="M328.19202,221.5 L328.19202,220.5 L348.19202,220.5 L348.19202,221.5" fill="#3e4b85" stroke="none"/> +<path d="M328.19202,220.5 L328.19202,219.5 L348.19202,219.5 L348.19202,220.5" fill="#3e4c86" stroke="none"/> +<path d="M328.19202,219.5 L328.19202,218.5 L348.19202,218.5 L348.19202,219.5" fill="#3d4d87" stroke="none"/> +<path d="M328.19202,218.5 L328.19202,217.5 L348.19202,217.5 L348.19202,218.5" fill="#3d4e87" stroke="none"/> +<path d="M328.19202,217.5 L328.19202,216.5 L348.19202,216.5 L348.19202,217.5" fill="#3c4f88" stroke="none"/> +<path d="M328.19202,216.5 L328.19202,215.5 L348.19202,215.5 L348.19202,216.5" fill="#3c5089" stroke="none"/> +<path d="M328.19202,215.5 L328.19202,214.5 L348.19202,214.5 L348.19202,215.5" fill="#3b518a" stroke="none"/> +<path d="M328.19202,214.5 L328.19202,213.5 L348.19202,213.5 L348.19202,214.5" fill="#3b528a" stroke="none"/> +<path d="M328.19202,213.5 L328.19202,212.5 L348.19202,212.5 L348.19202,213.5" fill="#3b538a" stroke="none"/> +<path d="M328.19202,212.5 L328.19202,211.5 L348.19202,211.5 L348.19202,212.5" fill="#3b548a" stroke="none"/> +<path d="M328.19202,211.5 L328.19202,210.5 L348.19202,210.5 L348.19202,211.5" fill="#3a558a" stroke="none"/> +<path d="M328.19202,210.5 L328.19202,209.5 L348.19202,209.5 L348.19202,210.5" fill="#3a568a" stroke="none"/> +<path d="M328.19202,209.5 L328.19202,208.5 L348.19202,208.5 L348.19202,209.5" fill="#3a578b" stroke="none"/> +<path d="M328.19202,208.5 L328.19202,207.5 L348.19202,207.5 L348.19202,208.5" fill="#3a588b" stroke="none"/> +<path d="M328.19202,207.5 L328.19202,206.5 L348.19202,206.5 L348.19202,207.5" fill="#3a598b" stroke="none"/> +<path d="M328.19202,206.5 L328.19202,205.5 L348.19202,205.5 L348.19202,206.5" fill="#3a5a8b" stroke="none"/> +<path d="M328.19202,205.5 L328.19202,204.5 L348.19202,204.5 L348.19202,205.5" fill="#395b8b" stroke="none"/> +<path d="M328.19202,204.5 L328.19202,203.5 L348.19202,203.5 L348.19202,204.5" fill="#395c8b" stroke="none"/> +<path d="M328.19202,203.5 L328.19202,202.5 L348.19202,202.5 L348.19202,203.5" fill="#395d8b" stroke="none"/> +<path d="M328.19202,202.5 L328.19202,201.5 L348.19202,201.5 L348.19202,202.5" fill="#395e8b" stroke="none"/> +<path d="M328.19202,201.5 L328.19202,200.5 L348.19202,200.5 L348.19202,201.5" fill="#395f8b" stroke="none"/> +<path d="M328.19202,200.5 L328.19202,199.5 L348.19202,199.5 L348.19202,200.5" fill="#38608b" stroke="none"/> +<path d="M328.19202,199.5 L328.19202,198.5 L348.19202,198.5 L348.19202,199.5" fill="#38618b" stroke="none"/> +<path d="M328.19202,198.5 L328.19202,197.5 L348.19202,197.5 L348.19202,198.5" fill="#38628b" stroke="none"/> +<path d="M328.19202,197.5 L328.19202,196.5 L348.19202,196.5 L348.19202,197.5" fill="#38638b" stroke="none"/> +<path d="M328.19202,196.5 L328.19202,195.5 L348.19202,195.5 L348.19202,196.5" fill="#37648b" stroke="none"/> +<path d="M328.19202,195.5 L328.19202,194.5 L348.19202,194.5 L348.19202,195.5" fill="#37658b" stroke="none"/> +<path d="M328.19202,194.5 L328.19202,193.5 L348.19202,193.5 L348.19202,194.5" fill="#37658c" stroke="none"/> +<path d="M328.19202,193.5 L328.19202,192.5 L348.19202,192.5 L348.19202,193.5" fill="#37668c" stroke="none"/> +<path d="M328.19202,192.5 L328.19202,191.5 L348.19202,191.5 L348.19202,192.5" fill="#36678c" stroke="none"/> +<path d="M328.19202,191.5 L328.19202,190.5 L348.19202,190.5 L348.19202,191.5" fill="#36688c" stroke="none"/> +<path d="M328.19202,190.5 L328.19202,189.5 L348.19202,189.5 L348.19202,190.5" fill="#36698c" stroke="none"/> +<path d="M328.19202,189.5 L328.19202,188.5 L348.19202,188.5 L348.19202,189.5" fill="#366a8c" stroke="none"/> +<path d="M328.19202,188.5 L328.19202,187.5 L348.19202,187.5 L348.19202,188.5" fill="#356b8c" stroke="none"/> +<path d="M328.19202,187.5 L328.19202,186.5 L348.19202,186.5 L348.19202,187.5" fill="#356c8c" stroke="none"/> +<path d="M328.19202,186.5 L328.19202,185.5 L348.19202,185.5 L348.19202,186.5" fill="#356d8c" stroke="none"/> +<path d="M328.19202,185.5 L328.19202,184.5 L348.19202,184.5 L348.19202,185.5" fill="#346e8c" stroke="none"/> +<path d="M328.19202,184.5 L328.19202,183.5 L348.19202,183.5 L348.19202,184.5" fill="#346f8c" stroke="none"/> +<path d="M328.19202,183.5 L328.19202,182.5 L348.19202,182.5 L348.19202,183.5" fill="#34708c" stroke="none"/> +<path d="M328.19202,182.5 L328.19202,181.5 L348.19202,181.5 L348.19202,182.5" fill="#33718c" stroke="none"/> +<path d="M328.19202,181.5 L328.19202,180.5 L348.19202,180.5 L348.19202,181.5" fill="#33728c" stroke="none"/> +<path d="M328.19202,180.5 L328.19202,179.5 L348.19202,179.5 L348.19202,180.5" fill="#33738c" stroke="none"/> +<path d="M328.19202,179.5 L328.19202,178.5 L348.19202,178.5 L348.19202,179.5" fill="#32748c" stroke="none"/> +<path d="M328.19202,178.5 L328.19202,177.5 L348.19202,177.5 L348.19202,178.5" fill="#32758c" stroke="none"/> +<path d="M328.19202,177.5 L328.19202,176.5 L348.19202,176.5 L348.19202,177.5" fill="#31768c" stroke="none"/> +<path d="M328.19202,176.5 L328.19202,175.5 L348.19202,175.5 L348.19202,176.5" fill="#31778c" stroke="none"/> +<path d="M328.19202,175.5 L328.19202,174.5 L348.19202,174.5 L348.19202,175.5" fill="#30788c" stroke="none"/> +<path d="M328.19202,174.5 L328.19202,173.5 L348.19202,173.5 L348.19202,174.5" fill="#30788c" stroke="none"/> +<path d="M328.19202,173.5 L328.19202,172.5 L348.19202,172.5 L348.19202,173.5" fill="#30798c" stroke="none"/> +<path d="M328.19202,172.5 L328.19202,171.5 L348.19202,171.5 L348.19202,172.5" fill="#2f7a8c" stroke="none"/> +<path d="M328.19202,171.5 L328.19202,170.5 L348.19202,170.5 L348.19202,171.5" fill="#2f7b8c" stroke="none"/> +<path d="M328.19202,170.5 L328.19202,169.5 L348.19202,169.5 L348.19202,170.5" fill="#2e7c8c" stroke="none"/> +<path d="M328.19202,169.5 L328.19202,168.5 L348.19202,168.5 L348.19202,169.5" fill="#2e7d8c" stroke="none"/> +<path d="M328.19202,168.5 L328.19202,167.5 L348.19202,167.5 L348.19202,168.5" fill="#2d7e8c" stroke="none"/> +<path d="M328.19202,167.5 L328.19202,166.5 L348.19202,166.5 L348.19202,167.5" fill="#2d7f8c" stroke="none"/> +<path d="M328.19202,166.5 L328.19202,165.5 L348.19202,165.5 L348.19202,166.5" fill="#2c808c" stroke="none"/> +<path d="M328.19202,165.5 L328.19202,164.5 L348.19202,164.5 L348.19202,165.5" fill="#2b818c" stroke="none"/> +<path d="M328.19202,164.5 L328.19202,163.5 L348.19202,163.5 L348.19202,164.5" fill="#2b828c" stroke="none"/> +<path d="M328.19202,163.5 L328.19202,162.5 L348.19202,162.5 L348.19202,163.5" fill="#2a838c" stroke="none"/> +<path d="M328.19202,162.5 L328.19202,161.5 L348.19202,161.5 L348.19202,162.5" fill="#2a848c" stroke="none"/> +<path d="M328.19202,161.5 L328.19202,160.5 L348.19202,160.5 L348.19202,161.5" fill="#29858c" stroke="none"/> +<path d="M328.19202,160.5 L328.19202,159.5 L348.19202,159.5 L348.19202,160.5" fill="#28868c" stroke="none"/> +<path d="M328.19202,159.5 L328.19202,158.5 L348.19202,158.5 L348.19202,159.5" fill="#28878c" stroke="none"/> +<path d="M328.19202,158.5 L328.19202,157.5 L348.19202,157.5 L348.19202,158.5" fill="#27888c" stroke="none"/> +<path d="M328.19202,157.5 L328.19202,156.5 L348.19202,156.5 L348.19202,157.5" fill="#26888c" stroke="none"/> +<path d="M328.19202,156.5 L328.19202,155.5 L348.19202,155.5 L348.19202,156.5" fill="#25898c" stroke="none"/> +<path d="M328.19202,155.5 L328.19202,154.5 L348.19202,154.5 L348.19202,155.5" fill="#248a8c" stroke="none"/> +<path d="M328.19202,154.5 L328.19202,153.5 L348.19202,153.5 L348.19202,154.5" fill="#248b8c" stroke="none"/> +<path d="M328.19202,153.5 L328.19202,152.5 L348.19202,152.5 L348.19202,153.5" fill="#238c8c" stroke="none"/> +<path d="M328.19202,152.5 L328.19202,151.5 L348.19202,151.5 L348.19202,152.5" fill="#228d8c" stroke="none"/> +<path d="M328.19202,151.5 L328.19202,150.5 L348.19202,150.5 L348.19202,151.5" fill="#218e8c" stroke="none"/> +<path d="M328.19202,150.5 L328.19202,149.5 L348.19202,149.5 L348.19202,150.5" fill="#208f8c" stroke="none"/> +<path d="M328.19202,149.5 L328.19202,148.5 L348.19202,148.5 L348.19202,149.5" fill="#21908c" stroke="none"/> +<path d="M328.19202,148.5 L328.19202,147.5 L348.19202,147.5 L348.19202,148.5" fill="#22918b" stroke="none"/> +<path d="M328.19202,147.5 L328.19202,146.5 L348.19202,146.5 L348.19202,147.5" fill="#23928b" stroke="none"/> +<path d="M328.19202,146.5 L328.19202,145.5 L348.19202,145.5 L348.19202,146.5" fill="#24938a" stroke="none"/> +<path d="M328.19202,145.5 L328.19202,144.5 L348.19202,144.5 L348.19202,145.5" fill="#25938a" stroke="none"/> +<path d="M328.19202,144.5 L328.19202,143.5 L348.19202,143.5 L348.19202,144.5" fill="#269489" stroke="none"/> +<path d="M328.19202,143.5 L328.19202,142.5 L348.19202,142.5 L348.19202,143.5" fill="#279589" stroke="none"/> +<path d="M328.19202,142.5 L328.19202,141.5 L348.19202,141.5 L348.19202,142.5" fill="#289689" stroke="none"/> +<path d="M328.19202,141.5 L328.19202,140.5 L348.19202,140.5 L348.19202,141.5" fill="#299788" stroke="none"/> +<path d="M328.19202,140.5 L328.19202,139.5 L348.19202,139.5 L348.19202,140.5" fill="#2a9888" stroke="none"/> +<path d="M328.19202,139.5 L328.19202,138.5 L348.19202,138.5 L348.19202,139.5" fill="#2b9987" stroke="none"/> +<path d="M328.19202,138.5 L328.19202,137.5 L348.19202,137.5 L348.19202,138.5" fill="#2c9a87" stroke="none"/> +<path d="M328.19202,137.5 L328.19202,136.5 L348.19202,136.5 L348.19202,137.5" fill="#2d9b86" stroke="none"/> +<path d="M328.19202,136.5 L328.19202,135.5 L348.19202,135.5 L348.19202,136.5" fill="#2e9b86" stroke="none"/> +<path d="M328.19202,135.5 L328.19202,134.5 L348.19202,134.5 L348.19202,135.5" fill="#2e9c85" stroke="none"/> +<path d="M328.19202,134.5 L328.19202,133.5 L348.19202,133.5 L348.19202,134.5" fill="#2f9d85" stroke="none"/> +<path d="M328.19202,133.5 L328.19202,132.5 L348.19202,132.5 L348.19202,133.5" fill="#309e84" stroke="none"/> +<path d="M328.19202,132.5 L328.19202,131.5 L348.19202,131.5 L348.19202,132.5" fill="#319f84" stroke="none"/> +<path d="M328.19202,131.5 L328.19202,130.5 L348.19202,130.5 L348.19202,131.5" fill="#32a083" stroke="none"/> +<path d="M328.19202,130.5 L328.19202,129.5 L348.19202,129.5 L348.19202,130.5" fill="#33a183" stroke="none"/> +<path d="M328.19202,129.5 L328.19202,128.5 L348.19202,128.5 L348.19202,129.5" fill="#34a282" stroke="none"/> +<path d="M328.19202,128.5 L328.19202,127.5 L348.19202,127.5 L348.19202,128.5" fill="#35a282" stroke="none"/> +<path d="M328.19202,127.5 L328.19202,126.5 L348.19202,126.5 L348.19202,127.5" fill="#36a381" stroke="none"/> +<path d="M328.19202,126.5 L328.19202,125.5 L348.19202,125.5 L348.19202,126.5" fill="#37a481" stroke="none"/> +<path d="M328.19202,125.5 L328.19202,124.5 L348.19202,124.5 L348.19202,125.5" fill="#38a580" stroke="none"/> +<path d="M328.19202,124.5 L328.19202,123.5 L348.19202,123.5 L348.19202,124.5" fill="#39a680" stroke="none"/> +<path d="M328.19202,123.5 L328.19202,122.5 L348.19202,122.5 L348.19202,123.5" fill="#39a77f" stroke="none"/> +<path d="M328.19202,122.5 L328.19202,121.5 L348.19202,121.5 L348.19202,122.5" fill="#3aa87e" stroke="none"/> +<path d="M328.19202,121.5 L328.19202,120.5 L348.19202,120.5 L348.19202,121.5" fill="#3ba97e" stroke="none"/> +<path d="M328.19202,120.5 L328.19202,119.5 L348.19202,119.5 L348.19202,120.5" fill="#3caa7d" stroke="none"/> +<path d="M328.19202,119.5 L328.19202,118.5 L348.19202,118.5 L348.19202,119.5" fill="#3daa7d" stroke="none"/> +<path d="M328.19202,118.5 L328.19202,117.5 L348.19202,117.5 L348.19202,118.5" fill="#3eab7c" stroke="none"/> +<path d="M328.19202,117.5 L328.19202,116.5 L348.19202,116.5 L348.19202,117.5" fill="#3fac7b" stroke="none"/> +<path d="M328.19202,116.5 L328.19202,115.5 L348.19202,115.5 L348.19202,116.5" fill="#40ad7b" stroke="none"/> +<path d="M328.19202,115.5 L328.19202,114.5 L348.19202,114.5 L348.19202,115.5" fill="#41ae7a" stroke="none"/> +<path d="M328.19202,114.5 L328.19202,113.5 L348.19202,113.5 L348.19202,114.5" fill="#41af79" stroke="none"/> +<path d="M328.19202,113.5 L328.19202,112.5 L348.19202,112.5 L348.19202,113.5" fill="#42b079" stroke="none"/> +<path d="M328.19202,112.5 L328.19202,111.5 L348.19202,111.5 L348.19202,112.5" fill="#43b178" stroke="none"/> +<path d="M328.19202,111.5 L328.19202,110.5 L348.19202,110.5 L348.19202,111.5" fill="#44b178" stroke="none"/> +<path d="M328.19202,110.5 L328.19202,109.5 L348.19202,109.5 L348.19202,110.5" fill="#45b277" stroke="none"/> +<path d="M328.19202,109.5 L328.19202,108.5 L348.19202,108.5 L348.19202,109.5" fill="#46b376" stroke="none"/> +<path d="M328.19202,108.5 L328.19202,107.5 L348.19202,107.5 L348.19202,108.5" fill="#47b475" stroke="none"/> +<path d="M328.19202,107.5 L328.19202,106.5 L348.19202,106.5 L348.19202,107.5" fill="#48b575" stroke="none"/> +<path d="M328.19202,106.5 L328.19202,105.5 L348.19202,105.5 L348.19202,106.5" fill="#49b674" stroke="none"/> +<path d="M328.19202,105.5 L328.19202,104.5 L348.19202,104.5 L348.19202,105.5" fill="#49b773" stroke="none"/> +<path d="M328.19202,104.5 L328.19202,103.5 L348.19202,103.5 L348.19202,104.5" fill="#4ab773" stroke="none"/> +<path d="M328.19202,103.5 L328.19202,102.5 L348.19202,102.5 L348.19202,103.5" fill="#4bb872" stroke="none"/> +<path d="M328.19202,102.5 L328.19202,101.5 L348.19202,101.5 L348.19202,102.5" fill="#4cb971" stroke="none"/> +<path d="M328.19202,101.5 L328.19202,100.5 L348.19202,100.5 L348.19202,101.5" fill="#4dba70" stroke="none"/> +<path d="M328.19202,100.5 L328.19202,99.5 L348.19202,99.5 L348.19202,100.5" fill="#4ebb6f" stroke="none"/> +<path d="M328.19202,99.5 L328.19202,98.5 L348.19202,98.5 L348.19202,99.5" fill="#4fbc6f" stroke="none"/> +<path d="M328.19202,98.5 L328.19202,97.5 L348.19202,97.5 L348.19202,98.5" fill="#50bd6e" stroke="none"/> +<path d="M328.19202,97.5 L328.19202,96.5 L348.19202,96.5 L348.19202,97.5" fill="#50be6d" stroke="none"/> +<path d="M328.19202,96.5 L328.19202,95.5 L348.19202,95.5 L348.19202,96.5" fill="#51be6c" stroke="none"/> +<path d="M328.19202,95.5 L328.19202,94.5 L348.19202,94.5 L348.19202,95.5" fill="#52bf6b" stroke="none"/> +<path d="M328.19202,94.5 L328.19202,93.5 L348.19202,93.5 L348.19202,94.5" fill="#53c06b" stroke="none"/> +<path d="M328.19202,93.5 L328.19202,92.5 L348.19202,92.5 L348.19202,93.5" fill="#54c16a" stroke="none"/> +<path d="M328.19202,92.5 L328.19202,91.5 L348.19202,91.5 L348.19202,92.5" fill="#55c269" stroke="none"/> +<path d="M328.19202,91.5 L328.19202,90.5 L348.19202,90.5 L348.19202,91.5" fill="#56c368" stroke="none"/> +<path d="M328.19202,90.5 L328.19202,89.5 L348.19202,89.5 L348.19202,90.5" fill="#57c467" stroke="none"/> +<path d="M328.19202,89.5 L328.19202,88.5 L348.19202,88.5 L348.19202,89.5" fill="#57c566" stroke="none"/> +<path d="M328.19202,88.5 L328.19202,87.5 L348.19202,87.5 L348.19202,88.5" fill="#58c565" stroke="none"/> +<path d="M328.19202,87.5 L328.19202,86.5 L348.19202,86.5 L348.19202,87.5" fill="#59c664" stroke="none"/> +<path d="M328.19202,86.5 L328.19202,85.5 L348.19202,85.5 L348.19202,86.5" fill="#5ac763" stroke="none"/> +<path d="M328.19202,85.5 L328.19202,84.5 L348.19202,84.5 L348.19202,85.5" fill="#5bc862" stroke="none"/> +<path d="M328.19202,84.5 L328.19202,83.5 L348.19202,83.5 L348.19202,84.5" fill="#5fc962" stroke="none"/> +<path d="M328.19202,83.5 L328.19202,82.5 L348.19202,82.5 L348.19202,83.5" fill="#62c961" stroke="none"/> +<path d="M328.19202,82.5 L328.19202,81.5 L348.19202,81.5 L348.19202,82.5" fill="#65ca61" stroke="none"/> +<path d="M328.19202,81.5 L328.19202,80.5 L348.19202,80.5 L348.19202,81.5" fill="#69ca60" stroke="none"/> +<path d="M328.19202,80.5 L328.19202,79.5 L348.19202,79.5 L348.19202,80.5" fill="#6ccb60" stroke="none"/> +<path d="M328.19202,79.5 L328.19202,78.5 L348.19202,78.5 L348.19202,79.5" fill="#6fcb5f" stroke="none"/> +<path d="M328.19202,78.5 L328.19202,77.5 L348.19202,77.5 L348.19202,78.5" fill="#72cc5f" stroke="none"/> +<path d="M328.19202,77.5 L328.19202,76.5 L348.19202,76.5 L348.19202,77.5" fill="#75cc5e" stroke="none"/> +<path d="M328.19202,76.5 L328.19202,75.5 L348.19202,75.5 L348.19202,76.5" fill="#78cd5e" stroke="none"/> +<path d="M328.19202,75.5 L328.19202,74.5 L348.19202,74.5 L348.19202,75.5" fill="#7bcd5d" stroke="none"/> +<path d="M328.19202,74.5 L328.19202,73.5 L348.19202,73.5 L348.19202,74.5" fill="#7ece5d" stroke="none"/> +<path d="M328.19202,73.5 L328.19202,72.5 L348.19202,72.5 L348.19202,73.5" fill="#80ce5c" stroke="none"/> +<path d="M328.19202,72.5 L328.19202,71.5 L348.19202,71.5 L348.19202,72.5" fill="#83cf5c" stroke="none"/> +<path d="M328.19202,71.5 L328.19202,70.5 L348.19202,70.5 L348.19202,71.5" fill="#86cf5b" stroke="none"/> +<path d="M328.19202,70.5 L328.19202,69.5 L348.19202,69.5 L348.19202,70.5" fill="#89d05b" stroke="none"/> +<path d="M328.19202,69.5 L328.19202,68.5 L348.19202,68.5 L348.19202,69.5" fill="#8bd05a" stroke="none"/> +<path d="M328.19202,68.5 L328.19202,67.5 L348.19202,67.5 L348.19202,68.5" fill="#8ed159" stroke="none"/> +<path d="M328.19202,67.5 L328.19202,66.5 L348.19202,66.5 L348.19202,67.5" fill="#91d159" stroke="none"/> +<path d="M328.19202,66.5 L328.19202,65.5 L348.19202,65.5 L348.19202,66.5" fill="#93d258" stroke="none"/> +<path d="M328.19202,65.5 L328.19202,64.5 L348.19202,64.5 L348.19202,65.5" fill="#96d258" stroke="none"/> +<path d="M328.19202,64.5 L328.19202,63.5 L348.19202,63.5 L348.19202,64.5" fill="#98d357" stroke="none"/> +<path d="M328.19202,63.5 L328.19202,62.5 L348.19202,62.5 L348.19202,63.5" fill="#9bd356" stroke="none"/> +<path d="M328.19202,62.5 L328.19202,61.5 L348.19202,61.5 L348.19202,62.5" fill="#9dd456" stroke="none"/> +<path d="M328.19202,61.5 L328.19202,60.5 L348.19202,60.5 L348.19202,61.5" fill="#a0d455" stroke="none"/> +<path d="M328.19202,60.5 L328.19202,59.5 L348.19202,59.5 L348.19202,60.5" fill="#a2d554" stroke="none"/> +<path d="M328.19202,59.5 L328.19202,58.5 L348.19202,58.5 L348.19202,59.5" fill="#a5d554" stroke="none"/> +<path d="M328.19202,58.5 L328.19202,57.5 L348.19202,57.5 L348.19202,58.5" fill="#a7d653" stroke="none"/> +<path d="M328.19202,57.5 L328.19202,56.5 L348.19202,56.5 L348.19202,57.5" fill="#aad652" stroke="none"/> +<path d="M328.19202,56.5 L328.19202,55.5 L348.19202,55.5 L348.19202,56.5" fill="#acd752" stroke="none"/> +<path d="M328.19202,55.5 L328.19202,54.5 L348.19202,54.5 L348.19202,55.5" fill="#afd751" stroke="none"/> +<path d="M328.19202,54.5 L328.19202,53.5 L348.19202,53.5 L348.19202,54.5" fill="#b1d850" stroke="none"/> +<path d="M328.19202,53.5 L328.19202,52.5 L348.19202,52.5 L348.19202,53.5" fill="#b3d84f" stroke="none"/> +<path d="M328.19202,52.5 L328.19202,51.5 L348.19202,51.5 L348.19202,52.5" fill="#b6d94f" stroke="none"/> +<path d="M328.19202,51.5 L328.19202,50.5 L348.19202,50.5 L348.19202,51.5" fill="#b8d94e" stroke="none"/> +<path d="M328.19202,50.5 L328.19202,49.5 L348.19202,49.5 L348.19202,50.5" fill="#bada4d" stroke="none"/> +<path d="M328.19202,49.5 L328.19202,48.5 L348.19202,48.5 L348.19202,49.5" fill="#bdda4c" stroke="none"/> +<path d="M328.19202,48.5 L328.19202,47.5 L348.19202,47.5 L348.19202,48.5" fill="#bfdb4b" stroke="none"/> +<path d="M328.19202,47.5 L328.19202,46.5 L348.19202,46.5 L348.19202,47.5" fill="#c1db4a" stroke="none"/> +<path d="M328.19202,46.5 L328.19202,45.5 L348.19202,45.5 L348.19202,46.5" fill="#c4dc49" stroke="none"/> +<path d="M328.19202,45.5 L328.19202,44.5 L348.19202,44.5 L348.19202,45.5" fill="#c6dc48" stroke="none"/> +<path d="M328.19202,44.5 L328.19202,43.5 L348.19202,43.5 L348.19202,44.5" fill="#c8dd47" stroke="none"/> +<path d="M328.19202,43.5 L328.19202,42.5 L348.19202,42.5 L348.19202,43.5" fill="#cadd46" stroke="none"/> +<path d="M328.19202,42.5 L328.19202,41.5 L348.19202,41.5 L348.19202,42.5" fill="#cddd45" stroke="none"/> +<path d="M328.19202,41.5 L328.19202,40.5 L348.19202,40.5 L348.19202,41.5" fill="#cfde44" stroke="none"/> +<path d="M328.19202,40.5 L328.19202,39.5 L348.19202,39.5 L348.19202,40.5" fill="#d1de43" stroke="none"/> +<path d="M328.19202,39.5 L328.19202,38.5 L348.19202,38.5 L348.19202,39.5" fill="#d3df42" stroke="none"/> +<path d="M328.19202,38.5 L328.19202,37.5 L348.19202,37.5 L348.19202,38.5" fill="#d6df41" stroke="none"/> +<path d="M328.19202,37.5 L328.19202,36.5 L348.19202,36.5 L348.19202,37.5" fill="#d8e040" stroke="none"/> +<path d="M328.19202,36.5 L328.19202,35.5 L348.19202,35.5 L348.19202,36.5" fill="#dae03f" stroke="none"/> +<path d="M328.19202,35.5 L328.19202,34.5 L348.19202,34.5 L348.19202,35.5" fill="#dce13e" stroke="none"/> +<path d="M328.19202,34.5 L328.19202,33.5 L348.19202,33.5 L348.19202,34.5" fill="#dfe13c" stroke="none"/> +<path d="M328.19202,33.5 L328.19202,32.5 L348.19202,32.5 L348.19202,33.5" fill="#e1e13b" stroke="none"/> +<path d="M328.19202,32.5 L328.19202,31.5 L348.19202,31.5 L348.19202,32.5" fill="#e3e23a" stroke="none"/> +<path d="M328.19202,31.5 L328.19202,30.5 L348.19202,30.5 L348.19202,31.5" fill="#e5e238" stroke="none"/> +<path d="M328.19202,30.5 L328.19202,29.5 L348.19202,29.5 L348.19202,30.5" fill="#e7e337" stroke="none"/> +<path d="M328.19202,29.5 L328.19202,28.5 L348.19202,28.5 L348.19202,29.5" fill="#eae335" stroke="none"/> +<path d="M328.19202,28.5 L328.19202,27.5 L348.19202,27.5 L348.19202,28.5" fill="#ece434" stroke="none"/> +<path d="M328.19202,27.5 L328.19202,26.5 L348.19202,26.5 L348.19202,27.5" fill="#eee432" stroke="none"/> +<path d="M328.19202,26.5 L328.19202,25.5 L348.19202,25.5 L348.19202,26.5" fill="#f0e530" stroke="none"/> +<path d="M328.19202,25.5 L328.19202,24.5 L348.19202,24.5 L348.19202,25.5" fill="#f2e52f" stroke="none"/> +<path d="M328.19202,24.5 L328.19202,23.5 L348.19202,23.5 L348.19202,24.5" fill="#f4e52d" stroke="none"/> +<path d="M328.19202,23.5 L328.19202,22.5 L348.19202,22.5 L348.19202,23.5" fill="#f7e62b" stroke="none"/> +<path d="M328.19202,22.5 L328.19202,21.5 L348.19202,21.5 L348.19202,22.5" fill="#f9e629" stroke="none"/> +<path d="M328.19202,21.5 L328.19202,20.5 L348.19202,20.5 L348.19202,21.5" fill="#fbe726" stroke="none"/> +<path d="M328.19202,20.5 L328.19202,20 L348.19202,20 L348.19202,20.5" fill="#fde724" stroke="none"/> +<path d="M328.19202,20 L348.19202,20 L348.19202,280 L328.19202,280 z" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M348.19202,280 L352.19202,280" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.355999,-1.0799999 Q16.355999,-0.036000013,16.2,0.78 Q16.044,1.5960001,15.702,2.1660001 Q15.360001,2.736,14.814,3.036 Q14.268,3.336,13.5,3.336 Q12.54,3.336,11.91,2.808 Q11.28,2.2800002,10.974,1.2900001 Q10.668,0.29999995,10.668,-1.0799999 Q10.668,-2.4720001,10.95,-3.4559999 Q11.232,-4.44,11.856,-4.9620004 Q12.48,-5.4839997,13.5,-5.4839997 Q14.46,-5.4839997,15.096001,-4.9620004 Q15.732,-4.44,16.044,-3.4559999 Q16.355999,-2.4720001,16.355999,-1.0799999 z M11.724,-1.0799999 Q11.724,0.095999956,11.898,0.87600017 Q12.072,1.656,12.462,2.046 Q12.852,2.436,13.5,2.436 Q14.148,2.436,14.538,2.052 Q14.9279995,1.6680001,15.108,0.88199997 Q15.288,0.095999956,15.288,-1.0799999 Q15.288,-2.256,15.108,-3.0300002 Q14.9279995,-3.804,14.538,-4.194 Q14.148,-4.584,13.5,-4.584 Q12.852,-4.584,12.462,-4.194 Q12.072,-3.804,11.898,-3.0300002 Q11.724,-2.256,11.724,-1.0799999 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 280)"/> +<path d="M348.19202,254 L352.19202,254" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.32,3.216 L10.656,3.216 L10.656,2.3400002 L12.9,0.07200003 Q13.548,-0.576,13.992,-1.0799999 Q14.436,-1.5840001,14.664,-2.0700002 Q14.892,-2.5559998,14.892,-3.132 Q14.892,-3.8400002,14.472,-4.206 Q14.052,-4.572,13.38,-4.572 Q12.7560005,-4.572,12.282,-4.356 Q11.808,-4.14,11.316,-3.756 L10.752,-4.464 Q11.088,-4.752,11.49,-4.98 Q11.892,-5.2079997,12.366,-5.3399997 Q12.84,-5.4719996,13.38,-5.4719996 Q14.184,-5.4719996,14.76,-5.1959996 Q15.336,-4.9199996,15.653999,-4.41 Q15.972,-3.9,15.972,-3.192 Q15.972,-2.52,15.696,-1.9320002 Q15.42,-1.3439999,14.9279995,-0.7739999 Q14.436,-0.204,13.776,0.444 L11.988,2.2080002 L11.988,2.256 L16.32,2.256 L16.32,3.216 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 254)"/> +<path d="M348.19202,228 L352.19202,228" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.704,1.2720001 L15.455999,1.2720001 L15.455999,3.216 L14.436,3.216 L14.436,1.2720001 L10.332,1.2720001 L10.332,0.37199998 L14.364,-5.4 L15.455999,-5.4 L15.455999,0.32400012 L16.704,0.32400012 L16.704,1.2720001 z M14.436,-2.376 Q14.436,-2.6880002,14.441999,-2.946 Q14.448,-3.204,14.46,-3.4320002 Q14.472,-3.6599998,14.478001,-3.87 Q14.483999,-4.08,14.496,-4.272 L14.448,-4.272 Q14.351999,-4.044,14.208,-3.7800002 Q14.064,-3.5159998,13.932,-3.336 L11.364,0.32400012 L14.436,0.32400012 L14.436,-2.376 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 228)"/> +<path d="M348.19202,202 L352.19202,202" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M10.74,-0.444 Q10.74,-1.1879997,10.842,-1.908 Q10.944,-2.6279998,11.196,-3.27 Q11.448,-3.9120002,11.892,-4.41 Q12.336,-4.9079995,13.014,-5.19 Q13.691999,-5.4719996,14.664,-5.4719996 Q14.916,-5.4719996,15.222,-5.4480004 Q15.528,-5.4240003,15.719999,-5.364 L15.719999,-4.464 Q15.504,-4.536,15.234,-4.572 Q14.964,-4.608,14.688,-4.608 Q13.86,-4.608,13.308,-4.332 Q12.7560005,-4.0559998,12.438,-3.5760002 Q12.12,-3.0960002,11.976,-2.4720001 Q11.832,-1.848,11.796,-1.1399999 L11.868,-1.1399999 Q12.048,-1.428,12.323999,-1.6560001 Q12.6,-1.8839998,12.99,-2.0159998 Q13.38,-2.1479998,13.896,-2.1479998 Q14.639999,-2.1479998,15.198,-1.842 Q15.7560005,-1.5359998,16.068,-0.954 Q16.380001,-0.37199998,16.380001,0.4560001 Q16.380001,1.3440001,16.044,1.9920001 Q15.708,2.64,15.101999,2.9880002 Q14.496,3.336,13.656,3.336 Q13.044,3.336,12.516,3.108 Q11.988,2.88,11.586,2.4120002 Q11.184,1.9440001,10.962,1.23 Q10.74,0.51600003,10.74,-0.444 z M13.644,2.448 Q14.4,2.448,14.868,1.962 Q15.336,1.4760001,15.336,0.4560001 Q15.336,-0.3599999,14.922,-0.84000015 Q14.507999,-1.3200002,13.68,-1.3200002 Q13.116,-1.3200002,12.696,-1.086 Q12.276,-0.85199976,12.042,-0.49199986 Q11.808,-0.13199997,11.808,0.2520001 Q11.808,0.648,11.922,1.0320001 Q12.036,1.416,12.27,1.74 Q12.504,2.0640001,12.846,2.256 Q13.188,2.448,13.644,2.448 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 202)"/> +<path d="M348.19202,176 L352.19202,176" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M13.5,-5.4719996 Q14.2560005,-5.4719996,14.832,-5.2380004 Q15.408,-5.004,15.738,-4.548 Q16.068,-4.092,16.068,-3.42 Q16.068,-2.9039998,15.846001,-2.52 Q15.624001,-2.1360002,15.252,-1.842 Q14.88,-1.5479999,14.436,-1.3200002 Q14.964,-1.0679998,15.396,-0.75 Q15.828,-0.43199992,16.086,-0.0119998455 Q16.344,0.408,16.344,0.99600005 Q16.344,1.7160001,15.996,2.2380002 Q15.648,2.76,15.018,3.048 Q14.3880005,3.336,13.536,3.336 Q12.6119995,3.336,11.97,3.0600002 Q11.328,2.7840002,10.998,2.2740002 Q10.668,1.764,10.668,1.0320001 Q10.668,0.444,10.914,0.012000084 Q11.16,-0.41999984,11.568,-0.7319999 Q11.976,-1.0440001,12.444,-1.2599998 Q12.024,-1.5,11.682,-1.8059998 Q11.34,-2.112,11.142,-2.508 Q10.944,-2.9039998,10.944,-3.4320002 Q10.944,-4.092,11.28,-4.542 Q11.616,-4.992,12.191999,-5.232 Q12.768,-5.4719996,13.5,-5.4719996 z M11.7,1.0440001 Q11.7,1.6680001,12.144,2.082 Q12.588,2.496,13.512,2.496 Q14.3880005,2.496,14.85,2.082 Q15.312,1.6680001,15.312,1.0080001 Q15.312,0.58800006,15.09,0.26999998 Q14.868,-0.04799986,14.466,-0.29999995 Q14.064,-0.55200005,13.512,-0.75600004 L13.32,-0.82800007 Q12.792,-0.5999999,12.432,-0.33599997 Q12.072,-0.07200003,11.886,0.26399994 Q11.7,0.60000014,11.7,1.0440001 z M13.488,-4.62 Q12.828,-4.62,12.402,-4.302 Q11.976,-3.9840002,11.976,-3.3839998 Q11.976,-2.94,12.186,-2.6399999 Q12.396,-2.3400002,12.7560005,-2.13 Q13.116,-1.9200001,13.548,-1.7280002 Q13.968,-1.908,14.298,-2.124 Q14.628,-2.3400002,14.826,-2.646 Q15.024,-2.9520001,15.024,-3.3839998 Q15.024,-3.9840002,14.604,-4.302 Q14.184,-4.62,13.488,-4.62 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 176)"/> +<path d="M348.19202,150 L352.19202,150" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M4.26,3.216 L3.228,3.216 L3.228,-2.7719998 Q3.228,-3.12,3.234,-3.3600001 Q3.24,-3.6,3.252,-3.81 Q3.264,-4.02,3.276,-4.248 Q3.084,-4.0559998,2.928,-3.9239998 Q2.772,-3.7919998,2.532,-3.5879998 L1.62,-2.8439999 L1.068,-3.552 L3.384,-5.3519998 L4.26,-5.3519998 L4.26,3.216 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.355999,-1.0799999 Q16.355999,-0.036000013,16.2,0.78 Q16.044,1.5960001,15.702,2.1660001 Q15.360001,2.736,14.814,3.036 Q14.268,3.336,13.5,3.336 Q12.54,3.336,11.91,2.808 Q11.28,2.2800002,10.974,1.2900001 Q10.668,0.29999995,10.668,-1.0799999 Q10.668,-2.4720001,10.95,-3.4559999 Q11.232,-4.44,11.856,-4.9620004 Q12.48,-5.4839997,13.5,-5.4839997 Q14.46,-5.4839997,15.096001,-4.9620004 Q15.732,-4.44,16.044,-3.4559999 Q16.355999,-2.4720001,16.355999,-1.0799999 z M11.724,-1.0799999 Q11.724,0.095999956,11.898,0.87600017 Q12.072,1.656,12.462,2.046 Q12.852,2.436,13.5,2.436 Q14.148,2.436,14.538,2.052 Q14.9279995,1.6680001,15.108,0.88199997 Q15.288,0.095999956,15.288,-1.0799999 Q15.288,-2.256,15.108,-3.0300002 Q14.9279995,-3.804,14.538,-4.194 Q14.148,-4.584,13.5,-4.584 Q12.852,-4.584,12.462,-4.194 Q12.072,-3.804,11.898,-3.0300002 Q11.724,-2.256,11.724,-1.0799999 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 150)"/> +<path d="M348.19202,124 L352.19202,124" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M4.26,3.216 L3.228,3.216 L3.228,-2.7719998 Q3.228,-3.12,3.234,-3.3600001 Q3.24,-3.6,3.252,-3.81 Q3.264,-4.02,3.276,-4.248 Q3.084,-4.0559998,2.928,-3.9239998 Q2.772,-3.7919998,2.532,-3.5879998 L1.62,-2.8439999 L1.068,-3.552 L3.384,-5.3519998 L4.26,-5.3519998 L4.26,3.216 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.32,3.216 L10.656,3.216 L10.656,2.3400002 L12.9,0.07200003 Q13.548,-0.576,13.992,-1.0799999 Q14.436,-1.5840001,14.664,-2.0700002 Q14.892,-2.5559998,14.892,-3.132 Q14.892,-3.8400002,14.472,-4.206 Q14.052,-4.572,13.38,-4.572 Q12.7560005,-4.572,12.282,-4.356 Q11.808,-4.14,11.316,-3.756 L10.752,-4.464 Q11.088,-4.752,11.49,-4.98 Q11.892,-5.2079997,12.366,-5.3399997 Q12.84,-5.4719996,13.38,-5.4719996 Q14.184,-5.4719996,14.76,-5.1959996 Q15.336,-4.9199996,15.653999,-4.41 Q15.972,-3.9,15.972,-3.192 Q15.972,-2.52,15.696,-1.9320002 Q15.42,-1.3439999,14.9279995,-0.7739999 Q14.436,-0.204,13.776,0.444 L11.988,2.2080002 L11.988,2.256 L16.32,2.256 L16.32,3.216 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 124)"/> +<path d="M348.19202,98 L352.19202,98" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M4.26,3.216 L3.228,3.216 L3.228,-2.7719998 Q3.228,-3.12,3.234,-3.3600001 Q3.24,-3.6,3.252,-3.81 Q3.264,-4.02,3.276,-4.248 Q3.084,-4.0559998,2.928,-3.9239998 Q2.772,-3.7919998,2.532,-3.5879998 L1.62,-2.8439999 L1.068,-3.552 L3.384,-5.3519998 L4.26,-5.3519998 L4.26,3.216 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.704,1.2720001 L15.455999,1.2720001 L15.455999,3.216 L14.436,3.216 L14.436,1.2720001 L10.332,1.2720001 L10.332,0.37199998 L14.364,-5.4 L15.455999,-5.4 L15.455999,0.32400012 L16.704,0.32400012 L16.704,1.2720001 z M14.436,-2.376 Q14.436,-2.6880002,14.441999,-2.946 Q14.448,-3.204,14.46,-3.4320002 Q14.472,-3.6599998,14.478001,-3.87 Q14.483999,-4.08,14.496,-4.272 L14.448,-4.272 Q14.351999,-4.044,14.208,-3.7800002 Q14.064,-3.5159998,13.932,-3.336 L11.364,0.32400012 L14.436,0.32400012 L14.436,-2.376 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 98)"/> +<path d="M348.19202,72 L352.19202,72" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M4.26,3.216 L3.228,3.216 L3.228,-2.7719998 Q3.228,-3.12,3.234,-3.3600001 Q3.24,-3.6,3.252,-3.81 Q3.264,-4.02,3.276,-4.248 Q3.084,-4.0559998,2.928,-3.9239998 Q2.772,-3.7919998,2.532,-3.5879998 L1.62,-2.8439999 L1.068,-3.552 L3.384,-5.3519998 L4.26,-5.3519998 L4.26,3.216 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M10.74,-0.444 Q10.74,-1.1879997,10.842,-1.908 Q10.944,-2.6279998,11.196,-3.27 Q11.448,-3.9120002,11.892,-4.41 Q12.336,-4.9079995,13.014,-5.19 Q13.691999,-5.4719996,14.664,-5.4719996 Q14.916,-5.4719996,15.222,-5.4480004 Q15.528,-5.4240003,15.719999,-5.364 L15.719999,-4.464 Q15.504,-4.536,15.234,-4.572 Q14.964,-4.608,14.688,-4.608 Q13.86,-4.608,13.308,-4.332 Q12.7560005,-4.0559998,12.438,-3.5760002 Q12.12,-3.0960002,11.976,-2.4720001 Q11.832,-1.848,11.796,-1.1399999 L11.868,-1.1399999 Q12.048,-1.428,12.323999,-1.6560001 Q12.6,-1.8839998,12.99,-2.0159998 Q13.38,-2.1479998,13.896,-2.1479998 Q14.639999,-2.1479998,15.198,-1.842 Q15.7560005,-1.5359998,16.068,-0.954 Q16.380001,-0.37199998,16.380001,0.4560001 Q16.380001,1.3440001,16.044,1.9920001 Q15.708,2.64,15.101999,2.9880002 Q14.496,3.336,13.656,3.336 Q13.044,3.336,12.516,3.108 Q11.988,2.88,11.586,2.4120002 Q11.184,1.9440001,10.962,1.23 Q10.74,0.51600003,10.74,-0.444 z M13.644,2.448 Q14.4,2.448,14.868,1.962 Q15.336,1.4760001,15.336,0.4560001 Q15.336,-0.3599999,14.922,-0.84000015 Q14.507999,-1.3200002,13.68,-1.3200002 Q13.116,-1.3200002,12.696,-1.086 Q12.276,-0.85199976,12.042,-0.49199986 Q11.808,-0.13199997,11.808,0.2520001 Q11.808,0.648,11.922,1.0320001 Q12.036,1.416,12.27,1.74 Q12.504,2.0640001,12.846,2.256 Q13.188,2.448,13.644,2.448 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 72)"/> +<path d="M348.19202,46 L352.19202,46" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M4.26,3.216 L3.228,3.216 L3.228,-2.7719998 Q3.228,-3.12,3.234,-3.3600001 Q3.24,-3.6,3.252,-3.81 Q3.264,-4.02,3.276,-4.248 Q3.084,-4.0559998,2.928,-3.9239998 Q2.772,-3.7919998,2.532,-3.5879998 L1.62,-2.8439999 L1.068,-3.552 L3.384,-5.3519998 L4.26,-5.3519998 L4.26,3.216 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M13.5,-5.4719996 Q14.2560005,-5.4719996,14.832,-5.2380004 Q15.408,-5.004,15.738,-4.548 Q16.068,-4.092,16.068,-3.42 Q16.068,-2.9039998,15.846001,-2.52 Q15.624001,-2.1360002,15.252,-1.842 Q14.88,-1.5479999,14.436,-1.3200002 Q14.964,-1.0679998,15.396,-0.75 Q15.828,-0.43199992,16.086,-0.0119998455 Q16.344,0.408,16.344,0.99600005 Q16.344,1.7160001,15.996,2.2380002 Q15.648,2.76,15.018,3.048 Q14.3880005,3.336,13.536,3.336 Q12.6119995,3.336,11.97,3.0600002 Q11.328,2.7840002,10.998,2.2740002 Q10.668,1.764,10.668,1.0320001 Q10.668,0.444,10.914,0.012000084 Q11.16,-0.41999984,11.568,-0.7319999 Q11.976,-1.0440001,12.444,-1.2599998 Q12.024,-1.5,11.682,-1.8059998 Q11.34,-2.112,11.142,-2.508 Q10.944,-2.9039998,10.944,-3.4320002 Q10.944,-4.092,11.28,-4.542 Q11.616,-4.992,12.191999,-5.232 Q12.768,-5.4719996,13.5,-5.4719996 z M11.7,1.0440001 Q11.7,1.6680001,12.144,2.082 Q12.588,2.496,13.512,2.496 Q14.3880005,2.496,14.85,2.082 Q15.312,1.6680001,15.312,1.0080001 Q15.312,0.58800006,15.09,0.26999998 Q14.868,-0.04799986,14.466,-0.29999995 Q14.064,-0.55200005,13.512,-0.75600004 L13.32,-0.82800007 Q12.792,-0.5999999,12.432,-0.33599997 Q12.072,-0.07200003,11.886,0.26399994 Q11.7,0.60000014,11.7,1.0440001 z M13.488,-4.62 Q12.828,-4.62,12.402,-4.302 Q11.976,-3.9840002,11.976,-3.3839998 Q11.976,-2.94,12.186,-2.6399999 Q12.396,-2.3400002,12.7560005,-2.13 Q13.116,-1.9200001,13.548,-1.7280002 Q13.968,-1.908,14.298,-2.124 Q14.628,-2.3400002,14.826,-2.646 Q15.024,-2.9520001,15.024,-3.3839998 Q15.024,-3.9840002,14.604,-4.302 Q14.184,-4.62,13.488,-4.62 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 46)"/> +<path d="M348.19202,20 L352.19202,20" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.2400002,3.216 L0.576,3.216 L0.576,2.3400002 L2.82,0.07200003 Q3.468,-0.576,3.912,-1.0799999 Q4.356,-1.5840001,4.584,-2.0700002 Q4.8120003,-2.5559998,4.8120003,-3.132 Q4.8120003,-3.8400002,4.392,-4.206 Q3.9720001,-4.572,3.3,-4.572 Q2.676,-4.572,2.202,-4.356 Q1.728,-4.14,1.2360001,-3.756 L0.672,-4.464 Q1.008,-4.752,1.41,-4.98 Q1.812,-5.2079997,2.286,-5.3399997 Q2.76,-5.4719996,3.3,-5.4719996 Q4.104,-5.4719996,4.68,-5.1959996 Q5.256,-4.9199996,5.574,-4.41 Q5.892,-3.9,5.892,-3.192 Q5.892,-2.52,5.616,-1.9320002 Q5.34,-1.3439999,4.848,-0.7739999 Q4.356,-0.204,3.696,0.444 L1.908,2.2080002 L1.908,2.256 L6.2400002,2.256 L6.2400002,3.216 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.355999,-1.0799999 Q16.355999,-0.036000013,16.2,0.78 Q16.044,1.5960001,15.702,2.1660001 Q15.360001,2.736,14.814,3.036 Q14.268,3.336,13.5,3.336 Q12.54,3.336,11.91,2.808 Q11.28,2.2800002,10.974,1.2900001 Q10.668,0.29999995,10.668,-1.0799999 Q10.668,-2.4720001,10.95,-3.4559999 Q11.232,-4.44,11.856,-4.9620004 Q12.48,-5.4839997,13.5,-5.4839997 Q14.46,-5.4839997,15.096001,-4.9620004 Q15.732,-4.44,16.044,-3.4559999 Q16.355999,-2.4720001,16.355999,-1.0799999 z M11.724,-1.0799999 Q11.724,0.095999956,11.898,0.87600017 Q12.072,1.656,12.462,2.046 Q12.852,2.436,13.5,2.436 Q14.148,2.436,14.538,2.052 Q14.9279995,1.6680001,15.108,0.88199997 Q15.288,0.095999956,15.288,-1.0799999 Q15.288,-2.256,15.108,-3.0300002 Q14.9279995,-3.804,14.538,-4.194 Q14.148,-4.584,13.5,-4.584 Q12.852,-4.584,12.462,-4.194 Q12.072,-3.804,11.898,-3.0300002 Q11.724,-2.256,11.724,-1.0799999 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 20)"/> +</svg> \ No newline at end of file diff --git a/tests/refs/colorbar/left.png b/tests/refs/colorbar/left.png new file mode 100644 index 0000000..699a2e0 Binary files /dev/null and b/tests/refs/colorbar/left.png differ diff --git a/tests/refs/colorbar/left.svg b/tests/refs/colorbar/left.svg new file mode 100644 index 0000000..d011f39 --- /dev/null +++ b/tests/refs/colorbar/left.svg @@ -0,0 +1,304 @@ +<svg height="300" viewBox="0 0 400 300" width="400" xmlns="http://www.w3.org/2000/svg"> +<rect fill="#ffffff" height="100%" width="100%"/> +<clipPath id="plotive-clip1"> +<rect height="260" width="296.19202" x="83.808" y="20"/> +</clipPath> +<g clip-path="url(#plotive-clip1)"> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#54c16a" fill-opacity="0.7019608" stroke="#54c16a" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 254.69855 112.57182)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#3ba97e" fill-opacity="0.7019608" stroke="#3ba97e" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 243.77826 65.19423)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#8fd159" fill-opacity="0.7019608" stroke="#8fd159" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 266.2723 182.75821)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#440154" fill-opacity="0.7019608" stroke="#440154" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 232.7216 137.4275)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#35a282" fill-opacity="0.7019608" stroke="#35a282" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 103.808 128.45457)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#31778c" fill-opacity="0.7019608" stroke="#31778c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 210.59283 40)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#70cb5f" fill-opacity="0.7019608" stroke="#70cb5f" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 224.14064 221.95265)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#38638b" fill-opacity="0.7019608" stroke="#38638b" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 126.21247 179.70654)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#36698c" fill-opacity="0.7019608" stroke="#36698c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 168.01395 119.84299)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#fde724" fill-opacity="0.7019608" stroke="#fde724" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 278.9784 107.928925)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#33a083" fill-opacity="0.7019608" stroke="#33a083" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 233.80809 123.19487)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#90d159" fill-opacity="0.7019608" stroke="#90d159" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 333.05127 73.18942)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#461c61" fill-opacity="0.7019608" stroke="#461c61" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 360 186.15048)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#61c961" fill-opacity="0.7019608" stroke="#61c961" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 109.394714 260)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#279689" fill-opacity="0.7019608" stroke="#279689" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 206.82393 56.149902)"/> +</g> +<rect fill="none" height="260" stroke="#000000" stroke-width="1" width="296.19202" x="83.808" y="20"/> +<path d="M51.808,280 L51.808,279.5 L71.808,279.5 L71.808,280" fill="#440154" stroke="none"/> +<path d="M51.808,279.5 L51.808,278.5 L71.808,278.5 L71.808,279.5" fill="#440355" stroke="none"/> +<path d="M51.808,278.5 L51.808,277.5 L71.808,277.5 L71.808,278.5" fill="#440556" stroke="none"/> +<path d="M51.808,277.5 L51.808,276.5 L71.808,276.5 L71.808,277.5" fill="#440756" stroke="none"/> +<path d="M51.808,276.5 L51.808,275.5 L71.808,275.5 L71.808,276.5" fill="#450957" stroke="none"/> +<path d="M51.808,275.5 L51.808,274.5 L71.808,274.5 L71.808,275.5" fill="#450b58" stroke="none"/> +<path d="M51.808,274.5 L51.808,273.5 L71.808,273.5 L71.808,274.5" fill="#450d59" stroke="none"/> +<path d="M51.808,273.5 L51.808,272.5 L71.808,272.5 L71.808,273.5" fill="#450f5a" stroke="none"/> +<path d="M51.808,272.5 L51.808,271.5 L71.808,271.5 L71.808,272.5" fill="#45105a" stroke="none"/> +<path d="M51.808,271.5 L51.808,270.5 L71.808,270.5 L71.808,271.5" fill="#45125b" stroke="none"/> +<path d="M51.808,270.5 L51.808,269.5 L71.808,269.5 L71.808,270.5" fill="#45145c" stroke="none"/> +<path d="M51.808,269.5 L51.808,268.5 L71.808,268.5 L71.808,269.5" fill="#45155d" stroke="none"/> +<path d="M51.808,268.5 L51.808,267.5 L71.808,267.5 L71.808,268.5" fill="#45165e" stroke="none"/> +<path d="M51.808,267.5 L51.808,266.5 L71.808,266.5 L71.808,267.5" fill="#46185e" stroke="none"/> +<path d="M51.808,266.5 L51.808,265.5 L71.808,265.5 L71.808,266.5" fill="#46195f" stroke="none"/> +<path d="M51.808,265.5 L51.808,264.5 L71.808,264.5 L71.808,265.5" fill="#461b60" stroke="none"/> +<path d="M51.808,264.5 L51.808,263.5 L71.808,263.5 L71.808,264.5" fill="#461c61" stroke="none"/> +<path d="M51.808,263.5 L51.808,262.5 L71.808,262.5 L71.808,263.5" fill="#461d62" stroke="none"/> +<path d="M51.808,262.5 L51.808,261.5 L71.808,261.5 L71.808,262.5" fill="#461e63" stroke="none"/> +<path d="M51.808,261.5 L51.808,260.5 L71.808,260.5 L71.808,261.5" fill="#462063" stroke="none"/> +<path d="M51.808,260.5 L51.808,259.5 L71.808,259.5 L71.808,260.5" fill="#462164" stroke="none"/> +<path d="M51.808,259.5 L51.808,258.5 L71.808,258.5 L71.808,259.5" fill="#462265" stroke="none"/> +<path d="M51.808,258.5 L51.808,257.5 L71.808,257.5 L71.808,258.5" fill="#462366" stroke="none"/> +<path d="M51.808,257.5 L51.808,256.5 L71.808,256.5 L71.808,257.5" fill="#462467" stroke="none"/> +<path d="M51.808,256.5 L51.808,255.5 L71.808,255.5 L71.808,256.5" fill="#462667" stroke="none"/> +<path d="M51.808,255.5 L51.808,254.5 L71.808,254.5 L71.808,255.5" fill="#462768" stroke="none"/> +<path d="M51.808,254.5 L51.808,253.5 L71.808,253.5 L71.808,254.5" fill="#462869" stroke="none"/> +<path d="M51.808,253.5 L51.808,252.5 L71.808,252.5 L71.808,253.5" fill="#46296a" stroke="none"/> +<path d="M51.808,252.5 L51.808,251.5 L71.808,251.5 L71.808,252.5" fill="#462a6b" stroke="none"/> +<path d="M51.808,251.5 L51.808,250.5 L71.808,250.5 L71.808,251.5" fill="#462b6c" stroke="none"/> +<path d="M51.808,250.5 L51.808,249.5 L71.808,249.5 L71.808,250.5" fill="#452c6c" stroke="none"/> +<path d="M51.808,249.5 L51.808,248.5 L71.808,248.5 L71.808,249.5" fill="#452e6d" stroke="none"/> +<path d="M51.808,248.5 L51.808,247.5 L71.808,247.5 L71.808,248.5" fill="#452f6e" stroke="none"/> +<path d="M51.808,247.5 L51.808,246.5 L71.808,246.5 L71.808,247.5" fill="#45306f" stroke="none"/> +<path d="M51.808,246.5 L51.808,245.5 L71.808,245.5 L71.808,246.5" fill="#453170" stroke="none"/> +<path d="M51.808,245.5 L51.808,244.5 L71.808,244.5 L71.808,245.5" fill="#453271" stroke="none"/> +<path d="M51.808,244.5 L51.808,243.5 L71.808,243.5 L71.808,244.5" fill="#453371" stroke="none"/> +<path d="M51.808,243.5 L51.808,242.5 L71.808,242.5 L71.808,243.5" fill="#453472" stroke="none"/> +<path d="M51.808,242.5 L51.808,241.5 L71.808,241.5 L71.808,242.5" fill="#453573" stroke="none"/> +<path d="M51.808,241.5 L51.808,240.5 L71.808,240.5 L71.808,241.5" fill="#443674" stroke="none"/> +<path d="M51.808,240.5 L51.808,239.5 L71.808,239.5 L71.808,240.5" fill="#443775" stroke="none"/> +<path d="M51.808,239.5 L51.808,238.5 L71.808,238.5 L71.808,239.5" fill="#443876" stroke="none"/> +<path d="M51.808,238.5 L51.808,237.5 L71.808,237.5 L71.808,238.5" fill="#443976" stroke="none"/> +<path d="M51.808,237.5 L51.808,236.5 L71.808,236.5 L71.808,237.5" fill="#443a77" stroke="none"/> +<path d="M51.808,236.5 L51.808,235.5 L71.808,235.5 L71.808,236.5" fill="#433b78" stroke="none"/> +<path d="M51.808,235.5 L51.808,234.5 L71.808,234.5 L71.808,235.5" fill="#433c79" stroke="none"/> +<path d="M51.808,234.5 L51.808,233.5 L71.808,233.5 L71.808,234.5" fill="#433e7a" stroke="none"/> +<path d="M51.808,233.5 L51.808,232.5 L71.808,232.5 L71.808,233.5" fill="#433f7b" stroke="none"/> +<path d="M51.808,232.5 L51.808,231.5 L71.808,231.5 L71.808,232.5" fill="#42407c" stroke="none"/> +<path d="M51.808,231.5 L51.808,230.5 L71.808,230.5 L71.808,231.5" fill="#42417c" stroke="none"/> +<path d="M51.808,230.5 L51.808,229.5 L71.808,229.5 L71.808,230.5" fill="#42427d" stroke="none"/> +<path d="M51.808,229.5 L51.808,228.5 L71.808,228.5 L71.808,229.5" fill="#41437e" stroke="none"/> +<path d="M51.808,228.5 L51.808,227.5 L71.808,227.5 L71.808,228.5" fill="#41447f" stroke="none"/> +<path d="M51.808,227.5 L51.808,226.5 L71.808,226.5 L71.808,227.5" fill="#414580" stroke="none"/> +<path d="M51.808,226.5 L51.808,225.5 L71.808,225.5 L71.808,226.5" fill="#404681" stroke="none"/> +<path d="M51.808,225.5 L51.808,224.5 L71.808,224.5 L71.808,225.5" fill="#404781" stroke="none"/> +<path d="M51.808,224.5 L51.808,223.5 L71.808,223.5 L71.808,224.5" fill="#3f4882" stroke="none"/> +<path d="M51.808,223.5 L51.808,222.5 L71.808,222.5 L71.808,223.5" fill="#3f4983" stroke="none"/> +<path d="M51.808,222.5 L51.808,221.5 L71.808,221.5 L71.808,222.5" fill="#3f4a84" stroke="none"/> +<path d="M51.808,221.5 L51.808,220.5 L71.808,220.5 L71.808,221.5" fill="#3e4b85" stroke="none"/> +<path d="M51.808,220.5 L51.808,219.5 L71.808,219.5 L71.808,220.5" fill="#3e4c86" stroke="none"/> +<path d="M51.808,219.5 L51.808,218.5 L71.808,218.5 L71.808,219.5" fill="#3d4d87" stroke="none"/> +<path d="M51.808,218.5 L51.808,217.5 L71.808,217.5 L71.808,218.5" fill="#3d4e87" stroke="none"/> +<path d="M51.808,217.5 L51.808,216.5 L71.808,216.5 L71.808,217.5" fill="#3c4f88" stroke="none"/> +<path d="M51.808,216.5 L51.808,215.5 L71.808,215.5 L71.808,216.5" fill="#3c5089" stroke="none"/> +<path d="M51.808,215.5 L51.808,214.5 L71.808,214.5 L71.808,215.5" fill="#3b518a" stroke="none"/> +<path d="M51.808,214.5 L51.808,213.5 L71.808,213.5 L71.808,214.5" fill="#3b528a" stroke="none"/> +<path d="M51.808,213.5 L51.808,212.5 L71.808,212.5 L71.808,213.5" fill="#3b538a" stroke="none"/> +<path d="M51.808,212.5 L51.808,211.5 L71.808,211.5 L71.808,212.5" fill="#3b548a" stroke="none"/> +<path d="M51.808,211.5 L51.808,210.5 L71.808,210.5 L71.808,211.5" fill="#3a558a" stroke="none"/> +<path d="M51.808,210.5 L51.808,209.5 L71.808,209.5 L71.808,210.5" fill="#3a568a" stroke="none"/> +<path d="M51.808,209.5 L51.808,208.5 L71.808,208.5 L71.808,209.5" fill="#3a578b" stroke="none"/> +<path d="M51.808,208.5 L51.808,207.5 L71.808,207.5 L71.808,208.5" fill="#3a588b" stroke="none"/> +<path d="M51.808,207.5 L51.808,206.5 L71.808,206.5 L71.808,207.5" fill="#3a598b" stroke="none"/> +<path d="M51.808,206.5 L51.808,205.5 L71.808,205.5 L71.808,206.5" fill="#3a5a8b" stroke="none"/> +<path d="M51.808,205.5 L51.808,204.5 L71.808,204.5 L71.808,205.5" fill="#395b8b" stroke="none"/> +<path d="M51.808,204.5 L51.808,203.5 L71.808,203.5 L71.808,204.5" fill="#395c8b" stroke="none"/> +<path d="M51.808,203.5 L51.808,202.5 L71.808,202.5 L71.808,203.5" fill="#395d8b" stroke="none"/> +<path d="M51.808,202.5 L51.808,201.5 L71.808,201.5 L71.808,202.5" fill="#395e8b" stroke="none"/> +<path d="M51.808,201.5 L51.808,200.5 L71.808,200.5 L71.808,201.5" fill="#395f8b" stroke="none"/> +<path d="M51.808,200.5 L51.808,199.5 L71.808,199.5 L71.808,200.5" fill="#38608b" stroke="none"/> +<path d="M51.808,199.5 L51.808,198.5 L71.808,198.5 L71.808,199.5" fill="#38618b" stroke="none"/> +<path d="M51.808,198.5 L51.808,197.5 L71.808,197.5 L71.808,198.5" fill="#38628b" stroke="none"/> +<path d="M51.808,197.5 L51.808,196.5 L71.808,196.5 L71.808,197.5" fill="#38638b" stroke="none"/> +<path d="M51.808,196.5 L51.808,195.5 L71.808,195.5 L71.808,196.5" fill="#37648b" stroke="none"/> +<path d="M51.808,195.5 L51.808,194.5 L71.808,194.5 L71.808,195.5" fill="#37658b" stroke="none"/> +<path d="M51.808,194.5 L51.808,193.5 L71.808,193.5 L71.808,194.5" fill="#37658c" stroke="none"/> +<path d="M51.808,193.5 L51.808,192.5 L71.808,192.5 L71.808,193.5" fill="#37668c" stroke="none"/> +<path d="M51.808,192.5 L51.808,191.5 L71.808,191.5 L71.808,192.5" fill="#36678c" stroke="none"/> +<path d="M51.808,191.5 L51.808,190.5 L71.808,190.5 L71.808,191.5" fill="#36688c" stroke="none"/> +<path d="M51.808,190.5 L51.808,189.5 L71.808,189.5 L71.808,190.5" fill="#36698c" stroke="none"/> +<path d="M51.808,189.5 L51.808,188.5 L71.808,188.5 L71.808,189.5" fill="#366a8c" stroke="none"/> +<path d="M51.808,188.5 L51.808,187.5 L71.808,187.5 L71.808,188.5" fill="#356b8c" stroke="none"/> +<path d="M51.808,187.5 L51.808,186.5 L71.808,186.5 L71.808,187.5" fill="#356c8c" stroke="none"/> +<path d="M51.808,186.5 L51.808,185.5 L71.808,185.5 L71.808,186.5" fill="#356d8c" stroke="none"/> +<path d="M51.808,185.5 L51.808,184.5 L71.808,184.5 L71.808,185.5" fill="#346e8c" stroke="none"/> +<path d="M51.808,184.5 L51.808,183.5 L71.808,183.5 L71.808,184.5" fill="#346f8c" stroke="none"/> +<path d="M51.808,183.5 L51.808,182.5 L71.808,182.5 L71.808,183.5" fill="#34708c" stroke="none"/> +<path d="M51.808,182.5 L51.808,181.5 L71.808,181.5 L71.808,182.5" fill="#33718c" stroke="none"/> +<path d="M51.808,181.5 L51.808,180.5 L71.808,180.5 L71.808,181.5" fill="#33728c" stroke="none"/> +<path d="M51.808,180.5 L51.808,179.5 L71.808,179.5 L71.808,180.5" fill="#33738c" stroke="none"/> +<path d="M51.808,179.5 L51.808,178.5 L71.808,178.5 L71.808,179.5" fill="#32748c" stroke="none"/> +<path d="M51.808,178.5 L51.808,177.5 L71.808,177.5 L71.808,178.5" fill="#32758c" stroke="none"/> +<path d="M51.808,177.5 L51.808,176.5 L71.808,176.5 L71.808,177.5" fill="#31768c" stroke="none"/> +<path d="M51.808,176.5 L51.808,175.5 L71.808,175.5 L71.808,176.5" fill="#31778c" stroke="none"/> +<path d="M51.808,175.5 L51.808,174.5 L71.808,174.5 L71.808,175.5" fill="#30788c" stroke="none"/> +<path d="M51.808,174.5 L51.808,173.5 L71.808,173.5 L71.808,174.5" fill="#30788c" stroke="none"/> +<path d="M51.808,173.5 L51.808,172.5 L71.808,172.5 L71.808,173.5" fill="#30798c" stroke="none"/> +<path d="M51.808,172.5 L51.808,171.5 L71.808,171.5 L71.808,172.5" fill="#2f7a8c" stroke="none"/> +<path d="M51.808,171.5 L51.808,170.5 L71.808,170.5 L71.808,171.5" fill="#2f7b8c" stroke="none"/> +<path d="M51.808,170.5 L51.808,169.5 L71.808,169.5 L71.808,170.5" fill="#2e7c8c" stroke="none"/> +<path d="M51.808,169.5 L51.808,168.5 L71.808,168.5 L71.808,169.5" fill="#2e7d8c" stroke="none"/> +<path d="M51.808,168.5 L51.808,167.5 L71.808,167.5 L71.808,168.5" fill="#2d7e8c" stroke="none"/> +<path d="M51.808,167.5 L51.808,166.5 L71.808,166.5 L71.808,167.5" fill="#2d7f8c" stroke="none"/> +<path d="M51.808,166.5 L51.808,165.5 L71.808,165.5 L71.808,166.5" fill="#2c808c" stroke="none"/> +<path d="M51.808,165.5 L51.808,164.5 L71.808,164.5 L71.808,165.5" fill="#2b818c" stroke="none"/> +<path d="M51.808,164.5 L51.808,163.5 L71.808,163.5 L71.808,164.5" fill="#2b828c" stroke="none"/> +<path d="M51.808,163.5 L51.808,162.5 L71.808,162.5 L71.808,163.5" fill="#2a838c" stroke="none"/> +<path d="M51.808,162.5 L51.808,161.5 L71.808,161.5 L71.808,162.5" fill="#2a848c" stroke="none"/> +<path d="M51.808,161.5 L51.808,160.5 L71.808,160.5 L71.808,161.5" fill="#29858c" stroke="none"/> +<path d="M51.808,160.5 L51.808,159.5 L71.808,159.5 L71.808,160.5" fill="#28868c" stroke="none"/> +<path d="M51.808,159.5 L51.808,158.5 L71.808,158.5 L71.808,159.5" fill="#28878c" stroke="none"/> +<path d="M51.808,158.5 L51.808,157.5 L71.808,157.5 L71.808,158.5" fill="#27888c" stroke="none"/> +<path d="M51.808,157.5 L51.808,156.5 L71.808,156.5 L71.808,157.5" fill="#26888c" stroke="none"/> +<path d="M51.808,156.5 L51.808,155.5 L71.808,155.5 L71.808,156.5" fill="#25898c" stroke="none"/> +<path d="M51.808,155.5 L51.808,154.5 L71.808,154.5 L71.808,155.5" fill="#248a8c" stroke="none"/> +<path d="M51.808,154.5 L51.808,153.5 L71.808,153.5 L71.808,154.5" fill="#248b8c" stroke="none"/> +<path d="M51.808,153.5 L51.808,152.5 L71.808,152.5 L71.808,153.5" fill="#238c8c" stroke="none"/> +<path d="M51.808,152.5 L51.808,151.5 L71.808,151.5 L71.808,152.5" fill="#228d8c" stroke="none"/> +<path d="M51.808,151.5 L51.808,150.5 L71.808,150.5 L71.808,151.5" fill="#218e8c" stroke="none"/> +<path d="M51.808,150.5 L51.808,149.5 L71.808,149.5 L71.808,150.5" fill="#208f8c" stroke="none"/> +<path d="M51.808,149.5 L51.808,148.5 L71.808,148.5 L71.808,149.5" fill="#21908c" stroke="none"/> +<path d="M51.808,148.5 L51.808,147.5 L71.808,147.5 L71.808,148.5" fill="#22918b" stroke="none"/> +<path d="M51.808,147.5 L51.808,146.5 L71.808,146.5 L71.808,147.5" fill="#23928b" stroke="none"/> +<path d="M51.808,146.5 L51.808,145.5 L71.808,145.5 L71.808,146.5" fill="#24938a" stroke="none"/> +<path d="M51.808,145.5 L51.808,144.5 L71.808,144.5 L71.808,145.5" fill="#25938a" stroke="none"/> +<path d="M51.808,144.5 L51.808,143.5 L71.808,143.5 L71.808,144.5" fill="#269489" stroke="none"/> +<path d="M51.808,143.5 L51.808,142.5 L71.808,142.5 L71.808,143.5" fill="#279589" stroke="none"/> +<path d="M51.808,142.5 L51.808,141.5 L71.808,141.5 L71.808,142.5" fill="#289689" stroke="none"/> +<path d="M51.808,141.5 L51.808,140.5 L71.808,140.5 L71.808,141.5" fill="#299788" stroke="none"/> +<path d="M51.808,140.5 L51.808,139.5 L71.808,139.5 L71.808,140.5" fill="#2a9888" stroke="none"/> +<path d="M51.808,139.5 L51.808,138.5 L71.808,138.5 L71.808,139.5" fill="#2b9987" stroke="none"/> +<path d="M51.808,138.5 L51.808,137.5 L71.808,137.5 L71.808,138.5" fill="#2c9a87" stroke="none"/> +<path d="M51.808,137.5 L51.808,136.5 L71.808,136.5 L71.808,137.5" fill="#2d9b86" stroke="none"/> +<path d="M51.808,136.5 L51.808,135.5 L71.808,135.5 L71.808,136.5" fill="#2e9b86" stroke="none"/> +<path d="M51.808,135.5 L51.808,134.5 L71.808,134.5 L71.808,135.5" fill="#2e9c85" stroke="none"/> +<path d="M51.808,134.5 L51.808,133.5 L71.808,133.5 L71.808,134.5" fill="#2f9d85" stroke="none"/> +<path d="M51.808,133.5 L51.808,132.5 L71.808,132.5 L71.808,133.5" fill="#309e84" stroke="none"/> +<path d="M51.808,132.5 L51.808,131.5 L71.808,131.5 L71.808,132.5" fill="#319f84" stroke="none"/> +<path d="M51.808,131.5 L51.808,130.5 L71.808,130.5 L71.808,131.5" fill="#32a083" stroke="none"/> +<path d="M51.808,130.5 L51.808,129.5 L71.808,129.5 L71.808,130.5" fill="#33a183" stroke="none"/> +<path d="M51.808,129.5 L51.808,128.5 L71.808,128.5 L71.808,129.5" fill="#34a282" stroke="none"/> +<path d="M51.808,128.5 L51.808,127.5 L71.808,127.5 L71.808,128.5" fill="#35a282" stroke="none"/> +<path d="M51.808,127.5 L51.808,126.5 L71.808,126.5 L71.808,127.5" fill="#36a381" stroke="none"/> +<path d="M51.808,126.5 L51.808,125.5 L71.808,125.5 L71.808,126.5" fill="#37a481" stroke="none"/> +<path d="M51.808,125.5 L51.808,124.5 L71.808,124.5 L71.808,125.5" fill="#38a580" stroke="none"/> +<path d="M51.808,124.5 L51.808,123.5 L71.808,123.5 L71.808,124.5" fill="#39a680" stroke="none"/> +<path d="M51.808,123.5 L51.808,122.5 L71.808,122.5 L71.808,123.5" fill="#39a77f" stroke="none"/> +<path d="M51.808,122.5 L51.808,121.5 L71.808,121.5 L71.808,122.5" fill="#3aa87e" stroke="none"/> +<path d="M51.808,121.5 L51.808,120.5 L71.808,120.5 L71.808,121.5" fill="#3ba97e" stroke="none"/> +<path d="M51.808,120.5 L51.808,119.5 L71.808,119.5 L71.808,120.5" fill="#3caa7d" stroke="none"/> +<path d="M51.808,119.5 L51.808,118.5 L71.808,118.5 L71.808,119.5" fill="#3daa7d" stroke="none"/> +<path d="M51.808,118.5 L51.808,117.5 L71.808,117.5 L71.808,118.5" fill="#3eab7c" stroke="none"/> +<path d="M51.808,117.5 L51.808,116.5 L71.808,116.5 L71.808,117.5" fill="#3fac7b" stroke="none"/> +<path d="M51.808,116.5 L51.808,115.5 L71.808,115.5 L71.808,116.5" fill="#40ad7b" stroke="none"/> +<path d="M51.808,115.5 L51.808,114.5 L71.808,114.5 L71.808,115.5" fill="#41ae7a" stroke="none"/> +<path d="M51.808,114.5 L51.808,113.5 L71.808,113.5 L71.808,114.5" fill="#41af79" stroke="none"/> +<path d="M51.808,113.5 L51.808,112.5 L71.808,112.5 L71.808,113.5" fill="#42b079" stroke="none"/> +<path d="M51.808,112.5 L51.808,111.5 L71.808,111.5 L71.808,112.5" fill="#43b178" stroke="none"/> +<path d="M51.808,111.5 L51.808,110.5 L71.808,110.5 L71.808,111.5" fill="#44b178" stroke="none"/> +<path d="M51.808,110.5 L51.808,109.5 L71.808,109.5 L71.808,110.5" fill="#45b277" stroke="none"/> +<path d="M51.808,109.5 L51.808,108.5 L71.808,108.5 L71.808,109.5" fill="#46b376" stroke="none"/> +<path d="M51.808,108.5 L51.808,107.5 L71.808,107.5 L71.808,108.5" fill="#47b475" stroke="none"/> +<path d="M51.808,107.5 L51.808,106.5 L71.808,106.5 L71.808,107.5" fill="#48b575" stroke="none"/> +<path d="M51.808,106.5 L51.808,105.5 L71.808,105.5 L71.808,106.5" fill="#49b674" stroke="none"/> +<path d="M51.808,105.5 L51.808,104.5 L71.808,104.5 L71.808,105.5" fill="#49b773" stroke="none"/> +<path d="M51.808,104.5 L51.808,103.5 L71.808,103.5 L71.808,104.5" fill="#4ab773" stroke="none"/> +<path d="M51.808,103.5 L51.808,102.5 L71.808,102.5 L71.808,103.5" fill="#4bb872" stroke="none"/> +<path d="M51.808,102.5 L51.808,101.5 L71.808,101.5 L71.808,102.5" fill="#4cb971" stroke="none"/> +<path d="M51.808,101.5 L51.808,100.5 L71.808,100.5 L71.808,101.5" fill="#4dba70" stroke="none"/> +<path d="M51.808,100.5 L51.808,99.5 L71.808,99.5 L71.808,100.5" fill="#4ebb6f" stroke="none"/> +<path d="M51.808,99.5 L51.808,98.5 L71.808,98.5 L71.808,99.5" fill="#4fbc6f" stroke="none"/> +<path d="M51.808,98.5 L51.808,97.5 L71.808,97.5 L71.808,98.5" fill="#50bd6e" stroke="none"/> +<path d="M51.808,97.5 L51.808,96.5 L71.808,96.5 L71.808,97.5" fill="#50be6d" stroke="none"/> +<path d="M51.808,96.5 L51.808,95.5 L71.808,95.5 L71.808,96.5" fill="#51be6c" stroke="none"/> +<path d="M51.808,95.5 L51.808,94.5 L71.808,94.5 L71.808,95.5" fill="#52bf6b" stroke="none"/> +<path d="M51.808,94.5 L51.808,93.5 L71.808,93.5 L71.808,94.5" fill="#53c06b" stroke="none"/> +<path d="M51.808,93.5 L51.808,92.5 L71.808,92.5 L71.808,93.5" fill="#54c16a" stroke="none"/> +<path d="M51.808,92.5 L51.808,91.5 L71.808,91.5 L71.808,92.5" fill="#55c269" stroke="none"/> +<path d="M51.808,91.5 L51.808,90.5 L71.808,90.5 L71.808,91.5" fill="#56c368" stroke="none"/> +<path d="M51.808,90.5 L51.808,89.5 L71.808,89.5 L71.808,90.5" fill="#57c467" stroke="none"/> +<path d="M51.808,89.5 L51.808,88.5 L71.808,88.5 L71.808,89.5" fill="#57c566" stroke="none"/> +<path d="M51.808,88.5 L51.808,87.5 L71.808,87.5 L71.808,88.5" fill="#58c565" stroke="none"/> +<path d="M51.808,87.5 L51.808,86.5 L71.808,86.5 L71.808,87.5" fill="#59c664" stroke="none"/> +<path d="M51.808,86.5 L51.808,85.5 L71.808,85.5 L71.808,86.5" fill="#5ac763" stroke="none"/> +<path d="M51.808,85.5 L51.808,84.5 L71.808,84.5 L71.808,85.5" fill="#5bc862" stroke="none"/> +<path d="M51.808,84.5 L51.808,83.5 L71.808,83.5 L71.808,84.5" fill="#5fc962" stroke="none"/> +<path d="M51.808,83.5 L51.808,82.5 L71.808,82.5 L71.808,83.5" fill="#62c961" stroke="none"/> +<path d="M51.808,82.5 L51.808,81.5 L71.808,81.5 L71.808,82.5" fill="#65ca61" stroke="none"/> +<path d="M51.808,81.5 L51.808,80.5 L71.808,80.5 L71.808,81.5" fill="#69ca60" stroke="none"/> +<path d="M51.808,80.5 L51.808,79.5 L71.808,79.5 L71.808,80.5" fill="#6ccb60" stroke="none"/> +<path d="M51.808,79.5 L51.808,78.5 L71.808,78.5 L71.808,79.5" fill="#6fcb5f" stroke="none"/> +<path d="M51.808,78.5 L51.808,77.5 L71.808,77.5 L71.808,78.5" fill="#72cc5f" stroke="none"/> +<path d="M51.808,77.5 L51.808,76.5 L71.808,76.5 L71.808,77.5" fill="#75cc5e" stroke="none"/> +<path d="M51.808,76.5 L51.808,75.5 L71.808,75.5 L71.808,76.5" fill="#78cd5e" stroke="none"/> +<path d="M51.808,75.5 L51.808,74.5 L71.808,74.5 L71.808,75.5" fill="#7bcd5d" stroke="none"/> +<path d="M51.808,74.5 L51.808,73.5 L71.808,73.5 L71.808,74.5" fill="#7ece5d" stroke="none"/> +<path d="M51.808,73.5 L51.808,72.5 L71.808,72.5 L71.808,73.5" fill="#80ce5c" stroke="none"/> +<path d="M51.808,72.5 L51.808,71.5 L71.808,71.5 L71.808,72.5" fill="#83cf5c" stroke="none"/> +<path d="M51.808,71.5 L51.808,70.5 L71.808,70.5 L71.808,71.5" fill="#86cf5b" stroke="none"/> +<path d="M51.808,70.5 L51.808,69.5 L71.808,69.5 L71.808,70.5" fill="#89d05b" stroke="none"/> +<path d="M51.808,69.5 L51.808,68.5 L71.808,68.5 L71.808,69.5" fill="#8bd05a" stroke="none"/> +<path d="M51.808,68.5 L51.808,67.5 L71.808,67.5 L71.808,68.5" fill="#8ed159" stroke="none"/> +<path d="M51.808,67.5 L51.808,66.5 L71.808,66.5 L71.808,67.5" fill="#91d159" stroke="none"/> +<path d="M51.808,66.5 L51.808,65.5 L71.808,65.5 L71.808,66.5" fill="#93d258" stroke="none"/> +<path d="M51.808,65.5 L51.808,64.5 L71.808,64.5 L71.808,65.5" fill="#96d258" stroke="none"/> +<path d="M51.808,64.5 L51.808,63.5 L71.808,63.5 L71.808,64.5" fill="#98d357" stroke="none"/> +<path d="M51.808,63.5 L51.808,62.5 L71.808,62.5 L71.808,63.5" fill="#9bd356" stroke="none"/> +<path d="M51.808,62.5 L51.808,61.5 L71.808,61.5 L71.808,62.5" fill="#9dd456" stroke="none"/> +<path d="M51.808,61.5 L51.808,60.5 L71.808,60.5 L71.808,61.5" fill="#a0d455" stroke="none"/> +<path d="M51.808,60.5 L51.808,59.5 L71.808,59.5 L71.808,60.5" fill="#a2d554" stroke="none"/> +<path d="M51.808,59.5 L51.808,58.5 L71.808,58.5 L71.808,59.5" fill="#a5d554" stroke="none"/> +<path d="M51.808,58.5 L51.808,57.5 L71.808,57.5 L71.808,58.5" fill="#a7d653" stroke="none"/> +<path d="M51.808,57.5 L51.808,56.5 L71.808,56.5 L71.808,57.5" fill="#aad652" stroke="none"/> +<path d="M51.808,56.5 L51.808,55.5 L71.808,55.5 L71.808,56.5" fill="#acd752" stroke="none"/> +<path d="M51.808,55.5 L51.808,54.5 L71.808,54.5 L71.808,55.5" fill="#afd751" stroke="none"/> +<path d="M51.808,54.5 L51.808,53.5 L71.808,53.5 L71.808,54.5" fill="#b1d850" stroke="none"/> +<path d="M51.808,53.5 L51.808,52.5 L71.808,52.5 L71.808,53.5" fill="#b3d84f" stroke="none"/> +<path d="M51.808,52.5 L51.808,51.5 L71.808,51.5 L71.808,52.5" fill="#b6d94f" stroke="none"/> +<path d="M51.808,51.5 L51.808,50.5 L71.808,50.5 L71.808,51.5" fill="#b8d94e" stroke="none"/> +<path d="M51.808,50.5 L51.808,49.5 L71.808,49.5 L71.808,50.5" fill="#bada4d" stroke="none"/> +<path d="M51.808,49.5 L51.808,48.5 L71.808,48.5 L71.808,49.5" fill="#bdda4c" stroke="none"/> +<path d="M51.808,48.5 L51.808,47.5 L71.808,47.5 L71.808,48.5" fill="#bfdb4b" stroke="none"/> +<path d="M51.808,47.5 L51.808,46.5 L71.808,46.5 L71.808,47.5" fill="#c1db4a" stroke="none"/> +<path d="M51.808,46.5 L51.808,45.5 L71.808,45.5 L71.808,46.5" fill="#c4dc49" stroke="none"/> +<path d="M51.808,45.5 L51.808,44.5 L71.808,44.5 L71.808,45.5" fill="#c6dc48" stroke="none"/> +<path d="M51.808,44.5 L51.808,43.5 L71.808,43.5 L71.808,44.5" fill="#c8dd47" stroke="none"/> +<path d="M51.808,43.5 L51.808,42.5 L71.808,42.5 L71.808,43.5" fill="#cadd46" stroke="none"/> +<path d="M51.808,42.5 L51.808,41.5 L71.808,41.5 L71.808,42.5" fill="#cddd45" stroke="none"/> +<path d="M51.808,41.5 L51.808,40.5 L71.808,40.5 L71.808,41.5" fill="#cfde44" stroke="none"/> +<path d="M51.808,40.5 L51.808,39.5 L71.808,39.5 L71.808,40.5" fill="#d1de43" stroke="none"/> +<path d="M51.808,39.5 L51.808,38.5 L71.808,38.5 L71.808,39.5" fill="#d3df42" stroke="none"/> +<path d="M51.808,38.5 L51.808,37.5 L71.808,37.5 L71.808,38.5" fill="#d6df41" stroke="none"/> +<path d="M51.808,37.5 L51.808,36.5 L71.808,36.5 L71.808,37.5" fill="#d8e040" stroke="none"/> +<path d="M51.808,36.5 L51.808,35.5 L71.808,35.5 L71.808,36.5" fill="#dae03f" stroke="none"/> +<path d="M51.808,35.5 L51.808,34.5 L71.808,34.5 L71.808,35.5" fill="#dce13e" stroke="none"/> +<path d="M51.808,34.5 L51.808,33.5 L71.808,33.5 L71.808,34.5" fill="#dfe13c" stroke="none"/> +<path d="M51.808,33.5 L51.808,32.5 L71.808,32.5 L71.808,33.5" fill="#e1e13b" stroke="none"/> +<path d="M51.808,32.5 L51.808,31.5 L71.808,31.5 L71.808,32.5" fill="#e3e23a" stroke="none"/> +<path d="M51.808,31.5 L51.808,30.5 L71.808,30.5 L71.808,31.5" fill="#e5e238" stroke="none"/> +<path d="M51.808,30.5 L51.808,29.5 L71.808,29.5 L71.808,30.5" fill="#e7e337" stroke="none"/> +<path d="M51.808,29.5 L51.808,28.5 L71.808,28.5 L71.808,29.5" fill="#eae335" stroke="none"/> +<path d="M51.808,28.5 L51.808,27.5 L71.808,27.5 L71.808,28.5" fill="#ece434" stroke="none"/> +<path d="M51.808,27.5 L51.808,26.5 L71.808,26.5 L71.808,27.5" fill="#eee432" stroke="none"/> +<path d="M51.808,26.5 L51.808,25.5 L71.808,25.5 L71.808,26.5" fill="#f0e530" stroke="none"/> +<path d="M51.808,25.5 L51.808,24.5 L71.808,24.5 L71.808,25.5" fill="#f2e52f" stroke="none"/> +<path d="M51.808,24.5 L51.808,23.5 L71.808,23.5 L71.808,24.5" fill="#f4e52d" stroke="none"/> +<path d="M51.808,23.5 L51.808,22.5 L71.808,22.5 L71.808,23.5" fill="#f7e62b" stroke="none"/> +<path d="M51.808,22.5 L51.808,21.5 L71.808,21.5 L71.808,22.5" fill="#f9e629" stroke="none"/> +<path d="M51.808,21.5 L51.808,20.5 L71.808,20.5 L71.808,21.5" fill="#fbe726" stroke="none"/> +<path d="M51.808,20.5 L51.808,20 L71.808,20 L71.808,20.5" fill="#fde724" stroke="none"/> +<path d="M51.808,20 L71.808,20 L71.808,280 L51.808,280 z" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M51.808,265.58292 L47.808,265.58292" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-17.532001,-1.0799999 Q-17.532001,-0.036000013,-17.688,0.78 Q-17.844,1.5960001,-18.186,2.1660001 Q-18.528,2.736,-19.074001,3.036 Q-19.62,3.336,-20.388,3.336 Q-21.348,3.336,-21.978,2.808 Q-22.608,2.2800002,-22.914001,1.2900001 Q-23.220001,0.29999995,-23.220001,-1.0799999 Q-23.220001,-2.4720001,-22.938,-3.4559999 Q-22.656,-4.44,-22.032001,-4.9620004 Q-21.408,-5.4839997,-20.388,-5.4839997 Q-19.428001,-5.4839997,-18.792,-4.9620004 Q-18.156,-4.44,-17.844,-3.4559999 Q-17.532001,-2.4720001,-17.532001,-1.0799999 z M-22.164001,-1.0799999 Q-22.164001,0.095999956,-21.99,0.87600017 Q-21.816,1.656,-21.426,2.046 Q-21.036001,2.436,-20.388,2.436 Q-19.740002,2.436,-19.35,2.052 Q-18.960001,1.6680001,-18.78,0.88199997 Q-18.6,0.095999956,-18.6,-1.0799999 Q-18.6,-2.256,-18.78,-3.0300002 Q-18.960001,-3.804,-19.35,-4.194 Q-19.740002,-4.584,-20.388,-4.584 Q-21.036001,-4.584,-21.426,-4.194 Q-21.816,-3.804,-21.99,-3.0300002 Q-22.164001,-2.256,-22.164001,-1.0799999 z M-16.08,2.568 Q-16.08,2.124,-15.864,1.9440001 Q-15.648001,1.764,-15.348001,1.764 Q-15.036,1.764,-14.814,1.9440001 Q-14.592,2.124,-14.592,2.568 Q-14.592,3,-14.814,3.1920002 Q-15.036,3.384,-15.348001,3.384 Q-15.648001,3.384,-15.864,3.1920002 Q-16.08,3,-16.08,2.568 z M-9.468,3.216 L-10.500001,3.216 L-10.500001,-2.7719998 Q-10.500001,-3.12,-10.494,-3.3600001 Q-10.488001,-3.6,-10.476001,-3.81 Q-10.464001,-4.02,-10.452001,-4.248 Q-10.644001,-4.0559998,-10.800001,-3.9239998 Q-10.956,-3.7919998,-11.196001,-3.5879998 L-12.108001,-2.8439999 L-12.660001,-3.552 L-10.344001,-5.3519998 L-9.468,-5.3519998 L-9.468,3.216 z M-0.5880008,-1.0799999 Q-0.5880008,-0.036000013,-0.7440009,0.78 Q-0.9000006,1.5960001,-1.2420006,2.1660001 Q-1.5840006,2.736,-2.1300006,3.036 Q-2.6760006,3.336,-3.4440007,3.336 Q-4.4040008,3.336,-5.034001,2.808 Q-5.6640005,2.2800002,-5.9700007,1.2900001 Q-6.276001,0.29999995,-6.276001,-1.0799999 Q-6.276001,-2.4720001,-5.994001,-3.4559999 Q-5.712001,-4.44,-5.088001,-4.9620004 Q-4.4640007,-5.4839997,-3.4440007,-5.4839997 Q-2.4840007,-5.4839997,-1.8480005,-4.9620004 Q-1.2120008,-4.44,-0.9000006,-3.4559999 Q-0.5880008,-2.4720001,-0.5880008,-1.0799999 z M-5.2200007,-1.0799999 Q-5.2200007,0.095999956,-5.046001,0.87600017 Q-4.8720007,1.656,-4.482001,2.046 Q-4.092001,2.436,-3.4440007,2.436 Q-2.796001,2.436,-2.4060006,2.052 Q-2.0160007,1.6680001,-1.8360009,0.88199997 Q-1.6560006,0.095999956,-1.6560006,-1.0799999 Q-1.6560006,-2.256,-1.8360009,-3.0300002 Q-2.0160007,-3.804,-2.4060006,-4.194 Q-2.796001,-4.584,-3.4440007,-4.584 Q-4.092001,-4.584,-4.482001,-4.194 Q-4.8720007,-3.804,-5.046001,-3.0300002 Q-5.2200007,-2.256,-5.2200007,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 43.808 265.58292)"/> +<path d="M51.808,237.0792 L47.808,237.0792" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-17.532001,-1.0799999 Q-17.532001,-0.036000013,-17.688,0.78 Q-17.844,1.5960001,-18.186,2.1660001 Q-18.528,2.736,-19.074001,3.036 Q-19.62,3.336,-20.388,3.336 Q-21.348,3.336,-21.978,2.808 Q-22.608,2.2800002,-22.914001,1.2900001 Q-23.220001,0.29999995,-23.220001,-1.0799999 Q-23.220001,-2.4720001,-22.938,-3.4559999 Q-22.656,-4.44,-22.032001,-4.9620004 Q-21.408,-5.4839997,-20.388,-5.4839997 Q-19.428001,-5.4839997,-18.792,-4.9620004 Q-18.156,-4.44,-17.844,-3.4559999 Q-17.532001,-2.4720001,-17.532001,-1.0799999 z M-22.164001,-1.0799999 Q-22.164001,0.095999956,-21.99,0.87600017 Q-21.816,1.656,-21.426,2.046 Q-21.036001,2.436,-20.388,2.436 Q-19.740002,2.436,-19.35,2.052 Q-18.960001,1.6680001,-18.78,0.88199997 Q-18.6,0.095999956,-18.6,-1.0799999 Q-18.6,-2.256,-18.78,-3.0300002 Q-18.960001,-3.804,-19.35,-4.194 Q-19.740002,-4.584,-20.388,-4.584 Q-21.036001,-4.584,-21.426,-4.194 Q-21.816,-3.804,-21.99,-3.0300002 Q-22.164001,-2.256,-22.164001,-1.0799999 z M-16.08,2.568 Q-16.08,2.124,-15.864,1.9440001 Q-15.648001,1.764,-15.348001,1.764 Q-15.036,1.764,-14.814,1.9440001 Q-14.592,2.124,-14.592,2.568 Q-14.592,3,-14.814,3.1920002 Q-15.036,3.384,-15.348001,3.384 Q-15.648001,3.384,-15.864,3.1920002 Q-16.08,3,-16.08,2.568 z M-7.4880004,3.216 L-13.152,3.216 L-13.152,2.3400002 L-10.908001,0.07200003 Q-10.26,-0.576,-9.816001,-1.0799999 Q-9.372001,-1.5840001,-9.144001,-2.0700002 Q-8.916,-2.5559998,-8.916,-3.132 Q-8.916,-3.8400002,-9.336,-4.206 Q-9.7560005,-4.572,-10.428,-4.572 Q-11.052,-4.572,-11.526001,-4.356 Q-12.000001,-4.14,-12.492001,-3.756 L-13.056001,-4.464 Q-12.72,-4.752,-12.318001,-4.98 Q-11.916,-5.2079997,-11.442,-5.3399997 Q-10.968,-5.4719996,-10.428,-5.4719996 Q-9.624001,-5.4719996,-9.048,-5.1959996 Q-8.472,-4.9199996,-8.154001,-4.41 Q-7.8360004,-3.9,-7.8360004,-3.192 Q-7.8360004,-2.52,-8.112,-1.9320002 Q-8.3880005,-1.3439999,-8.880001,-0.7739999 Q-9.372001,-0.204,-10.032001,0.444 L-11.820001,2.2080002 L-11.820001,2.256 L-7.4880004,2.256 L-7.4880004,3.216 z M-0.5880008,-1.0799999 Q-0.5880008,-0.036000013,-0.7440009,0.78 Q-0.9000006,1.5960001,-1.2420006,2.1660001 Q-1.5840006,2.736,-2.1300006,3.036 Q-2.6760006,3.336,-3.4440007,3.336 Q-4.4040008,3.336,-5.034001,2.808 Q-5.6640005,2.2800002,-5.9700007,1.2900001 Q-6.276001,0.29999995,-6.276001,-1.0799999 Q-6.276001,-2.4720001,-5.994001,-3.4559999 Q-5.712001,-4.44,-5.088001,-4.9620004 Q-4.4640007,-5.4839997,-3.4440007,-5.4839997 Q-2.4840007,-5.4839997,-1.8480005,-4.9620004 Q-1.2120008,-4.44,-0.9000006,-3.4559999 Q-0.5880008,-2.4720001,-0.5880008,-1.0799999 z M-5.2200007,-1.0799999 Q-5.2200007,0.095999956,-5.046001,0.87600017 Q-4.8720007,1.656,-4.482001,2.046 Q-4.092001,2.436,-3.4440007,2.436 Q-2.796001,2.436,-2.4060006,2.052 Q-2.0160007,1.6680001,-1.8360009,0.88199997 Q-1.6560006,0.095999956,-1.6560006,-1.0799999 Q-1.6560006,-2.256,-1.8360009,-3.0300002 Q-2.0160007,-3.804,-2.4060006,-4.194 Q-2.796001,-4.584,-3.4440007,-4.584 Q-4.092001,-4.584,-4.482001,-4.194 Q-4.8720007,-3.804,-5.046001,-3.0300002 Q-5.2200007,-2.256,-5.2200007,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 43.808 237.0792)"/> +<path d="M51.808,208.57547 L47.808,208.57547" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-17.532001,-1.0799999 Q-17.532001,-0.036000013,-17.688,0.78 Q-17.844,1.5960001,-18.186,2.1660001 Q-18.528,2.736,-19.074001,3.036 Q-19.62,3.336,-20.388,3.336 Q-21.348,3.336,-21.978,2.808 Q-22.608,2.2800002,-22.914001,1.2900001 Q-23.220001,0.29999995,-23.220001,-1.0799999 Q-23.220001,-2.4720001,-22.938,-3.4559999 Q-22.656,-4.44,-22.032001,-4.9620004 Q-21.408,-5.4839997,-20.388,-5.4839997 Q-19.428001,-5.4839997,-18.792,-4.9620004 Q-18.156,-4.44,-17.844,-3.4559999 Q-17.532001,-2.4720001,-17.532001,-1.0799999 z M-22.164001,-1.0799999 Q-22.164001,0.095999956,-21.99,0.87600017 Q-21.816,1.656,-21.426,2.046 Q-21.036001,2.436,-20.388,2.436 Q-19.740002,2.436,-19.35,2.052 Q-18.960001,1.6680001,-18.78,0.88199997 Q-18.6,0.095999956,-18.6,-1.0799999 Q-18.6,-2.256,-18.78,-3.0300002 Q-18.960001,-3.804,-19.35,-4.194 Q-19.740002,-4.584,-20.388,-4.584 Q-21.036001,-4.584,-21.426,-4.194 Q-21.816,-3.804,-21.99,-3.0300002 Q-22.164001,-2.256,-22.164001,-1.0799999 z M-16.08,2.568 Q-16.08,2.124,-15.864,1.9440001 Q-15.648001,1.764,-15.348001,1.764 Q-15.036,1.764,-14.814,1.9440001 Q-14.592,2.124,-14.592,2.568 Q-14.592,3,-14.814,3.1920002 Q-15.036,3.384,-15.348001,3.384 Q-15.648001,3.384,-15.864,3.1920002 Q-16.08,3,-16.08,2.568 z M-7.8120008,-3.348 Q-7.8120008,-2.7719998,-8.028,-2.3519998 Q-8.244,-1.9320002,-8.646,-1.6679997 Q-9.048,-1.4039998,-9.588001,-1.296 L-9.588001,-1.2480001 Q-8.556001,-1.1279998,-8.052,-0.5999999 Q-7.548001,-0.07200003,-7.548001,0.78 Q-7.548001,1.524,-7.8960004,2.106 Q-8.244,2.6880002,-8.970001,3.012 Q-9.696001,3.336,-10.836,3.336 Q-11.508,3.336,-12.084001,3.234 Q-12.660001,3.132,-13.188001,2.868 L-13.188001,1.8840001 Q-12.648001,2.1480002,-12.024,2.298 Q-11.400001,2.448,-10.824,2.448 Q-9.672001,2.448,-9.162001,1.998 Q-8.652,1.5480001,-8.652,0.75600004 Q-8.652,0.21600008,-8.934,-0.11399984 Q-9.216001,-0.444,-9.7560005,-0.5999999 Q-10.2960005,-0.75600004,-11.052,-0.75600004 L-11.880001,-0.75600004 L-11.880001,-1.6560001 L-11.040001,-1.6560001 Q-10.332001,-1.6560001,-9.858001,-1.8600001 Q-9.384001,-2.0640001,-9.1380005,-2.4299998 Q-8.892,-2.796,-8.892,-3.276 Q-8.892,-3.9,-9.312,-4.242 Q-9.732,-4.584,-10.452001,-4.584 Q-10.908001,-4.584,-11.280001,-4.494 Q-11.652,-4.404,-11.97,-4.242 Q-12.288,-4.08,-12.612,-3.8639998 L-13.14,-4.584 Q-12.684001,-4.944,-12.0060005,-5.2079997 Q-11.328001,-5.4719996,-10.464001,-5.4719996 Q-9.120001,-5.4719996,-8.466001,-4.872 Q-7.8120008,-4.272,-7.8120008,-3.348 z M-0.5880008,-1.0799999 Q-0.5880008,-0.036000013,-0.7440009,0.78 Q-0.9000006,1.5960001,-1.2420006,2.1660001 Q-1.5840006,2.736,-2.1300006,3.036 Q-2.6760006,3.336,-3.4440007,3.336 Q-4.4040008,3.336,-5.034001,2.808 Q-5.6640005,2.2800002,-5.9700007,1.2900001 Q-6.276001,0.29999995,-6.276001,-1.0799999 Q-6.276001,-2.4720001,-5.994001,-3.4559999 Q-5.712001,-4.44,-5.088001,-4.9620004 Q-4.4640007,-5.4839997,-3.4440007,-5.4839997 Q-2.4840007,-5.4839997,-1.8480005,-4.9620004 Q-1.2120008,-4.44,-0.9000006,-3.4559999 Q-0.5880008,-2.4720001,-0.5880008,-1.0799999 z M-5.2200007,-1.0799999 Q-5.2200007,0.095999956,-5.046001,0.87600017 Q-4.8720007,1.656,-4.482001,2.046 Q-4.092001,2.436,-3.4440007,2.436 Q-2.796001,2.436,-2.4060006,2.052 Q-2.0160007,1.6680001,-1.8360009,0.88199997 Q-1.6560006,0.095999956,-1.6560006,-1.0799999 Q-1.6560006,-2.256,-1.8360009,-3.0300002 Q-2.0160007,-3.804,-2.4060006,-4.194 Q-2.796001,-4.584,-3.4440007,-4.584 Q-4.092001,-4.584,-4.482001,-4.194 Q-4.8720007,-3.804,-5.046001,-3.0300002 Q-5.2200007,-2.256,-5.2200007,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 43.808 208.57547)"/> +<path d="M51.808,180.07175 L47.808,180.07175" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-17.532001,-1.0799999 Q-17.532001,-0.036000013,-17.688,0.78 Q-17.844,1.5960001,-18.186,2.1660001 Q-18.528,2.736,-19.074001,3.036 Q-19.62,3.336,-20.388,3.336 Q-21.348,3.336,-21.978,2.808 Q-22.608,2.2800002,-22.914001,1.2900001 Q-23.220001,0.29999995,-23.220001,-1.0799999 Q-23.220001,-2.4720001,-22.938,-3.4559999 Q-22.656,-4.44,-22.032001,-4.9620004 Q-21.408,-5.4839997,-20.388,-5.4839997 Q-19.428001,-5.4839997,-18.792,-4.9620004 Q-18.156,-4.44,-17.844,-3.4559999 Q-17.532001,-2.4720001,-17.532001,-1.0799999 z M-22.164001,-1.0799999 Q-22.164001,0.095999956,-21.99,0.87600017 Q-21.816,1.656,-21.426,2.046 Q-21.036001,2.436,-20.388,2.436 Q-19.740002,2.436,-19.35,2.052 Q-18.960001,1.6680001,-18.78,0.88199997 Q-18.6,0.095999956,-18.6,-1.0799999 Q-18.6,-2.256,-18.78,-3.0300002 Q-18.960001,-3.804,-19.35,-4.194 Q-19.740002,-4.584,-20.388,-4.584 Q-21.036001,-4.584,-21.426,-4.194 Q-21.816,-3.804,-21.99,-3.0300002 Q-22.164001,-2.256,-22.164001,-1.0799999 z M-16.08,2.568 Q-16.08,2.124,-15.864,1.9440001 Q-15.648001,1.764,-15.348001,1.764 Q-15.036,1.764,-14.814,1.9440001 Q-14.592,2.124,-14.592,2.568 Q-14.592,3,-14.814,3.1920002 Q-15.036,3.384,-15.348001,3.384 Q-15.648001,3.384,-15.864,3.1920002 Q-16.08,3,-16.08,2.568 z M-7.1040006,1.2720001 L-8.352001,1.2720001 L-8.352001,3.216 L-9.372001,3.216 L-9.372001,1.2720001 L-13.476001,1.2720001 L-13.476001,0.37199998 L-9.444,-5.4 L-8.352001,-5.4 L-8.352001,0.32400012 L-7.1040006,0.32400012 L-7.1040006,1.2720001 z M-9.372001,-2.376 Q-9.372001,-2.6880002,-9.366001,-2.946 Q-9.360001,-3.204,-9.348001,-3.4320002 Q-9.336,-3.6599998,-9.33,-3.87 Q-9.324001,-4.08,-9.312,-4.272 L-9.360001,-4.272 Q-9.456001,-4.044,-9.6,-3.7800002 Q-9.744,-3.5159998,-9.876,-3.336 L-12.444,0.32400012 L-9.372001,0.32400012 L-9.372001,-2.376 z M-0.5880008,-1.0799999 Q-0.5880008,-0.036000013,-0.7440009,0.78 Q-0.9000006,1.5960001,-1.2420006,2.1660001 Q-1.5840006,2.736,-2.1300006,3.036 Q-2.6760006,3.336,-3.4440007,3.336 Q-4.4040008,3.336,-5.034001,2.808 Q-5.6640005,2.2800002,-5.9700007,1.2900001 Q-6.276001,0.29999995,-6.276001,-1.0799999 Q-6.276001,-2.4720001,-5.994001,-3.4559999 Q-5.712001,-4.44,-5.088001,-4.9620004 Q-4.4640007,-5.4839997,-3.4440007,-5.4839997 Q-2.4840007,-5.4839997,-1.8480005,-4.9620004 Q-1.2120008,-4.44,-0.9000006,-3.4559999 Q-0.5880008,-2.4720001,-0.5880008,-1.0799999 z M-5.2200007,-1.0799999 Q-5.2200007,0.095999956,-5.046001,0.87600017 Q-4.8720007,1.656,-4.482001,2.046 Q-4.092001,2.436,-3.4440007,2.436 Q-2.796001,2.436,-2.4060006,2.052 Q-2.0160007,1.6680001,-1.8360009,0.88199997 Q-1.6560006,0.095999956,-1.6560006,-1.0799999 Q-1.6560006,-2.256,-1.8360009,-3.0300002 Q-2.0160007,-3.804,-2.4060006,-4.194 Q-2.796001,-4.584,-3.4440007,-4.584 Q-4.092001,-4.584,-4.482001,-4.194 Q-4.8720007,-3.804,-5.046001,-3.0300002 Q-5.2200007,-2.256,-5.2200007,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 43.808 180.07175)"/> +<path d="M51.808,151.56801 L47.808,151.56801" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-17.532001,-1.0799999 Q-17.532001,-0.036000013,-17.688,0.78 Q-17.844,1.5960001,-18.186,2.1660001 Q-18.528,2.736,-19.074001,3.036 Q-19.62,3.336,-20.388,3.336 Q-21.348,3.336,-21.978,2.808 Q-22.608,2.2800002,-22.914001,1.2900001 Q-23.220001,0.29999995,-23.220001,-1.0799999 Q-23.220001,-2.4720001,-22.938,-3.4559999 Q-22.656,-4.44,-22.032001,-4.9620004 Q-21.408,-5.4839997,-20.388,-5.4839997 Q-19.428001,-5.4839997,-18.792,-4.9620004 Q-18.156,-4.44,-17.844,-3.4559999 Q-17.532001,-2.4720001,-17.532001,-1.0799999 z M-22.164001,-1.0799999 Q-22.164001,0.095999956,-21.99,0.87600017 Q-21.816,1.656,-21.426,2.046 Q-21.036001,2.436,-20.388,2.436 Q-19.740002,2.436,-19.35,2.052 Q-18.960001,1.6680001,-18.78,0.88199997 Q-18.6,0.095999956,-18.6,-1.0799999 Q-18.6,-2.256,-18.78,-3.0300002 Q-18.960001,-3.804,-19.35,-4.194 Q-19.740002,-4.584,-20.388,-4.584 Q-21.036001,-4.584,-21.426,-4.194 Q-21.816,-3.804,-21.99,-3.0300002 Q-22.164001,-2.256,-22.164001,-1.0799999 z M-16.08,2.568 Q-16.08,2.124,-15.864,1.9440001 Q-15.648001,1.764,-15.348001,1.764 Q-15.036,1.764,-14.814,1.9440001 Q-14.592,2.124,-14.592,2.568 Q-14.592,3,-14.814,3.1920002 Q-15.036,3.384,-15.348001,3.384 Q-15.648001,3.384,-15.864,3.1920002 Q-16.08,3,-16.08,2.568 z M-10.428,-2.04 Q-9.552,-2.04,-8.904001,-1.7399998 Q-8.2560005,-1.44,-7.9020004,-0.88199997 Q-7.548001,-0.32399988,-7.548001,0.48000002 Q-7.548001,1.368,-7.9320006,2.0100002 Q-8.316,2.652,-9.030001,2.994 Q-9.744,3.336,-10.752001,3.336 Q-11.412001,3.336,-11.994,3.216 Q-12.576,3.0960002,-12.972001,2.868 L-12.972001,1.8720001 Q-12.540001,2.1360002,-11.922001,2.286 Q-11.304001,2.436,-10.740001,2.436 Q-10.104,2.436,-9.630001,2.2380002 Q-9.156,2.04,-8.892,1.626 Q-8.628,1.2120001,-8.628,0.58800006 Q-8.628,-0.25199986,-9.144001,-0.7019999 Q-9.660001,-1.152,-10.776001,-1.152 Q-11.112,-1.152,-11.544001,-1.092 Q-11.976001,-1.0320001,-12.240001,-0.9720001 L-12.768001,-1.3080001 L-12.444,-5.3519998 L-8.148001,-5.3519998 L-8.148001,-4.392 L-11.544001,-4.392 L-11.748001,-1.908 Q-11.544001,-1.9439998,-11.196001,-1.9920001 Q-10.848001,-2.04,-10.428,-2.04 z M-0.5880008,-1.0799999 Q-0.5880008,-0.036000013,-0.7440009,0.78 Q-0.9000006,1.5960001,-1.2420006,2.1660001 Q-1.5840006,2.736,-2.1300006,3.036 Q-2.6760006,3.336,-3.4440007,3.336 Q-4.4040008,3.336,-5.034001,2.808 Q-5.6640005,2.2800002,-5.9700007,1.2900001 Q-6.276001,0.29999995,-6.276001,-1.0799999 Q-6.276001,-2.4720001,-5.994001,-3.4559999 Q-5.712001,-4.44,-5.088001,-4.9620004 Q-4.4640007,-5.4839997,-3.4440007,-5.4839997 Q-2.4840007,-5.4839997,-1.8480005,-4.9620004 Q-1.2120008,-4.44,-0.9000006,-3.4559999 Q-0.5880008,-2.4720001,-0.5880008,-1.0799999 z M-5.2200007,-1.0799999 Q-5.2200007,0.095999956,-5.046001,0.87600017 Q-4.8720007,1.656,-4.482001,2.046 Q-4.092001,2.436,-3.4440007,2.436 Q-2.796001,2.436,-2.4060006,2.052 Q-2.0160007,1.6680001,-1.8360009,0.88199997 Q-1.6560006,0.095999956,-1.6560006,-1.0799999 Q-1.6560006,-2.256,-1.8360009,-3.0300002 Q-2.0160007,-3.804,-2.4060006,-4.194 Q-2.796001,-4.584,-3.4440007,-4.584 Q-4.092001,-4.584,-4.482001,-4.194 Q-4.8720007,-3.804,-5.046001,-3.0300002 Q-5.2200007,-2.256,-5.2200007,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 43.808 151.56801)"/> +<path d="M51.808,123.064285 L47.808,123.064285" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-17.532001,-1.0799999 Q-17.532001,-0.036000013,-17.688,0.78 Q-17.844,1.5960001,-18.186,2.1660001 Q-18.528,2.736,-19.074001,3.036 Q-19.62,3.336,-20.388,3.336 Q-21.348,3.336,-21.978,2.808 Q-22.608,2.2800002,-22.914001,1.2900001 Q-23.220001,0.29999995,-23.220001,-1.0799999 Q-23.220001,-2.4720001,-22.938,-3.4559999 Q-22.656,-4.44,-22.032001,-4.9620004 Q-21.408,-5.4839997,-20.388,-5.4839997 Q-19.428001,-5.4839997,-18.792,-4.9620004 Q-18.156,-4.44,-17.844,-3.4559999 Q-17.532001,-2.4720001,-17.532001,-1.0799999 z M-22.164001,-1.0799999 Q-22.164001,0.095999956,-21.99,0.87600017 Q-21.816,1.656,-21.426,2.046 Q-21.036001,2.436,-20.388,2.436 Q-19.740002,2.436,-19.35,2.052 Q-18.960001,1.6680001,-18.78,0.88199997 Q-18.6,0.095999956,-18.6,-1.0799999 Q-18.6,-2.256,-18.78,-3.0300002 Q-18.960001,-3.804,-19.35,-4.194 Q-19.740002,-4.584,-20.388,-4.584 Q-21.036001,-4.584,-21.426,-4.194 Q-21.816,-3.804,-21.99,-3.0300002 Q-22.164001,-2.256,-22.164001,-1.0799999 z M-16.08,2.568 Q-16.08,2.124,-15.864,1.9440001 Q-15.648001,1.764,-15.348001,1.764 Q-15.036,1.764,-14.814,1.9440001 Q-14.592,2.124,-14.592,2.568 Q-14.592,3,-14.814,3.1920002 Q-15.036,3.384,-15.348001,3.384 Q-15.648001,3.384,-15.864,3.1920002 Q-16.08,3,-16.08,2.568 z M-13.068001,-0.444 Q-13.068001,-1.1879997,-12.966001,-1.908 Q-12.864,-2.6279998,-12.612,-3.27 Q-12.360001,-3.9120002,-11.916,-4.41 Q-11.472,-4.9079995,-10.794001,-5.19 Q-10.116001,-5.4719996,-9.144001,-5.4719996 Q-8.892,-5.4719996,-8.586,-5.4480004 Q-8.280001,-5.4240003,-8.088001,-5.364 L-8.088001,-4.464 Q-8.304001,-4.536,-8.574,-4.572 Q-8.844001,-4.608,-9.120001,-4.608 Q-9.948001,-4.608,-10.500001,-4.332 Q-11.052,-4.0559998,-11.370001,-3.5760002 Q-11.688001,-3.0960002,-11.832001,-2.4720001 Q-11.976001,-1.848,-12.012001,-1.1399999 L-11.940001,-1.1399999 Q-11.76,-1.428,-11.484001,-1.6560001 Q-11.208,-1.8839998,-10.818001,-2.0159998 Q-10.428,-2.1479998,-9.912001,-2.1479998 Q-9.168001,-2.1479998,-8.610001,-1.842 Q-8.052,-1.5359998,-7.7400007,-0.954 Q-7.4280005,-0.37199998,-7.4280005,0.4560001 Q-7.4280005,1.3440001,-7.7640004,1.9920001 Q-8.1,2.64,-8.706001,2.9880002 Q-9.312,3.336,-10.152,3.336 Q-10.764001,3.336,-11.292001,3.108 Q-11.820001,2.88,-12.222,2.4120002 Q-12.624001,1.9440001,-12.846001,1.23 Q-13.068001,0.51600003,-13.068001,-0.444 z M-10.1640005,2.448 Q-9.408001,2.448,-8.940001,1.962 Q-8.472,1.4760001,-8.472,0.4560001 Q-8.472,-0.3599999,-8.886001,-0.84000015 Q-9.300001,-1.3200002,-10.128,-1.3200002 Q-10.692,-1.3200002,-11.112,-1.086 Q-11.532001,-0.85199976,-11.766001,-0.49199986 Q-12.000001,-0.13199997,-12.000001,0.2520001 Q-12.000001,0.648,-11.886001,1.0320001 Q-11.772,1.416,-11.538,1.74 Q-11.304001,2.0640001,-10.962001,2.256 Q-10.620001,2.448,-10.1640005,2.448 z M-0.5880008,-1.0799999 Q-0.5880008,-0.036000013,-0.7440009,0.78 Q-0.9000006,1.5960001,-1.2420006,2.1660001 Q-1.5840006,2.736,-2.1300006,3.036 Q-2.6760006,3.336,-3.4440007,3.336 Q-4.4040008,3.336,-5.034001,2.808 Q-5.6640005,2.2800002,-5.9700007,1.2900001 Q-6.276001,0.29999995,-6.276001,-1.0799999 Q-6.276001,-2.4720001,-5.994001,-3.4559999 Q-5.712001,-4.44,-5.088001,-4.9620004 Q-4.4640007,-5.4839997,-3.4440007,-5.4839997 Q-2.4840007,-5.4839997,-1.8480005,-4.9620004 Q-1.2120008,-4.44,-0.9000006,-3.4559999 Q-0.5880008,-2.4720001,-0.5880008,-1.0799999 z M-5.2200007,-1.0799999 Q-5.2200007,0.095999956,-5.046001,0.87600017 Q-4.8720007,1.656,-4.482001,2.046 Q-4.092001,2.436,-3.4440007,2.436 Q-2.796001,2.436,-2.4060006,2.052 Q-2.0160007,1.6680001,-1.8360009,0.88199997 Q-1.6560006,0.095999956,-1.6560006,-1.0799999 Q-1.6560006,-2.256,-1.8360009,-3.0300002 Q-2.0160007,-3.804,-2.4060006,-4.194 Q-2.796001,-4.584,-3.4440007,-4.584 Q-4.092001,-4.584,-4.482001,-4.194 Q-4.8720007,-3.804,-5.046001,-3.0300002 Q-5.2200007,-2.256,-5.2200007,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 43.808 123.064285)"/> +<path d="M51.808,94.56056 L47.808,94.56056" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-17.532001,-1.0799999 Q-17.532001,-0.036000013,-17.688,0.78 Q-17.844,1.5960001,-18.186,2.1660001 Q-18.528,2.736,-19.074001,3.036 Q-19.62,3.336,-20.388,3.336 Q-21.348,3.336,-21.978,2.808 Q-22.608,2.2800002,-22.914001,1.2900001 Q-23.220001,0.29999995,-23.220001,-1.0799999 Q-23.220001,-2.4720001,-22.938,-3.4559999 Q-22.656,-4.44,-22.032001,-4.9620004 Q-21.408,-5.4839997,-20.388,-5.4839997 Q-19.428001,-5.4839997,-18.792,-4.9620004 Q-18.156,-4.44,-17.844,-3.4559999 Q-17.532001,-2.4720001,-17.532001,-1.0799999 z M-22.164001,-1.0799999 Q-22.164001,0.095999956,-21.99,0.87600017 Q-21.816,1.656,-21.426,2.046 Q-21.036001,2.436,-20.388,2.436 Q-19.740002,2.436,-19.35,2.052 Q-18.960001,1.6680001,-18.78,0.88199997 Q-18.6,0.095999956,-18.6,-1.0799999 Q-18.6,-2.256,-18.78,-3.0300002 Q-18.960001,-3.804,-19.35,-4.194 Q-19.740002,-4.584,-20.388,-4.584 Q-21.036001,-4.584,-21.426,-4.194 Q-21.816,-3.804,-21.99,-3.0300002 Q-22.164001,-2.256,-22.164001,-1.0799999 z M-16.08,2.568 Q-16.08,2.124,-15.864,1.9440001 Q-15.648001,1.764,-15.348001,1.764 Q-15.036,1.764,-14.814,1.9440001 Q-14.592,2.124,-14.592,2.568 Q-14.592,3,-14.814,3.1920002 Q-15.036,3.384,-15.348001,3.384 Q-15.648001,3.384,-15.864,3.1920002 Q-16.08,3,-16.08,2.568 z M-12.096001,3.216 L-8.58,-4.392 L-13.200001,-4.392 L-13.200001,-5.3519998 L-7.4520006,-5.3519998 L-7.4520006,-4.536 L-10.932001,3.216 L-12.096001,3.216 z M-0.5880008,-1.0799999 Q-0.5880008,-0.036000013,-0.7440009,0.78 Q-0.9000006,1.5960001,-1.2420006,2.1660001 Q-1.5840006,2.736,-2.1300006,3.036 Q-2.6760006,3.336,-3.4440007,3.336 Q-4.4040008,3.336,-5.034001,2.808 Q-5.6640005,2.2800002,-5.9700007,1.2900001 Q-6.276001,0.29999995,-6.276001,-1.0799999 Q-6.276001,-2.4720001,-5.994001,-3.4559999 Q-5.712001,-4.44,-5.088001,-4.9620004 Q-4.4640007,-5.4839997,-3.4440007,-5.4839997 Q-2.4840007,-5.4839997,-1.8480005,-4.9620004 Q-1.2120008,-4.44,-0.9000006,-3.4559999 Q-0.5880008,-2.4720001,-0.5880008,-1.0799999 z M-5.2200007,-1.0799999 Q-5.2200007,0.095999956,-5.046001,0.87600017 Q-4.8720007,1.656,-4.482001,2.046 Q-4.092001,2.436,-3.4440007,2.436 Q-2.796001,2.436,-2.4060006,2.052 Q-2.0160007,1.6680001,-1.8360009,0.88199997 Q-1.6560006,0.095999956,-1.6560006,-1.0799999 Q-1.6560006,-2.256,-1.8360009,-3.0300002 Q-2.0160007,-3.804,-2.4060006,-4.194 Q-2.796001,-4.584,-3.4440007,-4.584 Q-4.092001,-4.584,-4.482001,-4.194 Q-4.8720007,-3.804,-5.046001,-3.0300002 Q-5.2200007,-2.256,-5.2200007,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 43.808 94.56056)"/> +<path d="M51.808,66.056854 L47.808,66.056854" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-17.532001,-1.0799999 Q-17.532001,-0.036000013,-17.688,0.78 Q-17.844,1.5960001,-18.186,2.1660001 Q-18.528,2.736,-19.074001,3.036 Q-19.62,3.336,-20.388,3.336 Q-21.348,3.336,-21.978,2.808 Q-22.608,2.2800002,-22.914001,1.2900001 Q-23.220001,0.29999995,-23.220001,-1.0799999 Q-23.220001,-2.4720001,-22.938,-3.4559999 Q-22.656,-4.44,-22.032001,-4.9620004 Q-21.408,-5.4839997,-20.388,-5.4839997 Q-19.428001,-5.4839997,-18.792,-4.9620004 Q-18.156,-4.44,-17.844,-3.4559999 Q-17.532001,-2.4720001,-17.532001,-1.0799999 z M-22.164001,-1.0799999 Q-22.164001,0.095999956,-21.99,0.87600017 Q-21.816,1.656,-21.426,2.046 Q-21.036001,2.436,-20.388,2.436 Q-19.740002,2.436,-19.35,2.052 Q-18.960001,1.6680001,-18.78,0.88199997 Q-18.6,0.095999956,-18.6,-1.0799999 Q-18.6,-2.256,-18.78,-3.0300002 Q-18.960001,-3.804,-19.35,-4.194 Q-19.740002,-4.584,-20.388,-4.584 Q-21.036001,-4.584,-21.426,-4.194 Q-21.816,-3.804,-21.99,-3.0300002 Q-22.164001,-2.256,-22.164001,-1.0799999 z M-16.08,2.568 Q-16.08,2.124,-15.864,1.9440001 Q-15.648001,1.764,-15.348001,1.764 Q-15.036,1.764,-14.814,1.9440001 Q-14.592,2.124,-14.592,2.568 Q-14.592,3,-14.814,3.1920002 Q-15.036,3.384,-15.348001,3.384 Q-15.648001,3.384,-15.864,3.1920002 Q-16.08,3,-16.08,2.568 z M-10.308001,-5.4719996 Q-9.552,-5.4719996,-8.976001,-5.2380004 Q-8.400001,-5.004,-8.070001,-4.548 Q-7.7400007,-4.092,-7.7400007,-3.42 Q-7.7400007,-2.9039998,-7.9620004,-2.52 Q-8.184,-2.1360002,-8.556001,-1.842 Q-8.928,-1.5479999,-9.372001,-1.3200002 Q-8.844001,-1.0679998,-8.412001,-0.75 Q-7.9800005,-0.43199992,-7.7220006,-0.0119998455 Q-7.4640007,0.408,-7.4640007,0.99600005 Q-7.4640007,1.7160001,-7.8120008,2.2380002 Q-8.160001,2.76,-8.790001,3.048 Q-9.42,3.336,-10.272,3.336 Q-11.196001,3.336,-11.838,3.0600002 Q-12.4800005,2.7840002,-12.81,2.2740002 Q-13.14,1.764,-13.14,1.0320001 Q-13.14,0.444,-12.894001,0.012000084 Q-12.648001,-0.41999984,-12.240001,-0.7319999 Q-11.832001,-1.0440001,-11.364,-1.2599998 Q-11.784,-1.5,-12.126,-1.8059998 Q-12.468,-2.112,-12.666,-2.508 Q-12.864,-2.9039998,-12.864,-3.4320002 Q-12.864,-4.092,-12.528001,-4.542 Q-12.192,-4.992,-11.616001,-5.232 Q-11.040001,-5.4719996,-10.308001,-5.4719996 z M-12.108001,1.0440001 Q-12.108001,1.6680001,-11.6640005,2.082 Q-11.22,2.496,-10.2960005,2.496 Q-9.42,2.496,-8.958,2.082 Q-8.496,1.6680001,-8.496,1.0080001 Q-8.496,0.58800006,-8.718,0.26999998 Q-8.940001,-0.04799986,-9.342001,-0.29999995 Q-9.744,-0.55200005,-10.2960005,-0.75600004 L-10.488001,-0.82800007 Q-11.016001,-0.5999999,-11.376,-0.33599997 Q-11.736001,-0.07200003,-11.922001,0.26399994 Q-12.108001,0.60000014,-12.108001,1.0440001 z M-10.320001,-4.62 Q-10.9800005,-4.62,-11.406,-4.302 Q-11.832001,-3.9840002,-11.832001,-3.3839998 Q-11.832001,-2.94,-11.622001,-2.6399999 Q-11.412001,-2.3400002,-11.052,-2.13 Q-10.692,-1.9200001,-10.26,-1.7280002 Q-9.84,-1.908,-9.51,-2.124 Q-9.18,-2.3400002,-8.982,-2.646 Q-8.784,-2.9520001,-8.784,-3.3839998 Q-8.784,-3.9840002,-9.204,-4.302 Q-9.624001,-4.62,-10.320001,-4.62 z M-0.5880008,-1.0799999 Q-0.5880008,-0.036000013,-0.7440009,0.78 Q-0.9000006,1.5960001,-1.2420006,2.1660001 Q-1.5840006,2.736,-2.1300006,3.036 Q-2.6760006,3.336,-3.4440007,3.336 Q-4.4040008,3.336,-5.034001,2.808 Q-5.6640005,2.2800002,-5.9700007,1.2900001 Q-6.276001,0.29999995,-6.276001,-1.0799999 Q-6.276001,-2.4720001,-5.994001,-3.4559999 Q-5.712001,-4.44,-5.088001,-4.9620004 Q-4.4640007,-5.4839997,-3.4440007,-5.4839997 Q-2.4840007,-5.4839997,-1.8480005,-4.9620004 Q-1.2120008,-4.44,-0.9000006,-3.4559999 Q-0.5880008,-2.4720001,-0.5880008,-1.0799999 z M-5.2200007,-1.0799999 Q-5.2200007,0.095999956,-5.046001,0.87600017 Q-4.8720007,1.656,-4.482001,2.046 Q-4.092001,2.436,-3.4440007,2.436 Q-2.796001,2.436,-2.4060006,2.052 Q-2.0160007,1.6680001,-1.8360009,0.88199997 Q-1.6560006,0.095999956,-1.6560006,-1.0799999 Q-1.6560006,-2.256,-1.8360009,-3.0300002 Q-2.0160007,-3.804,-2.4060006,-4.194 Q-2.796001,-4.584,-3.4440007,-4.584 Q-4.092001,-4.584,-4.482001,-4.194 Q-4.8720007,-3.804,-5.046001,-3.0300002 Q-5.2200007,-2.256,-5.2200007,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 43.808 66.056854)"/> +<path d="M51.808,37.55313 L47.808,37.55313" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-17.532001,-1.0799999 Q-17.532001,-0.036000013,-17.688,0.78 Q-17.844,1.5960001,-18.186,2.1660001 Q-18.528,2.736,-19.074001,3.036 Q-19.62,3.336,-20.388,3.336 Q-21.348,3.336,-21.978,2.808 Q-22.608,2.2800002,-22.914001,1.2900001 Q-23.220001,0.29999995,-23.220001,-1.0799999 Q-23.220001,-2.4720001,-22.938,-3.4559999 Q-22.656,-4.44,-22.032001,-4.9620004 Q-21.408,-5.4839997,-20.388,-5.4839997 Q-19.428001,-5.4839997,-18.792,-4.9620004 Q-18.156,-4.44,-17.844,-3.4559999 Q-17.532001,-2.4720001,-17.532001,-1.0799999 z M-22.164001,-1.0799999 Q-22.164001,0.095999956,-21.99,0.87600017 Q-21.816,1.656,-21.426,2.046 Q-21.036001,2.436,-20.388,2.436 Q-19.740002,2.436,-19.35,2.052 Q-18.960001,1.6680001,-18.78,0.88199997 Q-18.6,0.095999956,-18.6,-1.0799999 Q-18.6,-2.256,-18.78,-3.0300002 Q-18.960001,-3.804,-19.35,-4.194 Q-19.740002,-4.584,-20.388,-4.584 Q-21.036001,-4.584,-21.426,-4.194 Q-21.816,-3.804,-21.99,-3.0300002 Q-22.164001,-2.256,-22.164001,-1.0799999 z M-16.08,2.568 Q-16.08,2.124,-15.864,1.9440001 Q-15.648001,1.764,-15.348001,1.764 Q-15.036,1.764,-14.814,1.9440001 Q-14.592,2.124,-14.592,2.568 Q-14.592,3,-14.814,3.1920002 Q-15.036,3.384,-15.348001,3.384 Q-15.648001,3.384,-15.864,3.1920002 Q-16.08,3,-16.08,2.568 z M-7.4880004,-1.6919999 Q-7.4880004,-0.96000004,-7.5900006,-0.23399997 Q-7.6920004,0.4920001,-7.9440007,1.1340001 Q-8.196001,1.776,-8.640001,2.2740002 Q-9.084001,2.772,-9.768001,3.0540001 Q-10.452001,3.336,-11.424001,3.336 Q-11.6640005,3.336,-11.982,3.306 Q-12.300001,3.276,-12.504001,3.216 L-12.504001,2.316 Q-12.288,2.388,-12.000001,2.43 Q-11.712001,2.4720001,-11.448001,2.4720001 Q-10.608001,2.4720001,-10.062,2.196 Q-9.516001,1.9200001,-9.192,1.4460001 Q-8.868,0.9720001,-8.724001,0.342 Q-8.58,-0.28799987,-8.556001,-0.9839997 L-8.628,-0.9839997 Q-8.808001,-0.70799994,-9.084001,-0.48000002 Q-9.360001,-0.25199986,-9.750001,-0.119999886 Q-10.14,0.012000084,-10.668001,0.012000084 Q-11.400001,0.012000084,-11.958,-0.2939999 Q-12.516001,-0.5999999,-12.8220005,-1.1760001 Q-13.128,-1.7519999,-13.128,-2.58 Q-13.128,-3.48,-12.786,-4.128 Q-12.444,-4.776,-11.832001,-5.124 Q-11.22,-5.4719996,-10.392,-5.4719996 Q-9.780001,-5.4719996,-9.252001,-5.2380004 Q-8.724001,-5.004,-8.328001,-4.536 Q-7.9320006,-4.068,-7.7100005,-3.3600001 Q-7.4880004,-2.652,-7.4880004,-1.6919999 z M-10.392,-4.584 Q-11.136001,-4.584,-11.610001,-4.092 Q-12.084001,-3.6,-12.084001,-2.592 Q-12.084001,-1.7639999,-11.682001,-1.29 Q-11.280001,-0.816,-10.440001,-0.816 Q-9.864,-0.816,-9.444,-1.0500002 Q-9.024,-1.2839999,-8.790001,-1.644 Q-8.556001,-2.0040002,-8.556001,-2.388 Q-8.556001,-2.7719998,-8.67,-3.1620002 Q-8.784,-3.552,-9.012001,-3.876 Q-9.240001,-4.2,-9.588001,-4.392 Q-9.936001,-4.584,-10.392,-4.584 z M-0.5880008,-1.0799999 Q-0.5880008,-0.036000013,-0.7440009,0.78 Q-0.9000006,1.5960001,-1.2420006,2.1660001 Q-1.5840006,2.736,-2.1300006,3.036 Q-2.6760006,3.336,-3.4440007,3.336 Q-4.4040008,3.336,-5.034001,2.808 Q-5.6640005,2.2800002,-5.9700007,1.2900001 Q-6.276001,0.29999995,-6.276001,-1.0799999 Q-6.276001,-2.4720001,-5.994001,-3.4559999 Q-5.712001,-4.44,-5.088001,-4.9620004 Q-4.4640007,-5.4839997,-3.4440007,-5.4839997 Q-2.4840007,-5.4839997,-1.8480005,-4.9620004 Q-1.2120008,-4.44,-0.9000006,-3.4559999 Q-0.5880008,-2.4720001,-0.5880008,-1.0799999 z M-5.2200007,-1.0799999 Q-5.2200007,0.095999956,-5.046001,0.87600017 Q-4.8720007,1.656,-4.482001,2.046 Q-4.092001,2.436,-3.4440007,2.436 Q-2.796001,2.436,-2.4060006,2.052 Q-2.0160007,1.6680001,-1.8360009,0.88199997 Q-1.6560006,0.095999956,-1.6560006,-1.0799999 Q-1.6560006,-2.256,-1.8360009,-3.0300002 Q-2.0160007,-3.804,-2.4060006,-4.194 Q-2.796001,-4.584,-3.4440007,-4.584 Q-4.092001,-4.584,-4.482001,-4.194 Q-4.8720007,-3.804,-5.046001,-3.0300002 Q-5.2200007,-2.256,-5.2200007,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 43.808 37.55313)"/> +</svg> \ No newline at end of file diff --git a/tests/refs/colorbar/top.png b/tests/refs/colorbar/top.png new file mode 100644 index 0000000..a6384fe Binary files /dev/null and b/tests/refs/colorbar/top.png differ diff --git a/tests/refs/colorbar/top.svg b/tests/refs/colorbar/top.svg new file mode 100644 index 0000000..62a4270 --- /dev/null +++ b/tests/refs/colorbar/top.svg @@ -0,0 +1,404 @@ +<svg height="300" viewBox="0 0 400 300" width="400" xmlns="http://www.w3.org/2000/svg"> +<rect fill="#ffffff" height="100%" width="100%"/> +<clipPath id="plotive-clip1"> +<rect height="203.656" width="360" x="20" y="76.344"/> +</clipPath> +<g clip-path="url(#plotive-clip1)"> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#54c16a" fill-opacity="0.7019608" stroke="#54c16a" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 228.47182 150.32951)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#3ba97e" fill-opacity="0.7019608" stroke="#3ba97e" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 214.8317 115.085754)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#8fd159" fill-opacity="0.7019608" stroke="#8fd159" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 242.92818 202.54053)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#440154" fill-opacity="0.7019608" stroke="#440154" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 201.02121 168.81943)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#35a282" fill-opacity="0.7019608" stroke="#35a282" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 40 162.14455)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#31778c" fill-opacity="0.7019608" stroke="#31778c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 173.38101 96.343994)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#70cb5f" fill-opacity="0.7019608" stroke="#70cb5f" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 190.30307 231.69693)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#38638b" fill-opacity="0.7019608" stroke="#38638b" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 67.984604 200.27042)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#36698c" fill-opacity="0.7019608" stroke="#36698c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 120.19727 155.73848)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#fde724" fill-opacity="0.7019608" stroke="#fde724" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 258.7989 146.87572)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#33a083" fill-opacity="0.7019608" stroke="#33a083" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 202.37831 158.2319)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#90d159" fill-opacity="0.7019608" stroke="#90d159" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 326.33936 121.03331)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#461c61" fill-opacity="0.7019608" stroke="#461c61" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 360 205.06403)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#61c961" fill-opacity="0.7019608" stroke="#61c961" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 46.978165 260)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#279689" fill-opacity="0.7019608" stroke="#279689" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 168.67339 108.35777)"/> +</g> +<rect fill="none" height="203.656" stroke="#000000" stroke-width="1" width="360" x="20" y="76.344"/> +<path d="M20,44.344 L20,64.344 L20.5,64.344 L20.5,44.344" fill="#440154" stroke="none"/> +<path d="M20.5,44.344 L20.5,64.344 L21.5,64.344 L21.5,44.344" fill="#440255" stroke="none"/> +<path d="M21.5,44.344 L21.5,64.344 L22.5,64.344 L22.5,44.344" fill="#440455" stroke="none"/> +<path d="M22.5,44.344 L22.5,64.344 L23.5,64.344 L23.5,44.344" fill="#440556" stroke="none"/> +<path d="M23.5,44.344 L23.5,64.344 L24.5,64.344 L24.5,44.344" fill="#440756" stroke="none"/> +<path d="M24.5,44.344 L24.5,64.344 L25.5,64.344 L25.5,44.344" fill="#450857" stroke="none"/> +<path d="M25.5,44.344 L25.5,64.344 L26.5,64.344 L26.5,44.344" fill="#450957" stroke="none"/> +<path d="M26.5,44.344 L26.5,64.344 L27.5,64.344 L27.5,44.344" fill="#450b58" stroke="none"/> +<path d="M27.5,44.344 L27.5,64.344 L28.5,64.344 L28.5,44.344" fill="#450c59" stroke="none"/> +<path d="M28.5,44.344 L28.5,64.344 L29.5,64.344 L29.5,44.344" fill="#450e59" stroke="none"/> +<path d="M29.5,44.344 L29.5,64.344 L30.5,64.344 L30.5,44.344" fill="#450f5a" stroke="none"/> +<path d="M30.5,44.344 L30.5,64.344 L31.5,64.344 L31.5,44.344" fill="#45105a" stroke="none"/> +<path d="M31.5,44.344 L31.5,64.344 L32.5,64.344 L32.5,44.344" fill="#45115b" stroke="none"/> +<path d="M32.5,44.344 L32.5,64.344 L33.5,64.344 L33.5,44.344" fill="#45135c" stroke="none"/> +<path d="M33.5,44.344 L33.5,64.344 L34.5,64.344 L34.5,44.344" fill="#45145c" stroke="none"/> +<path d="M34.5,44.344 L34.5,64.344 L35.5,64.344 L35.5,44.344" fill="#45155d" stroke="none"/> +<path d="M35.5,44.344 L35.5,64.344 L36.5,64.344 L36.5,44.344" fill="#45165d" stroke="none"/> +<path d="M36.5,44.344 L36.5,64.344 L37.5,64.344 L37.5,44.344" fill="#45175e" stroke="none"/> +<path d="M37.5,44.344 L37.5,64.344 L38.5,64.344 L38.5,44.344" fill="#46185e" stroke="none"/> +<path d="M38.5,44.344 L38.5,64.344 L39.5,64.344 L39.5,44.344" fill="#46195f" stroke="none"/> +<path d="M39.5,44.344 L39.5,64.344 L40.5,64.344 L40.5,44.344" fill="#461a60" stroke="none"/> +<path d="M40.5,44.344 L40.5,64.344 L41.5,64.344 L41.5,44.344" fill="#461b60" stroke="none"/> +<path d="M41.5,44.344 L41.5,64.344 L42.5,64.344 L42.5,44.344" fill="#461c61" stroke="none"/> +<path d="M42.5,44.344 L42.5,64.344 L43.5,64.344 L43.5,44.344" fill="#461d61" stroke="none"/> +<path d="M43.5,44.344 L43.5,64.344 L44.5,64.344 L44.5,44.344" fill="#461e62" stroke="none"/> +<path d="M44.5,44.344 L44.5,64.344 L45.5,64.344 L45.5,44.344" fill="#461f63" stroke="none"/> +<path d="M45.5,44.344 L45.5,64.344 L46.5,64.344 L46.5,44.344" fill="#461f63" stroke="none"/> +<path d="M46.5,44.344 L46.5,64.344 L47.5,64.344 L47.5,44.344" fill="#462064" stroke="none"/> +<path d="M47.5,44.344 L47.5,64.344 L48.5,64.344 L48.5,44.344" fill="#462164" stroke="none"/> +<path d="M48.5,44.344 L48.5,64.344 L49.5,64.344 L49.5,44.344" fill="#462265" stroke="none"/> +<path d="M49.5,44.344 L49.5,64.344 L50.5,64.344 L50.5,44.344" fill="#462366" stroke="none"/> +<path d="M50.5,44.344 L50.5,64.344 L51.5,64.344 L51.5,44.344" fill="#462466" stroke="none"/> +<path d="M51.5,44.344 L51.5,64.344 L52.5,64.344 L52.5,44.344" fill="#462567" stroke="none"/> +<path d="M52.5,44.344 L52.5,64.344 L53.5,64.344 L53.5,44.344" fill="#462567" stroke="none"/> +<path d="M53.5,44.344 L53.5,64.344 L54.5,64.344 L54.5,44.344" fill="#462668" stroke="none"/> +<path d="M54.5,44.344 L54.5,64.344 L55.5,64.344 L55.5,44.344" fill="#462769" stroke="none"/> +<path d="M55.5,44.344 L55.5,64.344 L56.5,64.344 L56.5,44.344" fill="#462869" stroke="none"/> +<path d="M56.5,44.344 L56.5,64.344 L57.5,64.344 L57.5,44.344" fill="#46296a" stroke="none"/> +<path d="M57.5,44.344 L57.5,64.344 L58.5,64.344 L58.5,44.344" fill="#462a6a" stroke="none"/> +<path d="M58.5,44.344 L58.5,64.344 L59.5,64.344 L59.5,44.344" fill="#462a6b" stroke="none"/> +<path d="M59.5,44.344 L59.5,64.344 L60.5,64.344 L60.5,44.344" fill="#462b6c" stroke="none"/> +<path d="M60.5,44.344 L60.5,64.344 L61.5,64.344 L61.5,44.344" fill="#462c6c" stroke="none"/> +<path d="M61.5,44.344 L61.5,64.344 L62.5,64.344 L62.5,44.344" fill="#452d6d" stroke="none"/> +<path d="M62.5,44.344 L62.5,64.344 L63.5,64.344 L63.5,44.344" fill="#452e6d" stroke="none"/> +<path d="M63.5,44.344 L63.5,64.344 L64.5,64.344 L64.5,44.344" fill="#452e6e" stroke="none"/> +<path d="M64.5,44.344 L64.5,64.344 L65.5,64.344 L65.5,44.344" fill="#452f6f" stroke="none"/> +<path d="M65.5,44.344 L65.5,64.344 L66.5,64.344 L66.5,44.344" fill="#45306f" stroke="none"/> +<path d="M66.5,44.344 L66.5,64.344 L67.5,64.344 L67.5,44.344" fill="#453170" stroke="none"/> +<path d="M67.5,44.344 L67.5,64.344 L68.5,64.344 L68.5,44.344" fill="#453270" stroke="none"/> +<path d="M68.5,44.344 L68.5,64.344 L69.5,64.344 L69.5,44.344" fill="#453271" stroke="none"/> +<path d="M69.5,44.344 L69.5,64.344 L70.5,64.344 L70.5,44.344" fill="#453372" stroke="none"/> +<path d="M70.5,44.344 L70.5,64.344 L71.5,64.344 L71.5,44.344" fill="#453472" stroke="none"/> +<path d="M71.5,44.344 L71.5,64.344 L72.5,64.344 L72.5,44.344" fill="#453573" stroke="none"/> +<path d="M72.5,44.344 L72.5,64.344 L73.5,64.344 L73.5,44.344" fill="#443573" stroke="none"/> +<path d="M73.5,44.344 L73.5,64.344 L74.5,64.344 L74.5,44.344" fill="#443674" stroke="none"/> +<path d="M74.5,44.344 L74.5,64.344 L75.5,64.344 L75.5,44.344" fill="#443775" stroke="none"/> +<path d="M75.5,44.344 L75.5,64.344 L76.5,64.344 L76.5,44.344" fill="#443875" stroke="none"/> +<path d="M76.5,44.344 L76.5,64.344 L77.5,64.344 L77.5,44.344" fill="#443876" stroke="none"/> +<path d="M77.5,44.344 L77.5,64.344 L78.5,64.344 L78.5,44.344" fill="#443976" stroke="none"/> +<path d="M78.5,44.344 L78.5,64.344 L79.5,64.344 L79.5,44.344" fill="#443a77" stroke="none"/> +<path d="M79.5,44.344 L79.5,64.344 L80.5,64.344 L80.5,44.344" fill="#433b78" stroke="none"/> +<path d="M80.5,44.344 L80.5,64.344 L81.5,64.344 L81.5,44.344" fill="#433b78" stroke="none"/> +<path d="M81.5,44.344 L81.5,64.344 L82.5,64.344 L82.5,44.344" fill="#433c79" stroke="none"/> +<path d="M82.5,44.344 L82.5,64.344 L83.5,64.344 L83.5,44.344" fill="#433d79" stroke="none"/> +<path d="M83.5,44.344 L83.5,64.344 L84.5,64.344 L84.5,44.344" fill="#433e7a" stroke="none"/> +<path d="M84.5,44.344 L84.5,64.344 L85.5,64.344 L85.5,44.344" fill="#433f7b" stroke="none"/> +<path d="M85.5,44.344 L85.5,64.344 L86.5,64.344 L86.5,44.344" fill="#423f7b" stroke="none"/> +<path d="M86.5,44.344 L86.5,64.344 L87.5,64.344 L87.5,44.344" fill="#42407c" stroke="none"/> +<path d="M87.5,44.344 L87.5,64.344 L88.5,64.344 L88.5,44.344" fill="#42417c" stroke="none"/> +<path d="M88.5,44.344 L88.5,64.344 L89.5,64.344 L89.5,44.344" fill="#42417d" stroke="none"/> +<path d="M89.5,44.344 L89.5,64.344 L90.5,64.344 L90.5,44.344" fill="#41427e" stroke="none"/> +<path d="M90.5,44.344 L90.5,64.344 L91.5,64.344 L91.5,44.344" fill="#41437e" stroke="none"/> +<path d="M91.5,44.344 L91.5,64.344 L92.5,64.344 L92.5,44.344" fill="#41447f" stroke="none"/> +<path d="M92.5,44.344 L92.5,64.344 L93.5,64.344 L93.5,44.344" fill="#414480" stroke="none"/> +<path d="M93.5,44.344 L93.5,64.344 L94.5,64.344 L94.5,44.344" fill="#404580" stroke="none"/> +<path d="M94.5,44.344 L94.5,64.344 L95.5,64.344 L95.5,44.344" fill="#404681" stroke="none"/> +<path d="M95.5,44.344 L95.5,64.344 L96.5,64.344 L96.5,44.344" fill="#404781" stroke="none"/> +<path d="M96.5,44.344 L96.5,64.344 L97.5,64.344 L97.5,44.344" fill="#404782" stroke="none"/> +<path d="M97.5,44.344 L97.5,64.344 L98.5,64.344 L98.5,44.344" fill="#3f4883" stroke="none"/> +<path d="M98.5,44.344 L98.5,64.344 L99.5,64.344 L99.5,44.344" fill="#3f4983" stroke="none"/> +<path d="M99.5,44.344 L99.5,64.344 L100.5,64.344 L100.5,44.344" fill="#3f4a84" stroke="none"/> +<path d="M100.5,44.344 L100.5,64.344 L101.5,64.344 L101.5,44.344" fill="#3e4a84" stroke="none"/> +<path d="M101.5,44.344 L101.5,64.344 L102.5,64.344 L102.5,44.344" fill="#3e4b85" stroke="none"/> +<path d="M102.5,44.344 L102.5,64.344 L103.5,64.344 L103.5,44.344" fill="#3e4c86" stroke="none"/> +<path d="M103.5,44.344 L103.5,64.344 L104.5,64.344 L104.5,44.344" fill="#3d4d86" stroke="none"/> +<path d="M104.5,44.344 L104.5,64.344 L105.5,64.344 L105.5,44.344" fill="#3d4d87" stroke="none"/> +<path d="M105.5,44.344 L105.5,64.344 L106.5,64.344 L106.5,44.344" fill="#3d4e88" stroke="none"/> +<path d="M106.5,44.344 L106.5,64.344 L107.5,64.344 L107.5,44.344" fill="#3c4f88" stroke="none"/> +<path d="M107.5,44.344 L107.5,64.344 L108.5,64.344 L108.5,44.344" fill="#3c5089" stroke="none"/> +<path d="M108.5,44.344 L108.5,64.344 L109.5,64.344 L109.5,44.344" fill="#3b5089" stroke="none"/> +<path d="M109.5,44.344 L109.5,64.344 L110.5,64.344 L110.5,44.344" fill="#3b518a" stroke="none"/> +<path d="M110.5,44.344 L110.5,64.344 L111.5,64.344 L111.5,44.344" fill="#3b528a" stroke="none"/> +<path d="M111.5,44.344 L111.5,64.344 L112.5,64.344 L112.5,44.344" fill="#3b528a" stroke="none"/> +<path d="M112.5,44.344 L112.5,64.344 L113.5,64.344 L113.5,44.344" fill="#3b538a" stroke="none"/> +<path d="M113.5,44.344 L113.5,64.344 L114.5,64.344 L114.5,44.344" fill="#3b548a" stroke="none"/> +<path d="M114.5,44.344 L114.5,64.344 L115.5,64.344 L115.5,44.344" fill="#3a558a" stroke="none"/> +<path d="M115.5,44.344 L115.5,64.344 L116.5,64.344 L116.5,44.344" fill="#3a558a" stroke="none"/> +<path d="M116.5,44.344 L116.5,64.344 L117.5,64.344 L117.5,44.344" fill="#3a568a" stroke="none"/> +<path d="M117.5,44.344 L117.5,64.344 L118.5,64.344 L118.5,44.344" fill="#3a578a" stroke="none"/> +<path d="M118.5,44.344 L118.5,64.344 L119.5,64.344 L119.5,44.344" fill="#3a578b" stroke="none"/> +<path d="M119.5,44.344 L119.5,64.344 L120.5,64.344 L120.5,44.344" fill="#3a588b" stroke="none"/> +<path d="M120.5,44.344 L120.5,64.344 L121.5,64.344 L121.5,44.344" fill="#3a598b" stroke="none"/> +<path d="M121.5,44.344 L121.5,64.344 L122.5,64.344 L122.5,44.344" fill="#3a5a8b" stroke="none"/> +<path d="M122.5,44.344 L122.5,64.344 L123.5,64.344 L123.5,44.344" fill="#3a5a8b" stroke="none"/> +<path d="M123.5,44.344 L123.5,64.344 L124.5,64.344 L124.5,44.344" fill="#395b8b" stroke="none"/> +<path d="M124.5,44.344 L124.5,64.344 L125.5,64.344 L125.5,44.344" fill="#395c8b" stroke="none"/> +<path d="M125.5,44.344 L125.5,64.344 L126.5,64.344 L126.5,44.344" fill="#395c8b" stroke="none"/> +<path d="M126.5,44.344 L126.5,64.344 L127.5,64.344 L127.5,44.344" fill="#395d8b" stroke="none"/> +<path d="M127.5,44.344 L127.5,64.344 L128.5,64.344 L128.5,44.344" fill="#395e8b" stroke="none"/> +<path d="M128.5,44.344 L128.5,64.344 L129.5,64.344 L129.5,44.344" fill="#395e8b" stroke="none"/> +<path d="M129.5,44.344 L129.5,64.344 L130.5,64.344 L130.5,44.344" fill="#395f8b" stroke="none"/> +<path d="M130.5,44.344 L130.5,64.344 L131.5,64.344 L131.5,44.344" fill="#38608b" stroke="none"/> +<path d="M131.5,44.344 L131.5,64.344 L132.5,64.344 L132.5,44.344" fill="#38618b" stroke="none"/> +<path d="M132.5,44.344 L132.5,64.344 L133.5,64.344 L133.5,44.344" fill="#38618b" stroke="none"/> +<path d="M133.5,44.344 L133.5,64.344 L134.5,64.344 L134.5,44.344" fill="#38628b" stroke="none"/> +<path d="M134.5,44.344 L134.5,64.344 L135.5,64.344 L135.5,44.344" fill="#38638b" stroke="none"/> +<path d="M135.5,44.344 L135.5,64.344 L136.5,64.344 L136.5,44.344" fill="#38638b" stroke="none"/> +<path d="M136.5,44.344 L136.5,64.344 L137.5,64.344 L137.5,44.344" fill="#37648b" stroke="none"/> +<path d="M137.5,44.344 L137.5,64.344 L138.5,64.344 L138.5,44.344" fill="#37658b" stroke="none"/> +<path d="M138.5,44.344 L138.5,64.344 L139.5,64.344 L139.5,44.344" fill="#37658c" stroke="none"/> +<path d="M139.5,44.344 L139.5,64.344 L140.5,64.344 L140.5,44.344" fill="#37668c" stroke="none"/> +<path d="M140.5,44.344 L140.5,64.344 L141.5,64.344 L141.5,44.344" fill="#37678c" stroke="none"/> +<path d="M141.5,44.344 L141.5,64.344 L142.5,64.344 L142.5,44.344" fill="#36688c" stroke="none"/> +<path d="M142.5,44.344 L142.5,64.344 L143.5,64.344 L143.5,44.344" fill="#36688c" stroke="none"/> +<path d="M143.5,44.344 L143.5,64.344 L144.5,64.344 L144.5,44.344" fill="#36698c" stroke="none"/> +<path d="M144.5,44.344 L144.5,64.344 L145.5,64.344 L145.5,44.344" fill="#366a8c" stroke="none"/> +<path d="M145.5,44.344 L145.5,64.344 L146.5,64.344 L146.5,44.344" fill="#366a8c" stroke="none"/> +<path d="M146.5,44.344 L146.5,64.344 L147.5,64.344 L147.5,44.344" fill="#356b8c" stroke="none"/> +<path d="M147.5,44.344 L147.5,64.344 L148.5,64.344 L148.5,44.344" fill="#356c8c" stroke="none"/> +<path d="M148.5,44.344 L148.5,64.344 L149.5,64.344 L149.5,44.344" fill="#356c8c" stroke="none"/> +<path d="M149.5,44.344 L149.5,64.344 L150.5,64.344 L150.5,44.344" fill="#356d8c" stroke="none"/> +<path d="M150.5,44.344 L150.5,64.344 L151.5,64.344 L151.5,44.344" fill="#346e8c" stroke="none"/> +<path d="M151.5,44.344 L151.5,64.344 L152.5,64.344 L152.5,44.344" fill="#346e8c" stroke="none"/> +<path d="M152.5,44.344 L152.5,64.344 L153.5,64.344 L153.5,44.344" fill="#346f8c" stroke="none"/> +<path d="M153.5,44.344 L153.5,64.344 L154.5,64.344 L154.5,44.344" fill="#34708c" stroke="none"/> +<path d="M154.5,44.344 L154.5,64.344 L155.5,64.344 L155.5,44.344" fill="#33708c" stroke="none"/> +<path d="M155.5,44.344 L155.5,64.344 L156.5,64.344 L156.5,44.344" fill="#33718c" stroke="none"/> +<path d="M156.5,44.344 L156.5,64.344 L157.5,64.344 L157.5,44.344" fill="#33728c" stroke="none"/> +<path d="M157.5,44.344 L157.5,64.344 L158.5,64.344 L158.5,44.344" fill="#33728c" stroke="none"/> +<path d="M158.5,44.344 L158.5,64.344 L159.5,64.344 L159.5,44.344" fill="#32738c" stroke="none"/> +<path d="M159.5,44.344 L159.5,64.344 L160.5,64.344 L160.5,44.344" fill="#32748c" stroke="none"/> +<path d="M160.5,44.344 L160.5,64.344 L161.5,64.344 L161.5,44.344" fill="#32758c" stroke="none"/> +<path d="M161.5,44.344 L161.5,64.344 L162.5,64.344 L162.5,44.344" fill="#31758c" stroke="none"/> +<path d="M162.5,44.344 L162.5,64.344 L163.5,64.344 L163.5,44.344" fill="#31768c" stroke="none"/> +<path d="M163.5,44.344 L163.5,64.344 L164.5,64.344 L164.5,44.344" fill="#31778c" stroke="none"/> +<path d="M164.5,44.344 L164.5,64.344 L165.5,64.344 L165.5,44.344" fill="#31778c" stroke="none"/> +<path d="M165.5,44.344 L165.5,64.344 L166.5,64.344 L166.5,44.344" fill="#30788c" stroke="none"/> +<path d="M166.5,44.344 L166.5,64.344 L167.5,64.344 L167.5,44.344" fill="#30798c" stroke="none"/> +<path d="M167.5,44.344 L167.5,64.344 L168.5,64.344 L168.5,44.344" fill="#30798c" stroke="none"/> +<path d="M168.5,44.344 L168.5,64.344 L169.5,64.344 L169.5,44.344" fill="#2f7a8c" stroke="none"/> +<path d="M169.5,44.344 L169.5,64.344 L170.5,64.344 L170.5,44.344" fill="#2f7b8c" stroke="none"/> +<path d="M170.5,44.344 L170.5,64.344 L171.5,64.344 L171.5,44.344" fill="#2f7b8c" stroke="none"/> +<path d="M171.5,44.344 L171.5,64.344 L172.5,64.344 L172.5,44.344" fill="#2e7c8c" stroke="none"/> +<path d="M172.5,44.344 L172.5,64.344 L173.5,64.344 L173.5,44.344" fill="#2e7d8c" stroke="none"/> +<path d="M173.5,44.344 L173.5,64.344 L174.5,64.344 L174.5,44.344" fill="#2d7d8c" stroke="none"/> +<path d="M174.5,44.344 L174.5,64.344 L175.5,64.344 L175.5,44.344" fill="#2d7e8c" stroke="none"/> +<path d="M175.5,44.344 L175.5,64.344 L176.5,64.344 L176.5,44.344" fill="#2d7f8c" stroke="none"/> +<path d="M176.5,44.344 L176.5,64.344 L177.5,64.344 L177.5,44.344" fill="#2c7f8c" stroke="none"/> +<path d="M177.5,44.344 L177.5,64.344 L178.5,64.344 L178.5,44.344" fill="#2c808c" stroke="none"/> +<path d="M178.5,44.344 L178.5,64.344 L179.5,64.344 L179.5,44.344" fill="#2b818c" stroke="none"/> +<path d="M179.5,44.344 L179.5,64.344 L180.5,64.344 L180.5,44.344" fill="#2b818c" stroke="none"/> +<path d="M180.5,44.344 L180.5,64.344 L181.5,64.344 L181.5,44.344" fill="#2b828c" stroke="none"/> +<path d="M181.5,44.344 L181.5,64.344 L182.5,64.344 L182.5,44.344" fill="#2a838c" stroke="none"/> +<path d="M182.5,44.344 L182.5,64.344 L183.5,64.344 L183.5,44.344" fill="#2a838c" stroke="none"/> +<path d="M183.5,44.344 L183.5,64.344 L184.5,64.344 L184.5,44.344" fill="#29848c" stroke="none"/> +<path d="M184.5,44.344 L184.5,64.344 L185.5,64.344 L185.5,44.344" fill="#29858c" stroke="none"/> +<path d="M185.5,44.344 L185.5,64.344 L186.5,64.344 L186.5,44.344" fill="#28868c" stroke="none"/> +<path d="M186.5,44.344 L186.5,64.344 L187.5,64.344 L187.5,44.344" fill="#28868c" stroke="none"/> +<path d="M187.5,44.344 L187.5,64.344 L188.5,64.344 L188.5,44.344" fill="#27878c" stroke="none"/> +<path d="M188.5,44.344 L188.5,64.344 L189.5,64.344 L189.5,44.344" fill="#27888c" stroke="none"/> +<path d="M189.5,44.344 L189.5,64.344 L190.5,64.344 L190.5,44.344" fill="#26888c" stroke="none"/> +<path d="M190.5,44.344 L190.5,64.344 L191.5,64.344 L191.5,44.344" fill="#26898c" stroke="none"/> +<path d="M191.5,44.344 L191.5,64.344 L192.5,64.344 L192.5,44.344" fill="#258a8c" stroke="none"/> +<path d="M192.5,44.344 L192.5,64.344 L193.5,64.344 L193.5,44.344" fill="#258a8c" stroke="none"/> +<path d="M193.5,44.344 L193.5,64.344 L194.5,64.344 L194.5,44.344" fill="#248b8c" stroke="none"/> +<path d="M194.5,44.344 L194.5,64.344 L195.5,64.344 L195.5,44.344" fill="#238c8c" stroke="none"/> +<path d="M195.5,44.344 L195.5,64.344 L196.5,64.344 L196.5,44.344" fill="#238c8c" stroke="none"/> +<path d="M196.5,44.344 L196.5,64.344 L197.5,64.344 L197.5,44.344" fill="#228d8c" stroke="none"/> +<path d="M197.5,44.344 L197.5,64.344 L198.5,64.344 L198.5,44.344" fill="#218e8c" stroke="none"/> +<path d="M198.5,44.344 L198.5,64.344 L199.5,64.344 L199.5,44.344" fill="#218e8c" stroke="none"/> +<path d="M199.5,44.344 L199.5,64.344 L200.5,64.344 L200.5,44.344" fill="#208f8c" stroke="none"/> +<path d="M200.5,44.344 L200.5,64.344 L201.5,64.344 L201.5,44.344" fill="#21908c" stroke="none"/> +<path d="M201.5,44.344 L201.5,64.344 L202.5,64.344 L202.5,44.344" fill="#21908b" stroke="none"/> +<path d="M202.5,44.344 L202.5,64.344 L203.5,64.344 L203.5,44.344" fill="#22918b" stroke="none"/> +<path d="M203.5,44.344 L203.5,64.344 L204.5,64.344 L204.5,44.344" fill="#23928b" stroke="none"/> +<path d="M204.5,44.344 L204.5,64.344 L205.5,64.344 L205.5,44.344" fill="#24928a" stroke="none"/> +<path d="M205.5,44.344 L205.5,64.344 L206.5,64.344 L206.5,44.344" fill="#24938a" stroke="none"/> +<path d="M206.5,44.344 L206.5,64.344 L207.5,64.344 L207.5,44.344" fill="#25948a" stroke="none"/> +<path d="M207.5,44.344 L207.5,64.344 L208.5,64.344 L208.5,44.344" fill="#26948a" stroke="none"/> +<path d="M208.5,44.344 L208.5,64.344 L209.5,64.344 L209.5,44.344" fill="#269589" stroke="none"/> +<path d="M209.5,44.344 L209.5,64.344 L210.5,64.344 L210.5,44.344" fill="#279589" stroke="none"/> +<path d="M210.5,44.344 L210.5,64.344 L211.5,64.344 L211.5,44.344" fill="#289689" stroke="none"/> +<path d="M211.5,44.344 L211.5,64.344 L212.5,64.344 L212.5,44.344" fill="#289788" stroke="none"/> +<path d="M212.5,44.344 L212.5,64.344 L213.5,64.344 L213.5,44.344" fill="#299788" stroke="none"/> +<path d="M213.5,44.344 L213.5,64.344 L214.5,64.344 L214.5,44.344" fill="#2a9888" stroke="none"/> +<path d="M214.5,44.344 L214.5,64.344 L215.5,64.344 L215.5,44.344" fill="#2b9987" stroke="none"/> +<path d="M215.5,44.344 L215.5,64.344 L216.5,64.344 L216.5,44.344" fill="#2b9987" stroke="none"/> +<path d="M216.5,44.344 L216.5,64.344 L217.5,64.344 L217.5,44.344" fill="#2c9a87" stroke="none"/> +<path d="M217.5,44.344 L217.5,64.344 L218.5,64.344 L218.5,44.344" fill="#2d9b86" stroke="none"/> +<path d="M218.5,44.344 L218.5,64.344 L219.5,64.344 L219.5,44.344" fill="#2d9b86" stroke="none"/> +<path d="M219.5,44.344 L219.5,64.344 L220.5,64.344 L220.5,44.344" fill="#2e9c86" stroke="none"/> +<path d="M220.5,44.344 L220.5,64.344 L221.5,64.344 L221.5,44.344" fill="#2f9c85" stroke="none"/> +<path d="M221.5,44.344 L221.5,64.344 L222.5,64.344 L222.5,44.344" fill="#2f9d85" stroke="none"/> +<path d="M222.5,44.344 L222.5,64.344 L223.5,64.344 L223.5,44.344" fill="#309e84" stroke="none"/> +<path d="M223.5,44.344 L223.5,64.344 L224.5,64.344 L224.5,44.344" fill="#319e84" stroke="none"/> +<path d="M224.5,44.344 L224.5,64.344 L225.5,64.344 L225.5,44.344" fill="#319f84" stroke="none"/> +<path d="M225.5,44.344 L225.5,64.344 L226.5,64.344 L226.5,44.344" fill="#32a083" stroke="none"/> +<path d="M226.5,44.344 L226.5,64.344 L227.5,64.344 L227.5,44.344" fill="#33a083" stroke="none"/> +<path d="M227.5,44.344 L227.5,64.344 L228.5,64.344 L228.5,44.344" fill="#33a183" stroke="none"/> +<path d="M228.5,44.344 L228.5,64.344 L229.5,64.344 L229.5,44.344" fill="#34a282" stroke="none"/> +<path d="M229.5,44.344 L229.5,64.344 L230.5,64.344 L230.5,44.344" fill="#35a282" stroke="none"/> +<path d="M230.5,44.344 L230.5,64.344 L231.5,64.344 L231.5,44.344" fill="#35a382" stroke="none"/> +<path d="M231.5,44.344 L231.5,64.344 L232.5,64.344 L232.5,44.344" fill="#36a381" stroke="none"/> +<path d="M232.5,44.344 L232.5,64.344 L233.5,64.344 L233.5,44.344" fill="#37a481" stroke="none"/> +<path d="M233.5,44.344 L233.5,64.344 L234.5,64.344 L234.5,44.344" fill="#37a580" stroke="none"/> +<path d="M234.5,44.344 L234.5,64.344 L235.5,64.344 L235.5,44.344" fill="#38a580" stroke="none"/> +<path d="M235.5,44.344 L235.5,64.344 L236.5,64.344 L236.5,44.344" fill="#39a680" stroke="none"/> +<path d="M236.5,44.344 L236.5,64.344 L237.5,64.344 L237.5,44.344" fill="#39a77f" stroke="none"/> +<path d="M237.5,44.344 L237.5,64.344 L238.5,64.344 L238.5,44.344" fill="#3aa77f" stroke="none"/> +<path d="M238.5,44.344 L238.5,64.344 L239.5,64.344 L239.5,44.344" fill="#3aa87e" stroke="none"/> +<path d="M239.5,44.344 L239.5,64.344 L240.5,64.344 L240.5,44.344" fill="#3ba97e" stroke="none"/> +<path d="M240.5,44.344 L240.5,64.344 L241.5,64.344 L241.5,44.344" fill="#3ca97d" stroke="none"/> +<path d="M241.5,44.344 L241.5,64.344 L242.5,64.344 L242.5,44.344" fill="#3caa7d" stroke="none"/> +<path d="M242.5,44.344 L242.5,64.344 L243.5,64.344 L243.5,44.344" fill="#3daa7d" stroke="none"/> +<path d="M243.5,44.344 L243.5,64.344 L244.5,64.344 L244.5,44.344" fill="#3eab7c" stroke="none"/> +<path d="M244.5,44.344 L244.5,64.344 L245.5,64.344 L245.5,44.344" fill="#3eac7c" stroke="none"/> +<path d="M245.5,44.344 L245.5,64.344 L246.5,64.344 L246.5,44.344" fill="#3fac7b" stroke="none"/> +<path d="M246.5,44.344 L246.5,64.344 L247.5,64.344 L247.5,44.344" fill="#40ad7b" stroke="none"/> +<path d="M247.5,44.344 L247.5,64.344 L248.5,64.344 L248.5,44.344" fill="#40ae7a" stroke="none"/> +<path d="M248.5,44.344 L248.5,64.344 L249.5,64.344 L249.5,44.344" fill="#41ae7a" stroke="none"/> +<path d="M249.5,44.344 L249.5,64.344 L250.5,64.344 L250.5,44.344" fill="#42af79" stroke="none"/> +<path d="M250.5,44.344 L250.5,64.344 L251.5,64.344 L251.5,44.344" fill="#42af79" stroke="none"/> +<path d="M251.5,44.344 L251.5,64.344 L252.5,64.344 L252.5,44.344" fill="#43b078" stroke="none"/> +<path d="M252.5,44.344 L252.5,64.344 L253.5,64.344 L253.5,44.344" fill="#43b178" stroke="none"/> +<path d="M253.5,44.344 L253.5,64.344 L254.5,64.344 L254.5,44.344" fill="#44b178" stroke="none"/> +<path d="M254.5,44.344 L254.5,64.344 L255.5,64.344 L255.5,44.344" fill="#45b277" stroke="none"/> +<path d="M255.5,44.344 L255.5,64.344 L256.5,64.344 L256.5,44.344" fill="#45b377" stroke="none"/> +<path d="M256.5,44.344 L256.5,64.344 L257.5,64.344 L257.5,44.344" fill="#46b376" stroke="none"/> +<path d="M257.5,44.344 L257.5,64.344 L258.5,64.344 L258.5,44.344" fill="#47b476" stroke="none"/> +<path d="M258.5,44.344 L258.5,64.344 L259.5,64.344 L259.5,44.344" fill="#47b575" stroke="none"/> +<path d="M259.5,44.344 L259.5,64.344 L260.5,64.344 L260.5,44.344" fill="#48b575" stroke="none"/> +<path d="M260.5,44.344 L260.5,64.344 L261.5,64.344 L261.5,44.344" fill="#49b674" stroke="none"/> +<path d="M261.5,44.344 L261.5,64.344 L262.5,64.344 L262.5,44.344" fill="#49b673" stroke="none"/> +<path d="M262.5,44.344 L262.5,64.344 L263.5,64.344 L263.5,44.344" fill="#4ab773" stroke="none"/> +<path d="M263.5,44.344 L263.5,64.344 L264.5,64.344 L264.5,44.344" fill="#4bb872" stroke="none"/> +<path d="M264.5,44.344 L264.5,64.344 L265.5,64.344 L265.5,44.344" fill="#4bb872" stroke="none"/> +<path d="M265.5,44.344 L265.5,64.344 L266.5,64.344 L266.5,44.344" fill="#4cb971" stroke="none"/> +<path d="M266.5,44.344 L266.5,64.344 L267.5,64.344 L267.5,44.344" fill="#4cba71" stroke="none"/> +<path d="M267.5,44.344 L267.5,64.344 L268.5,64.344 L268.5,44.344" fill="#4dba70" stroke="none"/> +<path d="M268.5,44.344 L268.5,64.344 L269.5,64.344 L269.5,44.344" fill="#4ebb70" stroke="none"/> +<path d="M269.5,44.344 L269.5,64.344 L270.5,64.344 L270.5,44.344" fill="#4ebb6f" stroke="none"/> +<path d="M270.5,44.344 L270.5,64.344 L271.5,64.344 L271.5,44.344" fill="#4fbc6e" stroke="none"/> +<path d="M271.5,44.344 L271.5,64.344 L272.5,64.344 L272.5,44.344" fill="#50bd6e" stroke="none"/> +<path d="M272.5,44.344 L272.5,64.344 L273.5,64.344 L273.5,44.344" fill="#50bd6d" stroke="none"/> +<path d="M273.5,44.344 L273.5,64.344 L274.5,64.344 L274.5,44.344" fill="#51be6d" stroke="none"/> +<path d="M274.5,44.344 L274.5,64.344 L275.5,64.344 L275.5,44.344" fill="#51bf6c" stroke="none"/> +<path d="M275.5,44.344 L275.5,64.344 L276.5,64.344 L276.5,44.344" fill="#52bf6b" stroke="none"/> +<path d="M276.5,44.344 L276.5,64.344 L277.5,64.344 L277.5,44.344" fill="#53c06b" stroke="none"/> +<path d="M277.5,44.344 L277.5,64.344 L278.5,64.344 L278.5,44.344" fill="#53c06a" stroke="none"/> +<path d="M278.5,44.344 L278.5,64.344 L279.5,64.344 L279.5,44.344" fill="#54c16a" stroke="none"/> +<path d="M279.5,44.344 L279.5,64.344 L280.5,64.344 L280.5,44.344" fill="#55c269" stroke="none"/> +<path d="M280.5,44.344 L280.5,64.344 L281.5,64.344 L281.5,44.344" fill="#55c268" stroke="none"/> +<path d="M281.5,44.344 L281.5,64.344 L282.5,64.344 L282.5,44.344" fill="#56c368" stroke="none"/> +<path d="M282.5,44.344 L282.5,64.344 L283.5,64.344 L283.5,44.344" fill="#57c467" stroke="none"/> +<path d="M283.5,44.344 L283.5,64.344 L284.5,64.344 L284.5,44.344" fill="#57c466" stroke="none"/> +<path d="M284.5,44.344 L284.5,64.344 L285.5,64.344 L285.5,44.344" fill="#58c566" stroke="none"/> +<path d="M285.5,44.344 L285.5,64.344 L286.5,64.344 L286.5,44.344" fill="#58c565" stroke="none"/> +<path d="M286.5,44.344 L286.5,64.344 L287.5,64.344 L287.5,44.344" fill="#59c664" stroke="none"/> +<path d="M287.5,44.344 L287.5,64.344 L288.5,64.344 L288.5,44.344" fill="#5ac763" stroke="none"/> +<path d="M288.5,44.344 L288.5,64.344 L289.5,64.344 L289.5,44.344" fill="#5ac763" stroke="none"/> +<path d="M289.5,44.344 L289.5,64.344 L290.5,64.344 L290.5,44.344" fill="#5bc862" stroke="none"/> +<path d="M290.5,44.344 L290.5,64.344 L291.5,64.344 L291.5,44.344" fill="#5ec862" stroke="none"/> +<path d="M291.5,44.344 L291.5,64.344 L292.5,64.344 L292.5,44.344" fill="#60c961" stroke="none"/> +<path d="M292.5,44.344 L292.5,64.344 L293.5,64.344 L293.5,44.344" fill="#63c961" stroke="none"/> +<path d="M293.5,44.344 L293.5,64.344 L294.5,64.344 L294.5,44.344" fill="#65ca61" stroke="none"/> +<path d="M294.5,44.344 L294.5,64.344 L295.5,64.344 L295.5,44.344" fill="#67ca60" stroke="none"/> +<path d="M295.5,44.344 L295.5,64.344 L296.5,64.344 L296.5,44.344" fill="#6aca60" stroke="none"/> +<path d="M296.5,44.344 L296.5,64.344 L297.5,64.344 L297.5,44.344" fill="#6ccb60" stroke="none"/> +<path d="M297.5,44.344 L297.5,64.344 L298.5,64.344 L298.5,44.344" fill="#6ecb5f" stroke="none"/> +<path d="M298.5,44.344 L298.5,64.344 L299.5,64.344 L299.5,44.344" fill="#70cb5f" stroke="none"/> +<path d="M299.5,44.344 L299.5,64.344 L300.5,64.344 L300.5,44.344" fill="#73cc5f" stroke="none"/> +<path d="M300.5,44.344 L300.5,64.344 L301.5,64.344 L301.5,44.344" fill="#75cc5e" stroke="none"/> +<path d="M301.5,44.344 L301.5,64.344 L302.5,64.344 L302.5,44.344" fill="#77cd5e" stroke="none"/> +<path d="M302.5,44.344 L302.5,64.344 L303.5,64.344 L303.5,44.344" fill="#79cd5e" stroke="none"/> +<path d="M303.5,44.344 L303.5,64.344 L304.5,64.344 L304.5,44.344" fill="#7bcd5d" stroke="none"/> +<path d="M304.5,44.344 L304.5,64.344 L305.5,64.344 L305.5,44.344" fill="#7dce5d" stroke="none"/> +<path d="M305.5,44.344 L305.5,64.344 L306.5,64.344 L306.5,44.344" fill="#7fce5c" stroke="none"/> +<path d="M306.5,44.344 L306.5,64.344 L307.5,64.344 L307.5,44.344" fill="#81cf5c" stroke="none"/> +<path d="M307.5,44.344 L307.5,64.344 L308.5,64.344 L308.5,44.344" fill="#83cf5c" stroke="none"/> +<path d="M308.5,44.344 L308.5,64.344 L309.5,64.344 L309.5,44.344" fill="#85cf5b" stroke="none"/> +<path d="M309.5,44.344 L309.5,64.344 L310.5,64.344 L310.5,44.344" fill="#87d05b" stroke="none"/> +<path d="M310.5,44.344 L310.5,64.344 L311.5,64.344 L311.5,44.344" fill="#89d05b" stroke="none"/> +<path d="M311.5,44.344 L311.5,64.344 L312.5,64.344 L312.5,44.344" fill="#8bd05a" stroke="none"/> +<path d="M312.5,44.344 L312.5,64.344 L313.5,64.344 L313.5,44.344" fill="#8dd15a" stroke="none"/> +<path d="M313.5,44.344 L313.5,64.344 L314.5,64.344 L314.5,44.344" fill="#8fd159" stroke="none"/> +<path d="M314.5,44.344 L314.5,64.344 L315.5,64.344 L315.5,44.344" fill="#91d159" stroke="none"/> +<path d="M315.5,44.344 L315.5,64.344 L316.5,64.344 L316.5,44.344" fill="#93d258" stroke="none"/> +<path d="M316.5,44.344 L316.5,64.344 L317.5,64.344 L317.5,44.344" fill="#95d258" stroke="none"/> +<path d="M317.5,44.344 L317.5,64.344 L318.5,64.344 L318.5,44.344" fill="#96d358" stroke="none"/> +<path d="M318.5,44.344 L318.5,64.344 L319.5,64.344 L319.5,44.344" fill="#98d357" stroke="none"/> +<path d="M319.5,44.344 L319.5,64.344 L320.5,64.344 L320.5,44.344" fill="#9ad357" stroke="none"/> +<path d="M320.5,44.344 L320.5,64.344 L321.5,64.344 L321.5,44.344" fill="#9cd456" stroke="none"/> +<path d="M321.5,44.344 L321.5,64.344 L322.5,64.344 L322.5,44.344" fill="#9ed456" stroke="none"/> +<path d="M322.5,44.344 L322.5,64.344 L323.5,64.344 L323.5,44.344" fill="#a0d455" stroke="none"/> +<path d="M323.5,44.344 L323.5,64.344 L324.5,64.344 L324.5,44.344" fill="#a1d555" stroke="none"/> +<path d="M324.5,44.344 L324.5,64.344 L325.5,64.344 L325.5,44.344" fill="#a3d554" stroke="none"/> +<path d="M325.5,44.344 L325.5,64.344 L326.5,64.344 L326.5,44.344" fill="#a5d554" stroke="none"/> +<path d="M326.5,44.344 L326.5,64.344 L327.5,64.344 L327.5,44.344" fill="#a7d653" stroke="none"/> +<path d="M327.5,44.344 L327.5,64.344 L328.5,64.344 L328.5,44.344" fill="#a8d653" stroke="none"/> +<path d="M328.5,44.344 L328.5,64.344 L329.5,64.344 L329.5,44.344" fill="#aad752" stroke="none"/> +<path d="M329.5,44.344 L329.5,64.344 L330.5,64.344 L330.5,44.344" fill="#acd752" stroke="none"/> +<path d="M330.5,44.344 L330.5,64.344 L331.5,64.344 L331.5,44.344" fill="#aed751" stroke="none"/> +<path d="M331.5,44.344 L331.5,64.344 L332.5,64.344 L332.5,44.344" fill="#afd851" stroke="none"/> +<path d="M332.5,44.344 L332.5,64.344 L333.5,64.344 L333.5,44.344" fill="#b1d850" stroke="none"/> +<path d="M333.5,44.344 L333.5,64.344 L334.5,64.344 L334.5,44.344" fill="#b3d84f" stroke="none"/> +<path d="M334.5,44.344 L334.5,64.344 L335.5,64.344 L335.5,44.344" fill="#b4d94f" stroke="none"/> +<path d="M335.5,44.344 L335.5,64.344 L336.5,64.344 L336.5,44.344" fill="#b6d94e" stroke="none"/> +<path d="M336.5,44.344 L336.5,64.344 L337.5,64.344 L337.5,44.344" fill="#b8d94e" stroke="none"/> +<path d="M337.5,44.344 L337.5,64.344 L338.5,64.344 L338.5,44.344" fill="#bada4d" stroke="none"/> +<path d="M338.5,44.344 L338.5,64.344 L339.5,64.344 L339.5,44.344" fill="#bbda4d" stroke="none"/> +<path d="M339.5,44.344 L339.5,64.344 L340.5,64.344 L340.5,44.344" fill="#bdda4c" stroke="none"/> +<path d="M340.5,44.344 L340.5,64.344 L341.5,64.344 L341.5,44.344" fill="#bfdb4b" stroke="none"/> +<path d="M341.5,44.344 L341.5,64.344 L342.5,64.344 L342.5,44.344" fill="#c0db4b" stroke="none"/> +<path d="M342.5,44.344 L342.5,64.344 L343.5,64.344 L343.5,44.344" fill="#c2db4a" stroke="none"/> +<path d="M343.5,44.344 L343.5,64.344 L344.5,64.344 L344.5,44.344" fill="#c4dc49" stroke="none"/> +<path d="M344.5,44.344 L344.5,64.344 L345.5,64.344 L345.5,44.344" fill="#c5dc49" stroke="none"/> +<path d="M345.5,44.344 L345.5,64.344 L346.5,64.344 L346.5,44.344" fill="#c7dc48" stroke="none"/> +<path d="M346.5,44.344 L346.5,64.344 L347.5,64.344 L347.5,44.344" fill="#c9dd47" stroke="none"/> +<path d="M347.5,44.344 L347.5,64.344 L348.5,64.344 L348.5,44.344" fill="#cadd47" stroke="none"/> +<path d="M348.5,44.344 L348.5,64.344 L349.5,64.344 L349.5,44.344" fill="#ccdd46" stroke="none"/> +<path d="M349.5,44.344 L349.5,64.344 L350.5,64.344 L350.5,44.344" fill="#cdde45" stroke="none"/> +<path d="M350.5,44.344 L350.5,64.344 L351.5,64.344 L351.5,44.344" fill="#cfde44" stroke="none"/> +<path d="M351.5,44.344 L351.5,64.344 L352.5,64.344 L352.5,44.344" fill="#d1de44" stroke="none"/> +<path d="M352.5,44.344 L352.5,64.344 L353.5,64.344 L353.5,44.344" fill="#d2df43" stroke="none"/> +<path d="M353.5,44.344 L353.5,64.344 L354.5,64.344 L354.5,44.344" fill="#d4df42" stroke="none"/> +<path d="M354.5,44.344 L354.5,64.344 L355.5,64.344 L355.5,44.344" fill="#d6df41" stroke="none"/> +<path d="M355.5,44.344 L355.5,64.344 L356.5,64.344 L356.5,44.344" fill="#d7e040" stroke="none"/> +<path d="M356.5,44.344 L356.5,64.344 L357.5,64.344 L357.5,44.344" fill="#d9e040" stroke="none"/> +<path d="M357.5,44.344 L357.5,64.344 L358.5,64.344 L358.5,44.344" fill="#dae03f" stroke="none"/> +<path d="M358.5,44.344 L358.5,64.344 L359.5,64.344 L359.5,44.344" fill="#dce13e" stroke="none"/> +<path d="M359.5,44.344 L359.5,64.344 L360.5,64.344 L360.5,44.344" fill="#dee13d" stroke="none"/> +<path d="M360.5,44.344 L360.5,64.344 L361.5,64.344 L361.5,44.344" fill="#dfe13c" stroke="none"/> +<path d="M361.5,44.344 L361.5,64.344 L362.5,64.344 L362.5,44.344" fill="#e1e13b" stroke="none"/> +<path d="M362.5,44.344 L362.5,64.344 L363.5,64.344 L363.5,44.344" fill="#e2e23a" stroke="none"/> +<path d="M363.5,44.344 L363.5,64.344 L364.5,64.344 L364.5,44.344" fill="#e4e239" stroke="none"/> +<path d="M364.5,44.344 L364.5,64.344 L365.5,64.344 L365.5,44.344" fill="#e6e238" stroke="none"/> +<path d="M365.5,44.344 L365.5,64.344 L366.5,64.344 L366.5,44.344" fill="#e7e337" stroke="none"/> +<path d="M366.5,44.344 L366.5,64.344 L367.5,64.344 L367.5,44.344" fill="#e9e336" stroke="none"/> +<path d="M367.5,44.344 L367.5,64.344 L368.5,64.344 L368.5,44.344" fill="#eae335" stroke="none"/> +<path d="M368.5,44.344 L368.5,64.344 L369.5,64.344 L369.5,44.344" fill="#ece434" stroke="none"/> +<path d="M369.5,44.344 L369.5,64.344 L370.5,64.344 L370.5,44.344" fill="#ede433" stroke="none"/> +<path d="M370.5,44.344 L370.5,64.344 L371.5,64.344 L371.5,44.344" fill="#efe431" stroke="none"/> +<path d="M371.5,44.344 L371.5,64.344 L372.5,64.344 L372.5,44.344" fill="#f1e530" stroke="none"/> +<path d="M372.5,44.344 L372.5,64.344 L373.5,64.344 L373.5,44.344" fill="#f2e52f" stroke="none"/> +<path d="M373.5,44.344 L373.5,64.344 L374.5,64.344 L374.5,44.344" fill="#f4e52d" stroke="none"/> +<path d="M374.5,44.344 L374.5,64.344 L375.5,64.344 L375.5,44.344" fill="#f5e62c" stroke="none"/> +<path d="M375.5,44.344 L375.5,64.344 L376.5,64.344 L376.5,44.344" fill="#f7e62b" stroke="none"/> +<path d="M376.5,44.344 L376.5,64.344 L377.5,64.344 L377.5,44.344" fill="#f8e629" stroke="none"/> +<path d="M377.5,44.344 L377.5,64.344 L378.5,64.344 L378.5,44.344" fill="#fae627" stroke="none"/> +<path d="M378.5,44.344 L378.5,64.344 L379.5,64.344 L379.5,44.344" fill="#fbe726" stroke="none"/> +<path d="M379.5,44.344 L379.5,64.344 L380,64.344 L380,44.344" fill="#fde724" stroke="none"/> +<path d="M20,44.344 L380,44.344 L380,64.344 L20,64.344 z" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M39.962124,44.344 L39.962124,40.344" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,-7.8120003 Q-5.6280003,-6.768,-5.7840004,-5.952 Q-5.94,-5.136,-6.282,-4.566 Q-6.624,-3.996,-7.17,-3.696 Q-7.716,-3.396,-8.484,-3.396 Q-9.444,-3.396,-10.074,-3.924 Q-10.704,-4.452,-11.01,-5.442 Q-11.316,-6.432,-11.316,-7.8120003 Q-11.316,-9.204,-11.034,-10.188 Q-10.752001,-11.172,-10.128,-11.694 Q-9.504,-12.216,-8.484,-12.216 Q-7.524,-12.216,-6.888,-11.694 Q-6.2520003,-11.172,-5.94,-10.188 Q-5.6280003,-9.204,-5.6280003,-7.8120003 z M-10.26,-7.8120003 Q-10.26,-6.636,-10.086,-5.856 Q-9.912001,-5.076,-9.522,-4.686 Q-9.132,-4.296,-8.484,-4.296 Q-7.8360004,-4.296,-7.446,-4.6800003 Q-7.056,-5.064,-6.8760004,-5.8500004 Q-6.696,-6.636,-6.696,-7.8120003 Q-6.696,-8.988,-6.8760004,-9.762 Q-7.056,-10.536,-7.446,-10.926 Q-7.8360004,-11.316,-8.484,-11.316 Q-9.132,-11.316,-9.522,-10.926 Q-9.912001,-10.536,-10.086,-9.762 Q-10.26,-8.988,-10.26,-7.8120003 z M-4.1760006,-4.164 Q-4.1760006,-4.608,-3.9600005,-4.788 Q-3.7440004,-4.968,-3.4440005,-4.968 Q-3.1320004,-4.968,-2.9100003,-4.788 Q-2.6880004,-4.608,-2.6880004,-4.164 Q-2.6880004,-3.732,-2.9100003,-3.54 Q-3.1320004,-3.348,-3.4440005,-3.348 Q-3.7440004,-3.348,-3.9600005,-3.54 Q-4.1760006,-3.732,-4.1760006,-4.164 z M2.4359999,-3.516 L1.4039996,-3.516 L1.4039996,-9.504 Q1.4039996,-9.852,1.4099996,-10.092 Q1.4159997,-10.332,1.4279997,-10.542 Q1.4399996,-10.752,1.4519997,-10.9800005 Q1.2599998,-10.788,1.1039996,-10.656 Q0.9479997,-10.524,0.7079997,-10.32 L-0.20400035,-9.576 L-0.7560004,-10.284 L1.5599997,-12.084 L2.4359999,-12.084 L2.4359999,-3.516 z M11.316,-7.8120003 Q11.316,-6.768,11.16,-5.952 Q11.004,-5.136,10.662,-4.566 Q10.32,-3.996,9.774,-3.696 Q9.228,-3.396,8.459999,-3.396 Q7.4999995,-3.396,6.8699994,-3.924 Q6.24,-4.452,5.9339995,-5.442 Q5.6279993,-6.432,5.6279993,-7.8120003 Q5.6279993,-9.204,5.9099994,-10.188 Q6.1919994,-11.172,6.8159995,-11.694 Q7.4399996,-12.216,8.459999,-12.216 Q9.42,-12.216,10.056,-11.694 Q10.691999,-11.172,11.004,-10.188 Q11.316,-9.204,11.316,-7.8120003 z M6.6839995,-7.8120003 Q6.6839995,-6.636,6.8579993,-5.856 Q7.0319996,-5.076,7.4219995,-4.686 Q7.8119993,-4.296,8.459999,-4.296 Q9.108,-4.296,9.497999,-4.6800003 Q9.888,-5.064,10.067999,-5.8500004 Q10.247999,-6.636,10.247999,-7.8120003 Q10.247999,-8.988,10.067999,-9.762 Q9.888,-10.536,9.497999,-10.926 Q9.108,-11.316,8.459999,-11.316 Q7.8119993,-11.316,7.4219995,-10.926 Q7.0319996,-10.536,6.8579993,-9.762 Q6.6839995,-8.988,6.6839995,-7.8120003 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 39.962124 36.344)"/> +<path d="M79.42882,44.344 L79.42882,40.344" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,-7.8120003 Q-5.6280003,-6.768,-5.7840004,-5.952 Q-5.94,-5.136,-6.282,-4.566 Q-6.624,-3.996,-7.17,-3.696 Q-7.716,-3.396,-8.484,-3.396 Q-9.444,-3.396,-10.074,-3.924 Q-10.704,-4.452,-11.01,-5.442 Q-11.316,-6.432,-11.316,-7.8120003 Q-11.316,-9.204,-11.034,-10.188 Q-10.752001,-11.172,-10.128,-11.694 Q-9.504,-12.216,-8.484,-12.216 Q-7.524,-12.216,-6.888,-11.694 Q-6.2520003,-11.172,-5.94,-10.188 Q-5.6280003,-9.204,-5.6280003,-7.8120003 z M-10.26,-7.8120003 Q-10.26,-6.636,-10.086,-5.856 Q-9.912001,-5.076,-9.522,-4.686 Q-9.132,-4.296,-8.484,-4.296 Q-7.8360004,-4.296,-7.446,-4.6800003 Q-7.056,-5.064,-6.8760004,-5.8500004 Q-6.696,-6.636,-6.696,-7.8120003 Q-6.696,-8.988,-6.8760004,-9.762 Q-7.056,-10.536,-7.446,-10.926 Q-7.8360004,-11.316,-8.484,-11.316 Q-9.132,-11.316,-9.522,-10.926 Q-9.912001,-10.536,-10.086,-9.762 Q-10.26,-8.988,-10.26,-7.8120003 z M-4.1760006,-4.164 Q-4.1760006,-4.608,-3.9600005,-4.788 Q-3.7440004,-4.968,-3.4440005,-4.968 Q-3.1320004,-4.968,-2.9100003,-4.788 Q-2.6880004,-4.608,-2.6880004,-4.164 Q-2.6880004,-3.732,-2.9100003,-3.54 Q-3.1320004,-3.348,-3.4440005,-3.348 Q-3.7440004,-3.348,-3.9600005,-3.54 Q-4.1760006,-3.732,-4.1760006,-4.164 z M4.416,-3.516 L-1.2480004,-3.516 L-1.2480004,-4.392 L0.9959996,-6.66 Q1.6439996,-7.308,2.0879996,-7.8120003 Q2.5319996,-8.316,2.7599998,-8.802 Q2.988,-9.288,2.988,-9.864 Q2.988,-10.5720005,2.5679998,-10.938 Q2.1479998,-11.304,1.4759996,-11.304 Q0.85199976,-11.304,0.37799954,-11.088 Q-0.096000314,-10.872,-0.5880003,-10.488 L-1.1520004,-11.196 Q-0.81600034,-11.484,-0.4140004,-11.712 Q-0.012000322,-11.94,0.46199965,-12.072 Q0.93599963,-12.2039995,1.4759996,-12.2039995 Q2.2799997,-12.2039995,2.8559995,-11.9279995 Q3.4319997,-11.651999,3.7499995,-11.142 Q4.068,-10.632,4.068,-9.924 Q4.068,-9.252,3.7919998,-8.6640005 Q3.5159998,-8.076,3.0239997,-7.506 Q2.5319996,-6.936,1.8719997,-6.288 L0.083999634,-4.524 L0.083999634,-4.476 L4.416,-4.476 L4.416,-3.516 z M11.316,-7.8120003 Q11.316,-6.768,11.16,-5.952 Q11.004,-5.136,10.662,-4.566 Q10.32,-3.996,9.774,-3.696 Q9.228,-3.396,8.459999,-3.396 Q7.4999995,-3.396,6.8699994,-3.924 Q6.24,-4.452,5.9339995,-5.442 Q5.6279993,-6.432,5.6279993,-7.8120003 Q5.6279993,-9.204,5.9099994,-10.188 Q6.1919994,-11.172,6.8159995,-11.694 Q7.4399996,-12.216,8.459999,-12.216 Q9.42,-12.216,10.056,-11.694 Q10.691999,-11.172,11.004,-10.188 Q11.316,-9.204,11.316,-7.8120003 z M6.6839995,-7.8120003 Q6.6839995,-6.636,6.8579993,-5.856 Q7.0319996,-5.076,7.4219995,-4.686 Q7.8119993,-4.296,8.459999,-4.296 Q9.108,-4.296,9.497999,-4.6800003 Q9.888,-5.064,10.067999,-5.8500004 Q10.247999,-6.636,10.247999,-7.8120003 Q10.247999,-8.988,10.067999,-9.762 Q9.888,-10.536,9.497999,-10.926 Q9.108,-11.316,8.459999,-11.316 Q7.8119993,-11.316,7.4219995,-10.926 Q7.0319996,-10.536,6.8579993,-9.762 Q6.6839995,-8.988,6.6839995,-7.8120003 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 79.42882 36.344)"/> +<path d="M118.895515,44.344 L118.895515,40.344" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,-7.8120003 Q-5.6280003,-6.768,-5.7840004,-5.952 Q-5.94,-5.136,-6.282,-4.566 Q-6.624,-3.996,-7.17,-3.696 Q-7.716,-3.396,-8.484,-3.396 Q-9.444,-3.396,-10.074,-3.924 Q-10.704,-4.452,-11.01,-5.442 Q-11.316,-6.432,-11.316,-7.8120003 Q-11.316,-9.204,-11.034,-10.188 Q-10.752001,-11.172,-10.128,-11.694 Q-9.504,-12.216,-8.484,-12.216 Q-7.524,-12.216,-6.888,-11.694 Q-6.2520003,-11.172,-5.94,-10.188 Q-5.6280003,-9.204,-5.6280003,-7.8120003 z M-10.26,-7.8120003 Q-10.26,-6.636,-10.086,-5.856 Q-9.912001,-5.076,-9.522,-4.686 Q-9.132,-4.296,-8.484,-4.296 Q-7.8360004,-4.296,-7.446,-4.6800003 Q-7.056,-5.064,-6.8760004,-5.8500004 Q-6.696,-6.636,-6.696,-7.8120003 Q-6.696,-8.988,-6.8760004,-9.762 Q-7.056,-10.536,-7.446,-10.926 Q-7.8360004,-11.316,-8.484,-11.316 Q-9.132,-11.316,-9.522,-10.926 Q-9.912001,-10.536,-10.086,-9.762 Q-10.26,-8.988,-10.26,-7.8120003 z M-4.1760006,-4.164 Q-4.1760006,-4.608,-3.9600005,-4.788 Q-3.7440004,-4.968,-3.4440005,-4.968 Q-3.1320004,-4.968,-2.9100003,-4.788 Q-2.6880004,-4.608,-2.6880004,-4.164 Q-2.6880004,-3.732,-2.9100003,-3.54 Q-3.1320004,-3.348,-3.4440005,-3.348 Q-3.7440004,-3.348,-3.9600005,-3.54 Q-4.1760006,-3.732,-4.1760006,-4.164 z M4.0919995,-10.08 Q4.0919995,-9.504,3.876,-9.084 Q3.6599998,-8.6640005,3.258,-8.4 Q2.8559995,-8.136,2.3159995,-8.028 L2.3159995,-7.9800005 Q3.3479996,-7.8599997,3.8519998,-7.332 Q4.3559995,-6.804,4.3559995,-5.952 Q4.3559995,-5.208,4.008,-4.626 Q3.6599998,-4.044,2.9339995,-3.72 Q2.2079997,-3.396,1.0679996,-3.396 Q0.39599967,-3.396,-0.1800003,-3.4980001 Q-0.7560004,-3.6000001,-1.2840004,-3.864 L-1.2840004,-4.848 Q-0.7440003,-4.584,-0.12000036,-4.434 Q0.5039997,-4.284,1.0799997,-4.284 Q2.2319999,-4.284,2.7419996,-4.734 Q3.2519999,-5.184,3.2519999,-5.976 Q3.2519999,-6.516,2.9699998,-6.8459997 Q2.6879997,-7.176,2.1479998,-7.332 Q1.6079996,-7.488,0.85199976,-7.488 L0.023999691,-7.488 L0.023999691,-8.3880005 L0.8639996,-8.3880005 Q1.5719998,-8.3880005,2.0459998,-8.592 Q2.5199995,-8.7960005,2.7659998,-9.162 Q3.0119996,-9.528,3.0119996,-10.008 Q3.0119996,-10.632,2.5919995,-10.974 Q2.1719997,-11.316,1.4519997,-11.316 Q0.9959996,-11.316,0.6239996,-11.226 Q0.25199962,-11.136,-0.06600034,-10.974 Q-0.3840003,-10.812,-0.7080003,-10.596 L-1.2360003,-11.316 Q-0.7800003,-11.676,-0.102000356,-11.94 Q0.57599974,-12.2039995,1.4399996,-12.2039995 Q2.7839994,-12.2039995,3.4379997,-11.604 Q4.0919995,-11.004,4.0919995,-10.08 z M11.316,-7.8120003 Q11.316,-6.768,11.16,-5.952 Q11.004,-5.136,10.662,-4.566 Q10.32,-3.996,9.774,-3.696 Q9.228,-3.396,8.459999,-3.396 Q7.4999995,-3.396,6.8699994,-3.924 Q6.24,-4.452,5.9339995,-5.442 Q5.6279993,-6.432,5.6279993,-7.8120003 Q5.6279993,-9.204,5.9099994,-10.188 Q6.1919994,-11.172,6.8159995,-11.694 Q7.4399996,-12.216,8.459999,-12.216 Q9.42,-12.216,10.056,-11.694 Q10.691999,-11.172,11.004,-10.188 Q11.316,-9.204,11.316,-7.8120003 z M6.6839995,-7.8120003 Q6.6839995,-6.636,6.8579993,-5.856 Q7.0319996,-5.076,7.4219995,-4.686 Q7.8119993,-4.296,8.459999,-4.296 Q9.108,-4.296,9.497999,-4.6800003 Q9.888,-5.064,10.067999,-5.8500004 Q10.247999,-6.636,10.247999,-7.8120003 Q10.247999,-8.988,10.067999,-9.762 Q9.888,-10.536,9.497999,-10.926 Q9.108,-11.316,8.459999,-11.316 Q7.8119993,-11.316,7.4219995,-10.926 Q7.0319996,-10.536,6.8579993,-9.762 Q6.6839995,-8.988,6.6839995,-7.8120003 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 118.895515 36.344)"/> +<path d="M158.3622,44.344 L158.3622,40.344" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,-7.8120003 Q-5.6280003,-6.768,-5.7840004,-5.952 Q-5.94,-5.136,-6.282,-4.566 Q-6.624,-3.996,-7.17,-3.696 Q-7.716,-3.396,-8.484,-3.396 Q-9.444,-3.396,-10.074,-3.924 Q-10.704,-4.452,-11.01,-5.442 Q-11.316,-6.432,-11.316,-7.8120003 Q-11.316,-9.204,-11.034,-10.188 Q-10.752001,-11.172,-10.128,-11.694 Q-9.504,-12.216,-8.484,-12.216 Q-7.524,-12.216,-6.888,-11.694 Q-6.2520003,-11.172,-5.94,-10.188 Q-5.6280003,-9.204,-5.6280003,-7.8120003 z M-10.26,-7.8120003 Q-10.26,-6.636,-10.086,-5.856 Q-9.912001,-5.076,-9.522,-4.686 Q-9.132,-4.296,-8.484,-4.296 Q-7.8360004,-4.296,-7.446,-4.6800003 Q-7.056,-5.064,-6.8760004,-5.8500004 Q-6.696,-6.636,-6.696,-7.8120003 Q-6.696,-8.988,-6.8760004,-9.762 Q-7.056,-10.536,-7.446,-10.926 Q-7.8360004,-11.316,-8.484,-11.316 Q-9.132,-11.316,-9.522,-10.926 Q-9.912001,-10.536,-10.086,-9.762 Q-10.26,-8.988,-10.26,-7.8120003 z M-4.1760006,-4.164 Q-4.1760006,-4.608,-3.9600005,-4.788 Q-3.7440004,-4.968,-3.4440005,-4.968 Q-3.1320004,-4.968,-2.9100003,-4.788 Q-2.6880004,-4.608,-2.6880004,-4.164 Q-2.6880004,-3.732,-2.9100003,-3.54 Q-3.1320004,-3.348,-3.4440005,-3.348 Q-3.7440004,-3.348,-3.9600005,-3.54 Q-4.1760006,-3.732,-4.1760006,-4.164 z M4.7999997,-5.46 L3.5519996,-5.46 L3.5519996,-3.516 L2.5319996,-3.516 L2.5319996,-5.46 L-1.5720004,-5.46 L-1.5720004,-6.36 L2.4599996,-12.132 L3.5519996,-12.132 L3.5519996,-6.408 L4.7999997,-6.408 L4.7999997,-5.46 z M2.5319996,-9.108 Q2.5319996,-9.42,2.5379996,-9.678 Q2.5439997,-9.936,2.5559998,-10.1640005 Q2.5679998,-10.392,2.574,-10.602 Q2.5799994,-10.812,2.5919995,-11.004 L2.5439997,-11.004 Q2.4479995,-10.776,2.304,-10.512 Q2.1599996,-10.248,2.0279996,-10.068 L-0.5400003,-6.408 L2.5319996,-6.408 L2.5319996,-9.108 z M11.316,-7.8120003 Q11.316,-6.768,11.16,-5.952 Q11.004,-5.136,10.662,-4.566 Q10.32,-3.996,9.774,-3.696 Q9.228,-3.396,8.459999,-3.396 Q7.4999995,-3.396,6.8699994,-3.924 Q6.24,-4.452,5.9339995,-5.442 Q5.6279993,-6.432,5.6279993,-7.8120003 Q5.6279993,-9.204,5.9099994,-10.188 Q6.1919994,-11.172,6.8159995,-11.694 Q7.4399996,-12.216,8.459999,-12.216 Q9.42,-12.216,10.056,-11.694 Q10.691999,-11.172,11.004,-10.188 Q11.316,-9.204,11.316,-7.8120003 z M6.6839995,-7.8120003 Q6.6839995,-6.636,6.8579993,-5.856 Q7.0319996,-5.076,7.4219995,-4.686 Q7.8119993,-4.296,8.459999,-4.296 Q9.108,-4.296,9.497999,-4.6800003 Q9.888,-5.064,10.067999,-5.8500004 Q10.247999,-6.636,10.247999,-7.8120003 Q10.247999,-8.988,10.067999,-9.762 Q9.888,-10.536,9.497999,-10.926 Q9.108,-11.316,8.459999,-11.316 Q7.8119993,-11.316,7.4219995,-10.926 Q7.0319996,-10.536,6.8579993,-9.762 Q6.6839995,-8.988,6.6839995,-7.8120003 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 158.3622 36.344)"/> +<path d="M197.8289,44.344 L197.8289,40.344" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,-7.8120003 Q-5.6280003,-6.768,-5.7840004,-5.952 Q-5.94,-5.136,-6.282,-4.566 Q-6.624,-3.996,-7.17,-3.696 Q-7.716,-3.396,-8.484,-3.396 Q-9.444,-3.396,-10.074,-3.924 Q-10.704,-4.452,-11.01,-5.442 Q-11.316,-6.432,-11.316,-7.8120003 Q-11.316,-9.204,-11.034,-10.188 Q-10.752001,-11.172,-10.128,-11.694 Q-9.504,-12.216,-8.484,-12.216 Q-7.524,-12.216,-6.888,-11.694 Q-6.2520003,-11.172,-5.94,-10.188 Q-5.6280003,-9.204,-5.6280003,-7.8120003 z M-10.26,-7.8120003 Q-10.26,-6.636,-10.086,-5.856 Q-9.912001,-5.076,-9.522,-4.686 Q-9.132,-4.296,-8.484,-4.296 Q-7.8360004,-4.296,-7.446,-4.6800003 Q-7.056,-5.064,-6.8760004,-5.8500004 Q-6.696,-6.636,-6.696,-7.8120003 Q-6.696,-8.988,-6.8760004,-9.762 Q-7.056,-10.536,-7.446,-10.926 Q-7.8360004,-11.316,-8.484,-11.316 Q-9.132,-11.316,-9.522,-10.926 Q-9.912001,-10.536,-10.086,-9.762 Q-10.26,-8.988,-10.26,-7.8120003 z M-4.1760006,-4.164 Q-4.1760006,-4.608,-3.9600005,-4.788 Q-3.7440004,-4.968,-3.4440005,-4.968 Q-3.1320004,-4.968,-2.9100003,-4.788 Q-2.6880004,-4.608,-2.6880004,-4.164 Q-2.6880004,-3.732,-2.9100003,-3.54 Q-3.1320004,-3.348,-3.4440005,-3.348 Q-3.7440004,-3.348,-3.9600005,-3.54 Q-4.1760006,-3.732,-4.1760006,-4.164 z M1.4759996,-8.772 Q2.3519998,-8.772,2.9999995,-8.472 Q3.6479998,-8.172,4.002,-7.6140003 Q4.3559995,-7.0559998,4.3559995,-6.252 Q4.3559995,-5.3640003,3.9719996,-4.722 Q3.5879998,-4.08,2.8739996,-3.738 Q2.1599996,-3.396,1.1519997,-3.396 Q0.49199963,-3.396,-0.09000039,-3.516 Q-0.6720004,-3.6360002,-1.0680003,-3.864 L-1.0680003,-4.86 Q-0.6360004,-4.596,-0.018000364,-4.446 Q0.59999967,-4.296,1.1639996,-4.296 Q1.7999997,-4.296,2.2739997,-4.494 Q2.7479997,-4.692,3.0119996,-5.106 Q3.2759995,-5.52,3.2759995,-6.144 Q3.2759995,-6.984,2.7599998,-7.434 Q2.2439995,-7.884,1.1279998,-7.884 Q0.7919996,-7.884,0.35999966,-7.8240004 Q-0.072000384,-7.764,-0.33600032,-7.7040005 L-0.8640003,-8.04 L-0.5400003,-12.084 L3.7559996,-12.084 L3.7559996,-11.124001 L0.35999966,-11.124001 L0.15599966,-8.64 Q0.35999966,-8.676,0.7079997,-8.724 Q1.0559998,-8.772,1.4759996,-8.772 z M11.316,-7.8120003 Q11.316,-6.768,11.16,-5.952 Q11.004,-5.136,10.662,-4.566 Q10.32,-3.996,9.774,-3.696 Q9.228,-3.396,8.459999,-3.396 Q7.4999995,-3.396,6.8699994,-3.924 Q6.24,-4.452,5.9339995,-5.442 Q5.6279993,-6.432,5.6279993,-7.8120003 Q5.6279993,-9.204,5.9099994,-10.188 Q6.1919994,-11.172,6.8159995,-11.694 Q7.4399996,-12.216,8.459999,-12.216 Q9.42,-12.216,10.056,-11.694 Q10.691999,-11.172,11.004,-10.188 Q11.316,-9.204,11.316,-7.8120003 z M6.6839995,-7.8120003 Q6.6839995,-6.636,6.8579993,-5.856 Q7.0319996,-5.076,7.4219995,-4.686 Q7.8119993,-4.296,8.459999,-4.296 Q9.108,-4.296,9.497999,-4.6800003 Q9.888,-5.064,10.067999,-5.8500004 Q10.247999,-6.636,10.247999,-7.8120003 Q10.247999,-8.988,10.067999,-9.762 Q9.888,-10.536,9.497999,-10.926 Q9.108,-11.316,8.459999,-11.316 Q7.8119993,-11.316,7.4219995,-10.926 Q7.0319996,-10.536,6.8579993,-9.762 Q6.6839995,-8.988,6.6839995,-7.8120003 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 197.8289 36.344)"/> +<path d="M237.29561,44.344 L237.29561,40.344" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,-7.8120003 Q-5.6280003,-6.768,-5.7840004,-5.952 Q-5.94,-5.136,-6.282,-4.566 Q-6.624,-3.996,-7.17,-3.696 Q-7.716,-3.396,-8.484,-3.396 Q-9.444,-3.396,-10.074,-3.924 Q-10.704,-4.452,-11.01,-5.442 Q-11.316,-6.432,-11.316,-7.8120003 Q-11.316,-9.204,-11.034,-10.188 Q-10.752001,-11.172,-10.128,-11.694 Q-9.504,-12.216,-8.484,-12.216 Q-7.524,-12.216,-6.888,-11.694 Q-6.2520003,-11.172,-5.94,-10.188 Q-5.6280003,-9.204,-5.6280003,-7.8120003 z M-10.26,-7.8120003 Q-10.26,-6.636,-10.086,-5.856 Q-9.912001,-5.076,-9.522,-4.686 Q-9.132,-4.296,-8.484,-4.296 Q-7.8360004,-4.296,-7.446,-4.6800003 Q-7.056,-5.064,-6.8760004,-5.8500004 Q-6.696,-6.636,-6.696,-7.8120003 Q-6.696,-8.988,-6.8760004,-9.762 Q-7.056,-10.536,-7.446,-10.926 Q-7.8360004,-11.316,-8.484,-11.316 Q-9.132,-11.316,-9.522,-10.926 Q-9.912001,-10.536,-10.086,-9.762 Q-10.26,-8.988,-10.26,-7.8120003 z M-4.1760006,-4.164 Q-4.1760006,-4.608,-3.9600005,-4.788 Q-3.7440004,-4.968,-3.4440005,-4.968 Q-3.1320004,-4.968,-2.9100003,-4.788 Q-2.6880004,-4.608,-2.6880004,-4.164 Q-2.6880004,-3.732,-2.9100003,-3.54 Q-3.1320004,-3.348,-3.4440005,-3.348 Q-3.7440004,-3.348,-3.9600005,-3.54 Q-4.1760006,-3.732,-4.1760006,-4.164 z M-1.1640003,-7.176 Q-1.1640003,-7.92,-1.0620003,-8.64 Q-0.96000034,-9.36,-0.7080003,-10.002 Q-0.45600033,-10.644,-0.012000322,-11.142 Q0.43199968,-11.639999,1.1099997,-11.922 Q1.7879996,-12.2039995,2.7599998,-12.2039995 Q3.0119996,-12.2039995,3.3179998,-12.18 Q3.6239996,-12.156,3.8159995,-12.096 L3.8159995,-11.196 Q3.6,-11.268,3.33,-11.304 Q3.0599995,-11.34,2.7839994,-11.34 Q1.9559996,-11.34,1.4039996,-11.064 Q0.85199976,-10.788,0.5339997,-10.308001 Q0.2159996,-9.828,0.07199967,-9.204 Q-0.072000384,-8.58,-0.1080004,-7.8719997 L-0.03600037,-7.8719997 Q0.1439997,-8.16,0.4199996,-8.3880005 Q0.6959996,-8.616,1.0859997,-8.748 Q1.4759996,-8.88,1.9919996,-8.88 Q2.7359996,-8.88,3.2939997,-8.574 Q3.8519998,-8.268,4.1639996,-7.686 Q4.476,-7.104,4.476,-6.276 Q4.476,-5.388,4.14,-4.74 Q3.804,-4.092,3.1979995,-3.744 Q2.5919995,-3.396,1.7519996,-3.396 Q1.1399996,-3.396,0.61199975,-3.624 Q0.083999634,-3.852,-0.31800032,-4.32 Q-0.7200004,-4.788,-0.9420003,-5.502 Q-1.1640003,-6.216,-1.1640003,-7.176 z M1.7399998,-4.284 Q2.4959998,-4.284,2.9639997,-4.77 Q3.4319997,-5.256,3.4319997,-6.276 Q3.4319997,-7.092,3.0179996,-7.5720005 Q2.6039996,-8.052,1.7759998,-8.052 Q1.2119997,-8.052,0.7919996,-7.818 Q0.37199974,-7.5839996,0.13799965,-7.224 Q-0.096000314,-6.8640003,-0.096000314,-6.48 Q-0.096000314,-6.084,0.017999649,-5.7 Q0.13199961,-5.316,0.3659997,-4.992 Q0.59999967,-4.668,0.9419997,-4.476 Q1.2839997,-4.284,1.7399998,-4.284 z M11.316,-7.8120003 Q11.316,-6.768,11.16,-5.952 Q11.004,-5.136,10.662,-4.566 Q10.32,-3.996,9.774,-3.696 Q9.228,-3.396,8.459999,-3.396 Q7.4999995,-3.396,6.8699994,-3.924 Q6.24,-4.452,5.9339995,-5.442 Q5.6279993,-6.432,5.6279993,-7.8120003 Q5.6279993,-9.204,5.9099994,-10.188 Q6.1919994,-11.172,6.8159995,-11.694 Q7.4399996,-12.216,8.459999,-12.216 Q9.42,-12.216,10.056,-11.694 Q10.691999,-11.172,11.004,-10.188 Q11.316,-9.204,11.316,-7.8120003 z M6.6839995,-7.8120003 Q6.6839995,-6.636,6.8579993,-5.856 Q7.0319996,-5.076,7.4219995,-4.686 Q7.8119993,-4.296,8.459999,-4.296 Q9.108,-4.296,9.497999,-4.6800003 Q9.888,-5.064,10.067999,-5.8500004 Q10.247999,-6.636,10.247999,-7.8120003 Q10.247999,-8.988,10.067999,-9.762 Q9.888,-10.536,9.497999,-10.926 Q9.108,-11.316,8.459999,-11.316 Q7.8119993,-11.316,7.4219995,-10.926 Q7.0319996,-10.536,6.8579993,-9.762 Q6.6839995,-8.988,6.6839995,-7.8120003 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 237.29561 36.344)"/> +<path d="M276.7623,44.344 L276.7623,40.344" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,-7.8120003 Q-5.6280003,-6.768,-5.7840004,-5.952 Q-5.94,-5.136,-6.282,-4.566 Q-6.624,-3.996,-7.17,-3.696 Q-7.716,-3.396,-8.484,-3.396 Q-9.444,-3.396,-10.074,-3.924 Q-10.704,-4.452,-11.01,-5.442 Q-11.316,-6.432,-11.316,-7.8120003 Q-11.316,-9.204,-11.034,-10.188 Q-10.752001,-11.172,-10.128,-11.694 Q-9.504,-12.216,-8.484,-12.216 Q-7.524,-12.216,-6.888,-11.694 Q-6.2520003,-11.172,-5.94,-10.188 Q-5.6280003,-9.204,-5.6280003,-7.8120003 z M-10.26,-7.8120003 Q-10.26,-6.636,-10.086,-5.856 Q-9.912001,-5.076,-9.522,-4.686 Q-9.132,-4.296,-8.484,-4.296 Q-7.8360004,-4.296,-7.446,-4.6800003 Q-7.056,-5.064,-6.8760004,-5.8500004 Q-6.696,-6.636,-6.696,-7.8120003 Q-6.696,-8.988,-6.8760004,-9.762 Q-7.056,-10.536,-7.446,-10.926 Q-7.8360004,-11.316,-8.484,-11.316 Q-9.132,-11.316,-9.522,-10.926 Q-9.912001,-10.536,-10.086,-9.762 Q-10.26,-8.988,-10.26,-7.8120003 z M-4.1760006,-4.164 Q-4.1760006,-4.608,-3.9600005,-4.788 Q-3.7440004,-4.968,-3.4440005,-4.968 Q-3.1320004,-4.968,-2.9100003,-4.788 Q-2.6880004,-4.608,-2.6880004,-4.164 Q-2.6880004,-3.732,-2.9100003,-3.54 Q-3.1320004,-3.348,-3.4440005,-3.348 Q-3.7440004,-3.348,-3.9600005,-3.54 Q-4.1760006,-3.732,-4.1760006,-4.164 z M-0.19200039,-3.516 L3.324,-11.124001 L-1.2960004,-11.124001 L-1.2960004,-12.084 L4.4519997,-12.084 L4.4519997,-11.268 L0.97199965,-3.516 L-0.19200039,-3.516 z M11.316,-7.8120003 Q11.316,-6.768,11.16,-5.952 Q11.004,-5.136,10.662,-4.566 Q10.32,-3.996,9.774,-3.696 Q9.228,-3.396,8.459999,-3.396 Q7.4999995,-3.396,6.8699994,-3.924 Q6.24,-4.452,5.9339995,-5.442 Q5.6279993,-6.432,5.6279993,-7.8120003 Q5.6279993,-9.204,5.9099994,-10.188 Q6.1919994,-11.172,6.8159995,-11.694 Q7.4399996,-12.216,8.459999,-12.216 Q9.42,-12.216,10.056,-11.694 Q10.691999,-11.172,11.004,-10.188 Q11.316,-9.204,11.316,-7.8120003 z M6.6839995,-7.8120003 Q6.6839995,-6.636,6.8579993,-5.856 Q7.0319996,-5.076,7.4219995,-4.686 Q7.8119993,-4.296,8.459999,-4.296 Q9.108,-4.296,9.497999,-4.6800003 Q9.888,-5.064,10.067999,-5.8500004 Q10.247999,-6.636,10.247999,-7.8120003 Q10.247999,-8.988,10.067999,-9.762 Q9.888,-10.536,9.497999,-10.926 Q9.108,-11.316,8.459999,-11.316 Q7.8119993,-11.316,7.4219995,-10.926 Q7.0319996,-10.536,6.8579993,-9.762 Q6.6839995,-8.988,6.6839995,-7.8120003 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 276.7623 36.344)"/> +<path d="M316.22897,44.344 L316.22897,40.344" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,-7.8120003 Q-5.6280003,-6.768,-5.7840004,-5.952 Q-5.94,-5.136,-6.282,-4.566 Q-6.624,-3.996,-7.17,-3.696 Q-7.716,-3.396,-8.484,-3.396 Q-9.444,-3.396,-10.074,-3.924 Q-10.704,-4.452,-11.01,-5.442 Q-11.316,-6.432,-11.316,-7.8120003 Q-11.316,-9.204,-11.034,-10.188 Q-10.752001,-11.172,-10.128,-11.694 Q-9.504,-12.216,-8.484,-12.216 Q-7.524,-12.216,-6.888,-11.694 Q-6.2520003,-11.172,-5.94,-10.188 Q-5.6280003,-9.204,-5.6280003,-7.8120003 z M-10.26,-7.8120003 Q-10.26,-6.636,-10.086,-5.856 Q-9.912001,-5.076,-9.522,-4.686 Q-9.132,-4.296,-8.484,-4.296 Q-7.8360004,-4.296,-7.446,-4.6800003 Q-7.056,-5.064,-6.8760004,-5.8500004 Q-6.696,-6.636,-6.696,-7.8120003 Q-6.696,-8.988,-6.8760004,-9.762 Q-7.056,-10.536,-7.446,-10.926 Q-7.8360004,-11.316,-8.484,-11.316 Q-9.132,-11.316,-9.522,-10.926 Q-9.912001,-10.536,-10.086,-9.762 Q-10.26,-8.988,-10.26,-7.8120003 z M-4.1760006,-4.164 Q-4.1760006,-4.608,-3.9600005,-4.788 Q-3.7440004,-4.968,-3.4440005,-4.968 Q-3.1320004,-4.968,-2.9100003,-4.788 Q-2.6880004,-4.608,-2.6880004,-4.164 Q-2.6880004,-3.732,-2.9100003,-3.54 Q-3.1320004,-3.348,-3.4440005,-3.348 Q-3.7440004,-3.348,-3.9600005,-3.54 Q-4.1760006,-3.732,-4.1760006,-4.164 z M1.5959997,-12.2039995 Q2.3519998,-12.2039995,2.9279995,-11.97 Q3.5039997,-11.736,3.8339996,-11.28 Q4.1639996,-10.824,4.1639996,-10.152 Q4.1639996,-9.636,3.942,-9.252 Q3.7199998,-8.868,3.3479996,-8.574 Q2.9759998,-8.28,2.5319996,-8.052 Q3.0599995,-7.8,3.4919996,-7.4820004 Q3.9239998,-7.164,4.1819997,-6.744 Q4.4399996,-6.3240004,4.4399996,-5.736 Q4.4399996,-5.016,4.0919995,-4.494 Q3.7439995,-3.9720001,3.1139998,-3.684 Q2.4839997,-3.396,1.6319997,-3.396 Q0.7079997,-3.396,0.06599963,-3.672 Q-0.57600033,-3.948,-0.9060004,-4.458 Q-1.2360003,-4.968,-1.2360003,-5.7 Q-1.2360003,-6.288,-0.99000037,-6.7200003 Q-0.7440003,-7.152,-0.33600032,-7.4639997 Q0.07199967,-7.776,0.5399997,-7.9919996 Q0.11999965,-8.232,-0.22200036,-8.538 Q-0.56400037,-8.844,-0.7620003,-9.24 Q-0.96000034,-9.636,-0.96000034,-10.1640005 Q-0.96000034,-10.824,-0.6240003,-11.274 Q-0.28800035,-11.724,0.28799963,-11.964 Q0.8639996,-12.2039995,1.5959997,-12.2039995 z M-0.20400035,-5.6879997 Q-0.20400035,-5.064,0.23999977,-4.65 Q0.6839998,-4.236,1.6079996,-4.236 Q2.4839997,-4.236,2.9459996,-4.65 Q3.4079995,-5.064,3.4079995,-5.724 Q3.4079995,-6.144,3.1859999,-6.462 Q2.9639997,-6.7799997,2.5619998,-7.032 Q2.1599996,-7.2840004,1.6079996,-7.488 L1.4159997,-7.5600004 Q0.8879998,-7.332,0.52799964,-7.068 Q0.16799963,-6.804,-0.018000364,-6.4680004 Q-0.20400035,-6.132,-0.20400035,-5.6879997 z M1.5839996,-11.352 Q0.92399955,-11.352,0.49799967,-11.034 Q0.07199967,-10.716001,0.07199967,-10.116 Q0.07199967,-9.672,0.2819996,-9.372 Q0.49199963,-9.0720005,0.85199976,-8.862 Q1.2119997,-8.652,1.6439996,-8.46 Q2.0639997,-8.64,2.3939996,-8.856 Q2.7239995,-9.0720005,2.9219995,-9.378 Q3.12,-9.684,3.12,-10.116 Q3.12,-10.716001,2.6999998,-11.034 Q2.2799997,-11.352,1.5839996,-11.352 z M11.316,-7.8120003 Q11.316,-6.768,11.16,-5.952 Q11.004,-5.136,10.662,-4.566 Q10.32,-3.996,9.774,-3.696 Q9.228,-3.396,8.459999,-3.396 Q7.4999995,-3.396,6.8699994,-3.924 Q6.24,-4.452,5.9339995,-5.442 Q5.6279993,-6.432,5.6279993,-7.8120003 Q5.6279993,-9.204,5.9099994,-10.188 Q6.1919994,-11.172,6.8159995,-11.694 Q7.4399996,-12.216,8.459999,-12.216 Q9.42,-12.216,10.056,-11.694 Q10.691999,-11.172,11.004,-10.188 Q11.316,-9.204,11.316,-7.8120003 z M6.6839995,-7.8120003 Q6.6839995,-6.636,6.8579993,-5.856 Q7.0319996,-5.076,7.4219995,-4.686 Q7.8119993,-4.296,8.459999,-4.296 Q9.108,-4.296,9.497999,-4.6800003 Q9.888,-5.064,10.067999,-5.8500004 Q10.247999,-6.636,10.247999,-7.8120003 Q10.247999,-8.988,10.067999,-9.762 Q9.888,-10.536,9.497999,-10.926 Q9.108,-11.316,8.459999,-11.316 Q7.8119993,-11.316,7.4219995,-10.926 Q7.0319996,-10.536,6.8579993,-9.762 Q6.6839995,-8.988,6.6839995,-7.8120003 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 316.22897 36.344)"/> +<path d="M355.69568,44.344 L355.69568,40.344" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M-5.6280003,-7.8120003 Q-5.6280003,-6.768,-5.7840004,-5.952 Q-5.94,-5.136,-6.282,-4.566 Q-6.624,-3.996,-7.17,-3.696 Q-7.716,-3.396,-8.484,-3.396 Q-9.444,-3.396,-10.074,-3.924 Q-10.704,-4.452,-11.01,-5.442 Q-11.316,-6.432,-11.316,-7.8120003 Q-11.316,-9.204,-11.034,-10.188 Q-10.752001,-11.172,-10.128,-11.694 Q-9.504,-12.216,-8.484,-12.216 Q-7.524,-12.216,-6.888,-11.694 Q-6.2520003,-11.172,-5.94,-10.188 Q-5.6280003,-9.204,-5.6280003,-7.8120003 z M-10.26,-7.8120003 Q-10.26,-6.636,-10.086,-5.856 Q-9.912001,-5.076,-9.522,-4.686 Q-9.132,-4.296,-8.484,-4.296 Q-7.8360004,-4.296,-7.446,-4.6800003 Q-7.056,-5.064,-6.8760004,-5.8500004 Q-6.696,-6.636,-6.696,-7.8120003 Q-6.696,-8.988,-6.8760004,-9.762 Q-7.056,-10.536,-7.446,-10.926 Q-7.8360004,-11.316,-8.484,-11.316 Q-9.132,-11.316,-9.522,-10.926 Q-9.912001,-10.536,-10.086,-9.762 Q-10.26,-8.988,-10.26,-7.8120003 z M-4.1760006,-4.164 Q-4.1760006,-4.608,-3.9600005,-4.788 Q-3.7440004,-4.968,-3.4440005,-4.968 Q-3.1320004,-4.968,-2.9100003,-4.788 Q-2.6880004,-4.608,-2.6880004,-4.164 Q-2.6880004,-3.732,-2.9100003,-3.54 Q-3.1320004,-3.348,-3.4440005,-3.348 Q-3.7440004,-3.348,-3.9600005,-3.54 Q-4.1760006,-3.732,-4.1760006,-4.164 z M4.416,-8.424 Q4.416,-7.6920004,4.3139997,-6.966 Q4.212,-6.24,3.9599996,-5.598 Q3.7079997,-4.9560003,3.2639995,-4.458 Q2.8199997,-3.96,2.1359997,-3.678 Q1.4519997,-3.396,0.47999954,-3.396 Q0.23999977,-3.396,-0.07800031,-3.426 Q-0.3960004,-3.456,-0.6000004,-3.516 L-0.6000004,-4.416 Q-0.3840003,-4.344,-0.096000314,-4.302 Q0.19199967,-4.26,0.4559996,-4.26 Q1.2959998,-4.26,1.8419998,-4.5360003 Q2.3879995,-4.8120003,2.712,-5.2860003 Q3.0359998,-5.76,3.1799998,-6.3900003 Q3.324,-7.02,3.3479996,-7.7159996 L3.2759995,-7.7159996 Q3.0959997,-7.44,2.8199997,-7.212 Q2.5439997,-6.984,2.1539996,-6.852 Q1.7639997,-6.7200003,1.2359996,-6.7200003 Q0.5039997,-6.7200003,-0.054000378,-7.026 Q-0.61200035,-7.332,-0.91800034,-7.908 Q-1.2240003,-8.484,-1.2240003,-9.312 Q-1.2240003,-10.212,-0.8820003,-10.86 Q-0.5400003,-11.508,0.07199967,-11.856 Q0.6839998,-12.2039995,1.5119996,-12.2039995 Q2.1239996,-12.2039995,2.6519995,-11.97 Q3.1799998,-11.736,3.5759997,-11.268 Q3.9719996,-10.8,4.194,-10.092 Q4.416,-9.384,4.416,-8.424 z M1.5119996,-11.316 Q0.76799965,-11.316,0.29399967,-10.824 Q-0.1800003,-10.332,-0.1800003,-9.324 Q-0.1800003,-8.496,0.22199965,-8.022 Q0.6239996,-7.5480003,1.4639997,-7.5480003 Q2.0399997,-7.5480003,2.4599996,-7.7820005 Q2.8799996,-8.016,3.1139998,-8.376 Q3.3479996,-8.736,3.3479996,-9.12 Q3.3479996,-9.504,3.2339997,-9.894 Q3.12,-10.284,2.8919997,-10.608 Q2.6639996,-10.932,2.3159995,-11.124001 Q1.9679997,-11.316,1.5119996,-11.316 z M11.316,-7.8120003 Q11.316,-6.768,11.16,-5.952 Q11.004,-5.136,10.662,-4.566 Q10.32,-3.996,9.774,-3.696 Q9.228,-3.396,8.459999,-3.396 Q7.4999995,-3.396,6.8699994,-3.924 Q6.24,-4.452,5.9339995,-5.442 Q5.6279993,-6.432,5.6279993,-7.8120003 Q5.6279993,-9.204,5.9099994,-10.188 Q6.1919994,-11.172,6.8159995,-11.694 Q7.4399996,-12.216,8.459999,-12.216 Q9.42,-12.216,10.056,-11.694 Q10.691999,-11.172,11.004,-10.188 Q11.316,-9.204,11.316,-7.8120003 z M6.6839995,-7.8120003 Q6.6839995,-6.636,6.8579993,-5.856 Q7.0319996,-5.076,7.4219995,-4.686 Q7.8119993,-4.296,8.459999,-4.296 Q9.108,-4.296,9.497999,-4.6800003 Q9.888,-5.064,10.067999,-5.8500004 Q10.247999,-6.636,10.247999,-7.8120003 Q10.247999,-8.988,10.067999,-9.762 Q9.888,-10.536,9.497999,-10.926 Q9.108,-11.316,8.459999,-11.316 Q7.8119993,-11.316,7.4219995,-10.926 Q7.0319996,-10.536,6.8579993,-9.762 Q6.6839995,-8.988,6.6839995,-7.8120003 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 355.69568 36.344)"/> +</svg> \ No newline at end of file diff --git a/tests/refs/legend-pos/bottom.svg b/tests/refs/legend-pos/bottom.svg index df7adeb..ed4ed37 100644 --- a/tests/refs/legend-pos/bottom.svg +++ b/tests/refs/legend-pos/bottom.svg @@ -7,7 +7,7 @@ <path d="M40,214.294 L200,127.147 L360,40" fill="none" stroke="#000000" stroke-width="1.5"/> </g> <rect fill="none" height="214.294" stroke="#000000" stroke-width="1" width="360" x="20" y="20"/> -<rect fill="#ffffff" fill-opacity="0.49803922" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="163.463" y="246.294"/> +<rect fill="#ffffff" fill-opacity="0.5019608" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="163.463" y="246.294"/> <path d="M171.463,263.147 L196.463,263.147" fill="none" stroke="#000000" stroke-width="1.5"/> <path d="M2.249,3.484 L1.105,3.484 L1.105,-6.396 L2.249,-6.396 L2.249,3.484 z M5.603,-3.484 L5.603,3.484 L4.459,3.484 L4.459,-3.484 L5.603,-3.484 z M5.044,-6.097 Q5.304,-6.097,5.5055,-5.9215 Q5.7070003,-5.7460003,5.7070003,-5.3690004 Q5.7070003,-5.005,5.5055,-4.823 Q5.304,-4.641,5.044,-4.641 Q4.7580004,-4.641,4.563,-4.823 Q4.368,-5.005,4.368,-5.3690004 Q4.368,-5.7460003,4.563,-5.9215 Q4.7580004,-6.097,5.044,-6.097 z M11.167,-3.614 Q12.415001,-3.614,13.052,-3.0095003 Q13.689,-2.405,13.689,-1.0530002 L13.689,3.484 L12.558001,3.484 L12.558001,-0.97500014 Q12.558001,-1.8199999,12.181,-2.2360003 Q11.804001,-2.6520002,10.998,-2.6520002 Q9.841001,-2.6520002,9.399,-2.002 Q8.957001,-1.352,8.957001,-0.13000011 L8.957001,3.484 L7.813,3.484 L7.813,-3.484 L8.736,-3.484 L8.905001,-2.535 L8.97,-2.535 Q9.204,-2.899,9.5485,-3.1395004 Q9.893001,-3.3800004,10.309,-3.497 Q10.725,-3.614,11.167,-3.614 z M18.538,-3.614 Q19.435001,-3.614,20.0785,-3.2240002 Q20.722,-2.8340003,21.066502,-2.1255 Q21.411001,-1.417,21.411001,-0.46800017 L21.411001,0.22099996 L16.640001,0.22099996 Q16.666,1.404,17.244501,2.0215 Q17.823,2.639,18.863,2.639 Q19.526001,2.639,20.039501,2.5155 Q20.553001,2.392,21.099,2.158 L21.099,3.159 Q20.566002,3.393,20.046001,3.5035 Q19.526001,3.6139998,18.811,3.6139998 Q17.823,3.6139998,17.0625,3.211 Q16.302,2.808,15.8795,2.0085 Q15.457001,1.2089999,15.457001,0.051999807 Q15.457001,-1.0920002,15.840501,-1.911 Q16.224,-2.7300003,16.9195,-3.1720002 Q17.615002,-3.614,18.538,-3.614 z M18.525002,-2.6780002 Q17.706001,-2.6780002,17.2315,-2.1515 Q16.757,-1.6250002,16.666,-0.6889999 L20.215,-0.6889999 Q20.215,-1.287,20.033,-1.7290003 Q19.851002,-2.1710002,19.480501,-2.4245002 Q19.11,-2.6780002,18.525002,-2.6780002 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 206.463 263.147)"/> </svg> \ No newline at end of file diff --git a/tests/refs/legend-pos/in_bottom.svg b/tests/refs/legend-pos/in_bottom.svg index 3c8b86e..405e9a1 100644 --- a/tests/refs/legend-pos/in_bottom.svg +++ b/tests/refs/legend-pos/in_bottom.svg @@ -7,7 +7,7 @@ <path d="M40,260 L200,150 L360,40" fill="none" stroke="#000000" stroke-width="1.5"/> </g> <rect fill="none" height="260" stroke="#000000" stroke-width="1" width="360" x="20" y="20"/> -<rect fill="#ffffff" fill-opacity="0.49803922" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="163.463" y="234.294"/> +<rect fill="#ffffff" fill-opacity="0.5019608" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="163.463" y="234.294"/> <path d="M171.463,251.147 L196.463,251.147" fill="none" stroke="#000000" stroke-width="1.5"/> <path d="M2.249,3.484 L1.105,3.484 L1.105,-6.396 L2.249,-6.396 L2.249,3.484 z M5.603,-3.484 L5.603,3.484 L4.459,3.484 L4.459,-3.484 L5.603,-3.484 z M5.044,-6.097 Q5.304,-6.097,5.5055,-5.9215 Q5.7070003,-5.7460003,5.7070003,-5.3690004 Q5.7070003,-5.005,5.5055,-4.823 Q5.304,-4.641,5.044,-4.641 Q4.7580004,-4.641,4.563,-4.823 Q4.368,-5.005,4.368,-5.3690004 Q4.368,-5.7460003,4.563,-5.9215 Q4.7580004,-6.097,5.044,-6.097 z M11.167,-3.614 Q12.415001,-3.614,13.052,-3.0095003 Q13.689,-2.405,13.689,-1.0530002 L13.689,3.484 L12.558001,3.484 L12.558001,-0.97500014 Q12.558001,-1.8199999,12.181,-2.2360003 Q11.804001,-2.6520002,10.998,-2.6520002 Q9.841001,-2.6520002,9.399,-2.002 Q8.957001,-1.352,8.957001,-0.13000011 L8.957001,3.484 L7.813,3.484 L7.813,-3.484 L8.736,-3.484 L8.905001,-2.535 L8.97,-2.535 Q9.204,-2.899,9.5485,-3.1395004 Q9.893001,-3.3800004,10.309,-3.497 Q10.725,-3.614,11.167,-3.614 z M18.538,-3.614 Q19.435001,-3.614,20.0785,-3.2240002 Q20.722,-2.8340003,21.066502,-2.1255 Q21.411001,-1.417,21.411001,-0.46800017 L21.411001,0.22099996 L16.640001,0.22099996 Q16.666,1.404,17.244501,2.0215 Q17.823,2.639,18.863,2.639 Q19.526001,2.639,20.039501,2.5155 Q20.553001,2.392,21.099,2.158 L21.099,3.159 Q20.566002,3.393,20.046001,3.5035 Q19.526001,3.6139998,18.811,3.6139998 Q17.823,3.6139998,17.0625,3.211 Q16.302,2.808,15.8795,2.0085 Q15.457001,1.2089999,15.457001,0.051999807 Q15.457001,-1.0920002,15.840501,-1.911 Q16.224,-2.7300003,16.9195,-3.1720002 Q17.615002,-3.614,18.538,-3.614 z M18.525002,-2.6780002 Q17.706001,-2.6780002,17.2315,-2.1515 Q16.757,-1.6250002,16.666,-0.6889999 L20.215,-0.6889999 Q20.215,-1.287,20.033,-1.7290003 Q19.851002,-2.1710002,19.480501,-2.4245002 Q19.11,-2.6780002,18.525002,-2.6780002 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 206.463 251.147)"/> </svg> \ No newline at end of file diff --git a/tests/refs/legend-pos/in_bottom_left.svg b/tests/refs/legend-pos/in_bottom_left.svg index c1f76e6..f5e2387 100644 --- a/tests/refs/legend-pos/in_bottom_left.svg +++ b/tests/refs/legend-pos/in_bottom_left.svg @@ -7,7 +7,7 @@ <path d="M40,260 L200,150 L360,40" fill="none" stroke="#000000" stroke-width="1.5"/> </g> <rect fill="none" height="260" stroke="#000000" stroke-width="1" width="360" x="20" y="20"/> -<rect fill="#ffffff" fill-opacity="0.49803922" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="32" y="234.294"/> +<rect fill="#ffffff" fill-opacity="0.5019608" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="32" y="234.294"/> <path d="M40,251.147 L65,251.147" fill="none" stroke="#000000" stroke-width="1.5"/> <path d="M2.249,3.484 L1.105,3.484 L1.105,-6.396 L2.249,-6.396 L2.249,3.484 z M5.603,-3.484 L5.603,3.484 L4.459,3.484 L4.459,-3.484 L5.603,-3.484 z M5.044,-6.097 Q5.304,-6.097,5.5055,-5.9215 Q5.7070003,-5.7460003,5.7070003,-5.3690004 Q5.7070003,-5.005,5.5055,-4.823 Q5.304,-4.641,5.044,-4.641 Q4.7580004,-4.641,4.563,-4.823 Q4.368,-5.005,4.368,-5.3690004 Q4.368,-5.7460003,4.563,-5.9215 Q4.7580004,-6.097,5.044,-6.097 z M11.167,-3.614 Q12.415001,-3.614,13.052,-3.0095003 Q13.689,-2.405,13.689,-1.0530002 L13.689,3.484 L12.558001,3.484 L12.558001,-0.97500014 Q12.558001,-1.8199999,12.181,-2.2360003 Q11.804001,-2.6520002,10.998,-2.6520002 Q9.841001,-2.6520002,9.399,-2.002 Q8.957001,-1.352,8.957001,-0.13000011 L8.957001,3.484 L7.813,3.484 L7.813,-3.484 L8.736,-3.484 L8.905001,-2.535 L8.97,-2.535 Q9.204,-2.899,9.5485,-3.1395004 Q9.893001,-3.3800004,10.309,-3.497 Q10.725,-3.614,11.167,-3.614 z M18.538,-3.614 Q19.435001,-3.614,20.0785,-3.2240002 Q20.722,-2.8340003,21.066502,-2.1255 Q21.411001,-1.417,21.411001,-0.46800017 L21.411001,0.22099996 L16.640001,0.22099996 Q16.666,1.404,17.244501,2.0215 Q17.823,2.639,18.863,2.639 Q19.526001,2.639,20.039501,2.5155 Q20.553001,2.392,21.099,2.158 L21.099,3.159 Q20.566002,3.393,20.046001,3.5035 Q19.526001,3.6139998,18.811,3.6139998 Q17.823,3.6139998,17.0625,3.211 Q16.302,2.808,15.8795,2.0085 Q15.457001,1.2089999,15.457001,0.051999807 Q15.457001,-1.0920002,15.840501,-1.911 Q16.224,-2.7300003,16.9195,-3.1720002 Q17.615002,-3.614,18.538,-3.614 z M18.525002,-2.6780002 Q17.706001,-2.6780002,17.2315,-2.1515 Q16.757,-1.6250002,16.666,-0.6889999 L20.215,-0.6889999 Q20.215,-1.287,20.033,-1.7290003 Q19.851002,-2.1710002,19.480501,-2.4245002 Q19.11,-2.6780002,18.525002,-2.6780002 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 75 251.147)"/> </svg> \ No newline at end of file diff --git a/tests/refs/legend-pos/in_bottom_right.svg b/tests/refs/legend-pos/in_bottom_right.svg index 3d7117c..e9b5284 100644 --- a/tests/refs/legend-pos/in_bottom_right.svg +++ b/tests/refs/legend-pos/in_bottom_right.svg @@ -7,7 +7,7 @@ <path d="M40,260 L200,150 L360,40" fill="none" stroke="#000000" stroke-width="1.5"/> </g> <rect fill="none" height="260" stroke="#000000" stroke-width="1" width="360" x="20" y="20"/> -<rect fill="#ffffff" fill-opacity="0.49803922" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="294.926" y="234.294"/> +<rect fill="#ffffff" fill-opacity="0.5019608" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="294.926" y="234.294"/> <path d="M302.926,251.147 L327.926,251.147" fill="none" stroke="#000000" stroke-width="1.5"/> <path d="M2.249,3.484 L1.105,3.484 L1.105,-6.396 L2.249,-6.396 L2.249,3.484 z M5.603,-3.484 L5.603,3.484 L4.459,3.484 L4.459,-3.484 L5.603,-3.484 z M5.044,-6.097 Q5.304,-6.097,5.5055,-5.9215 Q5.7070003,-5.7460003,5.7070003,-5.3690004 Q5.7070003,-5.005,5.5055,-4.823 Q5.304,-4.641,5.044,-4.641 Q4.7580004,-4.641,4.563,-4.823 Q4.368,-5.005,4.368,-5.3690004 Q4.368,-5.7460003,4.563,-5.9215 Q4.7580004,-6.097,5.044,-6.097 z M11.167,-3.614 Q12.415001,-3.614,13.052,-3.0095003 Q13.689,-2.405,13.689,-1.0530002 L13.689,3.484 L12.558001,3.484 L12.558001,-0.97500014 Q12.558001,-1.8199999,12.181,-2.2360003 Q11.804001,-2.6520002,10.998,-2.6520002 Q9.841001,-2.6520002,9.399,-2.002 Q8.957001,-1.352,8.957001,-0.13000011 L8.957001,3.484 L7.813,3.484 L7.813,-3.484 L8.736,-3.484 L8.905001,-2.535 L8.97,-2.535 Q9.204,-2.899,9.5485,-3.1395004 Q9.893001,-3.3800004,10.309,-3.497 Q10.725,-3.614,11.167,-3.614 z M18.538,-3.614 Q19.435001,-3.614,20.0785,-3.2240002 Q20.722,-2.8340003,21.066502,-2.1255 Q21.411001,-1.417,21.411001,-0.46800017 L21.411001,0.22099996 L16.640001,0.22099996 Q16.666,1.404,17.244501,2.0215 Q17.823,2.639,18.863,2.639 Q19.526001,2.639,20.039501,2.5155 Q20.553001,2.392,21.099,2.158 L21.099,3.159 Q20.566002,3.393,20.046001,3.5035 Q19.526001,3.6139998,18.811,3.6139998 Q17.823,3.6139998,17.0625,3.211 Q16.302,2.808,15.8795,2.0085 Q15.457001,1.2089999,15.457001,0.051999807 Q15.457001,-1.0920002,15.840501,-1.911 Q16.224,-2.7300003,16.9195,-3.1720002 Q17.615002,-3.614,18.538,-3.614 z M18.525002,-2.6780002 Q17.706001,-2.6780002,17.2315,-2.1515 Q16.757,-1.6250002,16.666,-0.6889999 L20.215,-0.6889999 Q20.215,-1.287,20.033,-1.7290003 Q19.851002,-2.1710002,19.480501,-2.4245002 Q19.11,-2.6780002,18.525002,-2.6780002 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 337.926 251.147)"/> </svg> \ No newline at end of file diff --git a/tests/refs/legend-pos/in_left.svg b/tests/refs/legend-pos/in_left.svg index 9bed7d2..5408f19 100644 --- a/tests/refs/legend-pos/in_left.svg +++ b/tests/refs/legend-pos/in_left.svg @@ -7,7 +7,7 @@ <path d="M40,260 L200,150 L360,40" fill="none" stroke="#000000" stroke-width="1.5"/> </g> <rect fill="none" height="260" stroke="#000000" stroke-width="1" width="360" x="20" y="20"/> -<rect fill="#ffffff" fill-opacity="0.49803922" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="32" y="133.147"/> +<rect fill="#ffffff" fill-opacity="0.5019608" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="32" y="133.147"/> <path d="M40,150 L65,150" fill="none" stroke="#000000" stroke-width="1.5"/> <path d="M2.249,3.484 L1.105,3.484 L1.105,-6.396 L2.249,-6.396 L2.249,3.484 z M5.603,-3.484 L5.603,3.484 L4.459,3.484 L4.459,-3.484 L5.603,-3.484 z M5.044,-6.097 Q5.304,-6.097,5.5055,-5.9215 Q5.7070003,-5.7460003,5.7070003,-5.3690004 Q5.7070003,-5.005,5.5055,-4.823 Q5.304,-4.641,5.044,-4.641 Q4.7580004,-4.641,4.563,-4.823 Q4.368,-5.005,4.368,-5.3690004 Q4.368,-5.7460003,4.563,-5.9215 Q4.7580004,-6.097,5.044,-6.097 z M11.167,-3.614 Q12.415001,-3.614,13.052,-3.0095003 Q13.689,-2.405,13.689,-1.0530002 L13.689,3.484 L12.558001,3.484 L12.558001,-0.97500014 Q12.558001,-1.8199999,12.181,-2.2360003 Q11.804001,-2.6520002,10.998,-2.6520002 Q9.841001,-2.6520002,9.399,-2.002 Q8.957001,-1.352,8.957001,-0.13000011 L8.957001,3.484 L7.813,3.484 L7.813,-3.484 L8.736,-3.484 L8.905001,-2.535 L8.97,-2.535 Q9.204,-2.899,9.5485,-3.1395004 Q9.893001,-3.3800004,10.309,-3.497 Q10.725,-3.614,11.167,-3.614 z M18.538,-3.614 Q19.435001,-3.614,20.0785,-3.2240002 Q20.722,-2.8340003,21.066502,-2.1255 Q21.411001,-1.417,21.411001,-0.46800017 L21.411001,0.22099996 L16.640001,0.22099996 Q16.666,1.404,17.244501,2.0215 Q17.823,2.639,18.863,2.639 Q19.526001,2.639,20.039501,2.5155 Q20.553001,2.392,21.099,2.158 L21.099,3.159 Q20.566002,3.393,20.046001,3.5035 Q19.526001,3.6139998,18.811,3.6139998 Q17.823,3.6139998,17.0625,3.211 Q16.302,2.808,15.8795,2.0085 Q15.457001,1.2089999,15.457001,0.051999807 Q15.457001,-1.0920002,15.840501,-1.911 Q16.224,-2.7300003,16.9195,-3.1720002 Q17.615002,-3.614,18.538,-3.614 z M18.525002,-2.6780002 Q17.706001,-2.6780002,17.2315,-2.1515 Q16.757,-1.6250002,16.666,-0.6889999 L20.215,-0.6889999 Q20.215,-1.287,20.033,-1.7290003 Q19.851002,-2.1710002,19.480501,-2.4245002 Q19.11,-2.6780002,18.525002,-2.6780002 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 75 150)"/> </svg> \ No newline at end of file diff --git a/tests/refs/legend-pos/in_right.svg b/tests/refs/legend-pos/in_right.svg index 16cf201..3dd9e3a 100644 --- a/tests/refs/legend-pos/in_right.svg +++ b/tests/refs/legend-pos/in_right.svg @@ -7,7 +7,7 @@ <path d="M40,260 L200,150 L360,40" fill="none" stroke="#000000" stroke-width="1.5"/> </g> <rect fill="none" height="260" stroke="#000000" stroke-width="1" width="360" x="20" y="20"/> -<rect fill="#ffffff" fill-opacity="0.49803922" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="294.926" y="133.147"/> +<rect fill="#ffffff" fill-opacity="0.5019608" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="294.926" y="133.147"/> <path d="M302.926,150 L327.926,150" fill="none" stroke="#000000" stroke-width="1.5"/> <path d="M2.249,3.484 L1.105,3.484 L1.105,-6.396 L2.249,-6.396 L2.249,3.484 z M5.603,-3.484 L5.603,3.484 L4.459,3.484 L4.459,-3.484 L5.603,-3.484 z M5.044,-6.097 Q5.304,-6.097,5.5055,-5.9215 Q5.7070003,-5.7460003,5.7070003,-5.3690004 Q5.7070003,-5.005,5.5055,-4.823 Q5.304,-4.641,5.044,-4.641 Q4.7580004,-4.641,4.563,-4.823 Q4.368,-5.005,4.368,-5.3690004 Q4.368,-5.7460003,4.563,-5.9215 Q4.7580004,-6.097,5.044,-6.097 z M11.167,-3.614 Q12.415001,-3.614,13.052,-3.0095003 Q13.689,-2.405,13.689,-1.0530002 L13.689,3.484 L12.558001,3.484 L12.558001,-0.97500014 Q12.558001,-1.8199999,12.181,-2.2360003 Q11.804001,-2.6520002,10.998,-2.6520002 Q9.841001,-2.6520002,9.399,-2.002 Q8.957001,-1.352,8.957001,-0.13000011 L8.957001,3.484 L7.813,3.484 L7.813,-3.484 L8.736,-3.484 L8.905001,-2.535 L8.97,-2.535 Q9.204,-2.899,9.5485,-3.1395004 Q9.893001,-3.3800004,10.309,-3.497 Q10.725,-3.614,11.167,-3.614 z M18.538,-3.614 Q19.435001,-3.614,20.0785,-3.2240002 Q20.722,-2.8340003,21.066502,-2.1255 Q21.411001,-1.417,21.411001,-0.46800017 L21.411001,0.22099996 L16.640001,0.22099996 Q16.666,1.404,17.244501,2.0215 Q17.823,2.639,18.863,2.639 Q19.526001,2.639,20.039501,2.5155 Q20.553001,2.392,21.099,2.158 L21.099,3.159 Q20.566002,3.393,20.046001,3.5035 Q19.526001,3.6139998,18.811,3.6139998 Q17.823,3.6139998,17.0625,3.211 Q16.302,2.808,15.8795,2.0085 Q15.457001,1.2089999,15.457001,0.051999807 Q15.457001,-1.0920002,15.840501,-1.911 Q16.224,-2.7300003,16.9195,-3.1720002 Q17.615002,-3.614,18.538,-3.614 z M18.525002,-2.6780002 Q17.706001,-2.6780002,17.2315,-2.1515 Q16.757,-1.6250002,16.666,-0.6889999 L20.215,-0.6889999 Q20.215,-1.287,20.033,-1.7290003 Q19.851002,-2.1710002,19.480501,-2.4245002 Q19.11,-2.6780002,18.525002,-2.6780002 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 337.926 150)"/> </svg> \ No newline at end of file diff --git a/tests/refs/legend-pos/in_top.svg b/tests/refs/legend-pos/in_top.svg index 3131ed0..99e2b63 100644 --- a/tests/refs/legend-pos/in_top.svg +++ b/tests/refs/legend-pos/in_top.svg @@ -7,7 +7,7 @@ <path d="M40,260 L200,150 L360,40" fill="none" stroke="#000000" stroke-width="1.5"/> </g> <rect fill="none" height="260" stroke="#000000" stroke-width="1" width="360" x="20" y="20"/> -<rect fill="#ffffff" fill-opacity="0.49803922" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="163.463" y="32"/> +<rect fill="#ffffff" fill-opacity="0.5019608" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="163.463" y="32"/> <path d="M171.463,48.853 L196.463,48.853" fill="none" stroke="#000000" stroke-width="1.5"/> <path d="M2.249,3.484 L1.105,3.484 L1.105,-6.396 L2.249,-6.396 L2.249,3.484 z M5.603,-3.484 L5.603,3.484 L4.459,3.484 L4.459,-3.484 L5.603,-3.484 z M5.044,-6.097 Q5.304,-6.097,5.5055,-5.9215 Q5.7070003,-5.7460003,5.7070003,-5.3690004 Q5.7070003,-5.005,5.5055,-4.823 Q5.304,-4.641,5.044,-4.641 Q4.7580004,-4.641,4.563,-4.823 Q4.368,-5.005,4.368,-5.3690004 Q4.368,-5.7460003,4.563,-5.9215 Q4.7580004,-6.097,5.044,-6.097 z M11.167,-3.614 Q12.415001,-3.614,13.052,-3.0095003 Q13.689,-2.405,13.689,-1.0530002 L13.689,3.484 L12.558001,3.484 L12.558001,-0.97500014 Q12.558001,-1.8199999,12.181,-2.2360003 Q11.804001,-2.6520002,10.998,-2.6520002 Q9.841001,-2.6520002,9.399,-2.002 Q8.957001,-1.352,8.957001,-0.13000011 L8.957001,3.484 L7.813,3.484 L7.813,-3.484 L8.736,-3.484 L8.905001,-2.535 L8.97,-2.535 Q9.204,-2.899,9.5485,-3.1395004 Q9.893001,-3.3800004,10.309,-3.497 Q10.725,-3.614,11.167,-3.614 z M18.538,-3.614 Q19.435001,-3.614,20.0785,-3.2240002 Q20.722,-2.8340003,21.066502,-2.1255 Q21.411001,-1.417,21.411001,-0.46800017 L21.411001,0.22099996 L16.640001,0.22099996 Q16.666,1.404,17.244501,2.0215 Q17.823,2.639,18.863,2.639 Q19.526001,2.639,20.039501,2.5155 Q20.553001,2.392,21.099,2.158 L21.099,3.159 Q20.566002,3.393,20.046001,3.5035 Q19.526001,3.6139998,18.811,3.6139998 Q17.823,3.6139998,17.0625,3.211 Q16.302,2.808,15.8795,2.0085 Q15.457001,1.2089999,15.457001,0.051999807 Q15.457001,-1.0920002,15.840501,-1.911 Q16.224,-2.7300003,16.9195,-3.1720002 Q17.615002,-3.614,18.538,-3.614 z M18.525002,-2.6780002 Q17.706001,-2.6780002,17.2315,-2.1515 Q16.757,-1.6250002,16.666,-0.6889999 L20.215,-0.6889999 Q20.215,-1.287,20.033,-1.7290003 Q19.851002,-2.1710002,19.480501,-2.4245002 Q19.11,-2.6780002,18.525002,-2.6780002 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 206.463 48.853)"/> </svg> \ No newline at end of file diff --git a/tests/refs/legend-pos/in_top_left.svg b/tests/refs/legend-pos/in_top_left.svg index 5c5aa40..863d92f 100644 --- a/tests/refs/legend-pos/in_top_left.svg +++ b/tests/refs/legend-pos/in_top_left.svg @@ -7,7 +7,7 @@ <path d="M40,260 L200,150 L360,40" fill="none" stroke="#000000" stroke-width="1.5"/> </g> <rect fill="none" height="260" stroke="#000000" stroke-width="1" width="360" x="20" y="20"/> -<rect fill="#ffffff" fill-opacity="0.49803922" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="32" y="32"/> +<rect fill="#ffffff" fill-opacity="0.5019608" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="32" y="32"/> <path d="M40,48.853 L65,48.853" fill="none" stroke="#000000" stroke-width="1.5"/> <path d="M2.249,3.484 L1.105,3.484 L1.105,-6.396 L2.249,-6.396 L2.249,3.484 z M5.603,-3.484 L5.603,3.484 L4.459,3.484 L4.459,-3.484 L5.603,-3.484 z M5.044,-6.097 Q5.304,-6.097,5.5055,-5.9215 Q5.7070003,-5.7460003,5.7070003,-5.3690004 Q5.7070003,-5.005,5.5055,-4.823 Q5.304,-4.641,5.044,-4.641 Q4.7580004,-4.641,4.563,-4.823 Q4.368,-5.005,4.368,-5.3690004 Q4.368,-5.7460003,4.563,-5.9215 Q4.7580004,-6.097,5.044,-6.097 z M11.167,-3.614 Q12.415001,-3.614,13.052,-3.0095003 Q13.689,-2.405,13.689,-1.0530002 L13.689,3.484 L12.558001,3.484 L12.558001,-0.97500014 Q12.558001,-1.8199999,12.181,-2.2360003 Q11.804001,-2.6520002,10.998,-2.6520002 Q9.841001,-2.6520002,9.399,-2.002 Q8.957001,-1.352,8.957001,-0.13000011 L8.957001,3.484 L7.813,3.484 L7.813,-3.484 L8.736,-3.484 L8.905001,-2.535 L8.97,-2.535 Q9.204,-2.899,9.5485,-3.1395004 Q9.893001,-3.3800004,10.309,-3.497 Q10.725,-3.614,11.167,-3.614 z M18.538,-3.614 Q19.435001,-3.614,20.0785,-3.2240002 Q20.722,-2.8340003,21.066502,-2.1255 Q21.411001,-1.417,21.411001,-0.46800017 L21.411001,0.22099996 L16.640001,0.22099996 Q16.666,1.404,17.244501,2.0215 Q17.823,2.639,18.863,2.639 Q19.526001,2.639,20.039501,2.5155 Q20.553001,2.392,21.099,2.158 L21.099,3.159 Q20.566002,3.393,20.046001,3.5035 Q19.526001,3.6139998,18.811,3.6139998 Q17.823,3.6139998,17.0625,3.211 Q16.302,2.808,15.8795,2.0085 Q15.457001,1.2089999,15.457001,0.051999807 Q15.457001,-1.0920002,15.840501,-1.911 Q16.224,-2.7300003,16.9195,-3.1720002 Q17.615002,-3.614,18.538,-3.614 z M18.525002,-2.6780002 Q17.706001,-2.6780002,17.2315,-2.1515 Q16.757,-1.6250002,16.666,-0.6889999 L20.215,-0.6889999 Q20.215,-1.287,20.033,-1.7290003 Q19.851002,-2.1710002,19.480501,-2.4245002 Q19.11,-2.6780002,18.525002,-2.6780002 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 75 48.853)"/> </svg> \ No newline at end of file diff --git a/tests/refs/legend-pos/in_top_right.svg b/tests/refs/legend-pos/in_top_right.svg index 6c5c731..8bc6d2a 100644 --- a/tests/refs/legend-pos/in_top_right.svg +++ b/tests/refs/legend-pos/in_top_right.svg @@ -7,7 +7,7 @@ <path d="M40,260 L200,150 L360,40" fill="none" stroke="#000000" stroke-width="1.5"/> </g> <rect fill="none" height="260" stroke="#000000" stroke-width="1" width="360" x="20" y="20"/> -<rect fill="#ffffff" fill-opacity="0.49803922" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="294.926" y="32"/> +<rect fill="#ffffff" fill-opacity="0.5019608" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="294.926" y="32"/> <path d="M302.926,48.853 L327.926,48.853" fill="none" stroke="#000000" stroke-width="1.5"/> <path d="M2.249,3.484 L1.105,3.484 L1.105,-6.396 L2.249,-6.396 L2.249,3.484 z M5.603,-3.484 L5.603,3.484 L4.459,3.484 L4.459,-3.484 L5.603,-3.484 z M5.044,-6.097 Q5.304,-6.097,5.5055,-5.9215 Q5.7070003,-5.7460003,5.7070003,-5.3690004 Q5.7070003,-5.005,5.5055,-4.823 Q5.304,-4.641,5.044,-4.641 Q4.7580004,-4.641,4.563,-4.823 Q4.368,-5.005,4.368,-5.3690004 Q4.368,-5.7460003,4.563,-5.9215 Q4.7580004,-6.097,5.044,-6.097 z M11.167,-3.614 Q12.415001,-3.614,13.052,-3.0095003 Q13.689,-2.405,13.689,-1.0530002 L13.689,3.484 L12.558001,3.484 L12.558001,-0.97500014 Q12.558001,-1.8199999,12.181,-2.2360003 Q11.804001,-2.6520002,10.998,-2.6520002 Q9.841001,-2.6520002,9.399,-2.002 Q8.957001,-1.352,8.957001,-0.13000011 L8.957001,3.484 L7.813,3.484 L7.813,-3.484 L8.736,-3.484 L8.905001,-2.535 L8.97,-2.535 Q9.204,-2.899,9.5485,-3.1395004 Q9.893001,-3.3800004,10.309,-3.497 Q10.725,-3.614,11.167,-3.614 z M18.538,-3.614 Q19.435001,-3.614,20.0785,-3.2240002 Q20.722,-2.8340003,21.066502,-2.1255 Q21.411001,-1.417,21.411001,-0.46800017 L21.411001,0.22099996 L16.640001,0.22099996 Q16.666,1.404,17.244501,2.0215 Q17.823,2.639,18.863,2.639 Q19.526001,2.639,20.039501,2.5155 Q20.553001,2.392,21.099,2.158 L21.099,3.159 Q20.566002,3.393,20.046001,3.5035 Q19.526001,3.6139998,18.811,3.6139998 Q17.823,3.6139998,17.0625,3.211 Q16.302,2.808,15.8795,2.0085 Q15.457001,1.2089999,15.457001,0.051999807 Q15.457001,-1.0920002,15.840501,-1.911 Q16.224,-2.7300003,16.9195,-3.1720002 Q17.615002,-3.614,18.538,-3.614 z M18.525002,-2.6780002 Q17.706001,-2.6780002,17.2315,-2.1515 Q16.757,-1.6250002,16.666,-0.6889999 L20.215,-0.6889999 Q20.215,-1.287,20.033,-1.7290003 Q19.851002,-2.1710002,19.480501,-2.4245002 Q19.11,-2.6780002,18.525002,-2.6780002 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 337.926 48.853)"/> </svg> \ No newline at end of file diff --git a/tests/refs/legend-pos/left.svg b/tests/refs/legend-pos/left.svg index 3076852..a0a63e6 100644 --- a/tests/refs/legend-pos/left.svg +++ b/tests/refs/legend-pos/left.svg @@ -7,7 +7,7 @@ <path d="M125.074005,260 L242.537,150 L360,40" fill="none" stroke="#000000" stroke-width="1.5"/> </g> <rect fill="none" height="260" stroke="#000000" stroke-width="1" width="274.926" x="105.074005" y="20"/> -<rect fill="#ffffff" fill-opacity="0.49803922" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="20" y="133.147"/> +<rect fill="#ffffff" fill-opacity="0.5019608" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="20" y="133.147"/> <path d="M28,150 L53,150" fill="none" stroke="#000000" stroke-width="1.5"/> <path d="M2.249,3.484 L1.105,3.484 L1.105,-6.396 L2.249,-6.396 L2.249,3.484 z M5.603,-3.484 L5.603,3.484 L4.459,3.484 L4.459,-3.484 L5.603,-3.484 z M5.044,-6.097 Q5.304,-6.097,5.5055,-5.9215 Q5.7070003,-5.7460003,5.7070003,-5.3690004 Q5.7070003,-5.005,5.5055,-4.823 Q5.304,-4.641,5.044,-4.641 Q4.7580004,-4.641,4.563,-4.823 Q4.368,-5.005,4.368,-5.3690004 Q4.368,-5.7460003,4.563,-5.9215 Q4.7580004,-6.097,5.044,-6.097 z M11.167,-3.614 Q12.415001,-3.614,13.052,-3.0095003 Q13.689,-2.405,13.689,-1.0530002 L13.689,3.484 L12.558001,3.484 L12.558001,-0.97500014 Q12.558001,-1.8199999,12.181,-2.2360003 Q11.804001,-2.6520002,10.998,-2.6520002 Q9.841001,-2.6520002,9.399,-2.002 Q8.957001,-1.352,8.957001,-0.13000011 L8.957001,3.484 L7.813,3.484 L7.813,-3.484 L8.736,-3.484 L8.905001,-2.535 L8.97,-2.535 Q9.204,-2.899,9.5485,-3.1395004 Q9.893001,-3.3800004,10.309,-3.497 Q10.725,-3.614,11.167,-3.614 z M18.538,-3.614 Q19.435001,-3.614,20.0785,-3.2240002 Q20.722,-2.8340003,21.066502,-2.1255 Q21.411001,-1.417,21.411001,-0.46800017 L21.411001,0.22099996 L16.640001,0.22099996 Q16.666,1.404,17.244501,2.0215 Q17.823,2.639,18.863,2.639 Q19.526001,2.639,20.039501,2.5155 Q20.553001,2.392,21.099,2.158 L21.099,3.159 Q20.566002,3.393,20.046001,3.5035 Q19.526001,3.6139998,18.811,3.6139998 Q17.823,3.6139998,17.0625,3.211 Q16.302,2.808,15.8795,2.0085 Q15.457001,1.2089999,15.457001,0.051999807 Q15.457001,-1.0920002,15.840501,-1.911 Q16.224,-2.7300003,16.9195,-3.1720002 Q17.615002,-3.614,18.538,-3.614 z M18.525002,-2.6780002 Q17.706001,-2.6780002,17.2315,-2.1515 Q16.757,-1.6250002,16.666,-0.6889999 L20.215,-0.6889999 Q20.215,-1.287,20.033,-1.7290003 Q19.851002,-2.1710002,19.480501,-2.4245002 Q19.11,-2.6780002,18.525002,-2.6780002 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 63 150)"/> </svg> \ No newline at end of file diff --git a/tests/refs/legend-pos/right.svg b/tests/refs/legend-pos/right.svg index 3d19755..7800ecd 100644 --- a/tests/refs/legend-pos/right.svg +++ b/tests/refs/legend-pos/right.svg @@ -7,7 +7,7 @@ <path d="M40,260 L157.463,150 L274.926,40" fill="none" stroke="#000000" stroke-width="1.5"/> </g> <rect fill="none" height="260" stroke="#000000" stroke-width="1" width="274.926" x="20" y="20"/> -<rect fill="#ffffff" fill-opacity="0.49803922" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="306.926" y="133.147"/> +<rect fill="#ffffff" fill-opacity="0.5019608" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="306.926" y="133.147"/> <path d="M314.926,150 L339.926,150" fill="none" stroke="#000000" stroke-width="1.5"/> <path d="M2.249,3.484 L1.105,3.484 L1.105,-6.396 L2.249,-6.396 L2.249,3.484 z M5.603,-3.484 L5.603,3.484 L4.459,3.484 L4.459,-3.484 L5.603,-3.484 z M5.044,-6.097 Q5.304,-6.097,5.5055,-5.9215 Q5.7070003,-5.7460003,5.7070003,-5.3690004 Q5.7070003,-5.005,5.5055,-4.823 Q5.304,-4.641,5.044,-4.641 Q4.7580004,-4.641,4.563,-4.823 Q4.368,-5.005,4.368,-5.3690004 Q4.368,-5.7460003,4.563,-5.9215 Q4.7580004,-6.097,5.044,-6.097 z M11.167,-3.614 Q12.415001,-3.614,13.052,-3.0095003 Q13.689,-2.405,13.689,-1.0530002 L13.689,3.484 L12.558001,3.484 L12.558001,-0.97500014 Q12.558001,-1.8199999,12.181,-2.2360003 Q11.804001,-2.6520002,10.998,-2.6520002 Q9.841001,-2.6520002,9.399,-2.002 Q8.957001,-1.352,8.957001,-0.13000011 L8.957001,3.484 L7.813,3.484 L7.813,-3.484 L8.736,-3.484 L8.905001,-2.535 L8.97,-2.535 Q9.204,-2.899,9.5485,-3.1395004 Q9.893001,-3.3800004,10.309,-3.497 Q10.725,-3.614,11.167,-3.614 z M18.538,-3.614 Q19.435001,-3.614,20.0785,-3.2240002 Q20.722,-2.8340003,21.066502,-2.1255 Q21.411001,-1.417,21.411001,-0.46800017 L21.411001,0.22099996 L16.640001,0.22099996 Q16.666,1.404,17.244501,2.0215 Q17.823,2.639,18.863,2.639 Q19.526001,2.639,20.039501,2.5155 Q20.553001,2.392,21.099,2.158 L21.099,3.159 Q20.566002,3.393,20.046001,3.5035 Q19.526001,3.6139998,18.811,3.6139998 Q17.823,3.6139998,17.0625,3.211 Q16.302,2.808,15.8795,2.0085 Q15.457001,1.2089999,15.457001,0.051999807 Q15.457001,-1.0920002,15.840501,-1.911 Q16.224,-2.7300003,16.9195,-3.1720002 Q17.615002,-3.614,18.538,-3.614 z M18.525002,-2.6780002 Q17.706001,-2.6780002,17.2315,-2.1515 Q16.757,-1.6250002,16.666,-0.6889999 L20.215,-0.6889999 Q20.215,-1.287,20.033,-1.7290003 Q19.851002,-2.1710002,19.480501,-2.4245002 Q19.11,-2.6780002,18.525002,-2.6780002 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 349.926 150)"/> </svg> \ No newline at end of file diff --git a/tests/refs/legend-pos/top.svg b/tests/refs/legend-pos/top.svg index 5e84a75..88bff2a 100644 --- a/tests/refs/legend-pos/top.svg +++ b/tests/refs/legend-pos/top.svg @@ -7,7 +7,7 @@ <path d="M40,260 L200,172.853 L360,85.70599" fill="none" stroke="#000000" stroke-width="1.5"/> </g> <rect fill="none" height="214.294" stroke="#000000" stroke-width="1" width="360" x="20" y="65.706"/> -<rect fill="#ffffff" fill-opacity="0.49803922" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="163.463" y="20"/> +<rect fill="#ffffff" fill-opacity="0.5019608" height="33.706" stroke="#000000" stroke-width="1" width="73.074005" x="163.463" y="20"/> <path d="M171.463,36.853 L196.463,36.853" fill="none" stroke="#000000" stroke-width="1.5"/> <path d="M2.249,3.484 L1.105,3.484 L1.105,-6.396 L2.249,-6.396 L2.249,3.484 z M5.603,-3.484 L5.603,3.484 L4.459,3.484 L4.459,-3.484 L5.603,-3.484 z M5.044,-6.097 Q5.304,-6.097,5.5055,-5.9215 Q5.7070003,-5.7460003,5.7070003,-5.3690004 Q5.7070003,-5.005,5.5055,-4.823 Q5.304,-4.641,5.044,-4.641 Q4.7580004,-4.641,4.563,-4.823 Q4.368,-5.005,4.368,-5.3690004 Q4.368,-5.7460003,4.563,-5.9215 Q4.7580004,-6.097,5.044,-6.097 z M11.167,-3.614 Q12.415001,-3.614,13.052,-3.0095003 Q13.689,-2.405,13.689,-1.0530002 L13.689,3.484 L12.558001,3.484 L12.558001,-0.97500014 Q12.558001,-1.8199999,12.181,-2.2360003 Q11.804001,-2.6520002,10.998,-2.6520002 Q9.841001,-2.6520002,9.399,-2.002 Q8.957001,-1.352,8.957001,-0.13000011 L8.957001,3.484 L7.813,3.484 L7.813,-3.484 L8.736,-3.484 L8.905001,-2.535 L8.97,-2.535 Q9.204,-2.899,9.5485,-3.1395004 Q9.893001,-3.3800004,10.309,-3.497 Q10.725,-3.614,11.167,-3.614 z M18.538,-3.614 Q19.435001,-3.614,20.0785,-3.2240002 Q20.722,-2.8340003,21.066502,-2.1255 Q21.411001,-1.417,21.411001,-0.46800017 L21.411001,0.22099996 L16.640001,0.22099996 Q16.666,1.404,17.244501,2.0215 Q17.823,2.639,18.863,2.639 Q19.526001,2.639,20.039501,2.5155 Q20.553001,2.392,21.099,2.158 L21.099,3.159 Q20.566002,3.393,20.046001,3.5035 Q19.526001,3.6139998,18.811,3.6139998 Q17.823,3.6139998,17.0625,3.211 Q16.302,2.808,15.8795,2.0085 Q15.457001,1.2089999,15.457001,0.051999807 Q15.457001,-1.0920002,15.840501,-1.911 Q16.224,-2.7300003,16.9195,-3.1720002 Q17.615002,-3.614,18.538,-3.614 z M18.525002,-2.6780002 Q17.706001,-2.6780002,17.2315,-2.1515 Q16.757,-1.6250002,16.666,-0.6889999 L20.215,-0.6889999 Q20.215,-1.287,20.033,-1.7290003 Q19.851002,-2.1710002,19.480501,-2.4245002 Q19.11,-2.6780002,18.525002,-2.6780002 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 206.463 36.853)"/> </svg> \ No newline at end of file diff --git a/tests/refs/series/area-double-legend.svg b/tests/refs/series/area-double-legend.svg index 8bbf7ab..4496df1 100644 --- a/tests/refs/series/area-double-legend.svg +++ b/tests/refs/series/area-double-legend.svg @@ -1,6 +1,6 @@ <svg height="300" viewBox="0 0 400 300" width="400" xmlns="http://www.w3.org/2000/svg"> <rect fill="#ffffff" height="100%" width="100%"/> -<rect fill="#ffffff" fill-opacity="0.49803922" height="33.706" stroke="#000000" stroke-width="1" width="170.926" x="114.537" y="246.294"/> +<rect fill="#ffffff" fill-opacity="0.5019608" height="33.706" stroke="#000000" stroke-width="1" width="170.926" x="114.537" y="246.294"/> <rect fill="#888888" height="14" stroke="none" width="25" x="122.537" y="256.147"/> <path d="M122.537,256.147 L147.537,256.147" fill="none" stroke="#000000" stroke-width="1.5"/> <path d="M122.537,270.147 L147.537,270.147" fill="none" stroke="#000000" stroke-width="1.5"/> diff --git a/tests/refs/series/scatter-sizes.png b/tests/refs/series/scatter-sizes.png index 49ad4d0..eba2215 100644 Binary files a/tests/refs/series/scatter-sizes.png and b/tests/refs/series/scatter-sizes.png differ diff --git a/tests/refs/series/scatter-sizes.svg b/tests/refs/series/scatter-sizes.svg index 46b3187..f9c881a 100644 --- a/tests/refs/series/scatter-sizes.svg +++ b/tests/refs/series/scatter-sizes.svg @@ -4,11 +4,11 @@ <rect height="260" width="360" x="20" y="20"/> </clipPath> <g clip-path="url(#plotive-clip1)"> -<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#894585" fill-opacity="0.6" stroke="#894585" stroke-width="0.115470044" transform="matrix(17.320509 0 0 17.320509 40 260)"/> -<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#894585" fill-opacity="0.6" stroke="#894585" stroke-width="0.12649111" transform="matrix(15.811388 0 0 15.811388 120.00001 232.5)"/> -<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#894585" fill-opacity="0.6" stroke="#894585" stroke-width="0.14142136" transform="matrix(14.142136 0 0 14.142136 200 186.66666)"/> -<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#894585" fill-opacity="0.6" stroke="#894585" stroke-width="0.1632993" transform="matrix(12.247449 0 0 12.247449 280 122.5)"/> -<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#894585" fill-opacity="0.6" stroke="#894585" stroke-width="0.2" transform="matrix(10 0 0 10 360 40)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#894585" fill-opacity="0.6" stroke="#894585" stroke-width="0.08318903" transform="matrix(24.04163 0 0 24.04163 40 260)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#894585" fill-opacity="0.6" stroke="#894585" stroke-width="0.11764706" transform="matrix(17 0 0 17 120.00001 232.5)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#894585" fill-opacity="0.6" stroke="#894585" stroke-width="0.16637807" transform="matrix(12.020815 0 0 12.020815 200 186.66666)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#894585" fill-opacity="0.6" stroke="#894585" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 280 122.5)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#894585" fill-opacity="0.6" stroke="#894585" stroke-width="0.33275613" transform="matrix(6.0104074 0 0 6.0104074 360 40)"/> </g> <rect fill="none" height="260" stroke="#000000" stroke-width="1" width="360" x="20" y="20"/> </svg> \ No newline at end of file diff --git a/tests/src/tests.rs b/tests/src/tests.rs index d32e1b8..d8ab900 100644 --- a/tests/src/tests.rs +++ b/tests/src/tests.rs @@ -1,4 +1,5 @@ use plotive::{des, geom}; +use rand::SeedableRng; use crate::*; @@ -42,7 +43,21 @@ fn line2(x: &[f64], y: &[f64]) -> des::series::Line { des::series::Line::new(x.into(), y.into()) } +/// Get a predictable random number generator +fn rng(seed: Option<u64>) -> impl rand::Rng { + let seed = seed.unwrap_or(1234567890987654321); + rand_chacha::ChaCha8Rng::seed_from_u64(seed) +} + +fn make_col<D>(n: usize, distr: D, rng: &mut impl rand::Rng) -> Vec<f64> +where + D: rand_distr::Distribution<f64>, +{ + (0..n).map(|_| distr.sample(rng)).collect() +} + mod axes; +mod colorbar; mod interp; mod legend; mod nulls; diff --git a/tests/src/tests/colorbar.rs b/tests/src/tests/colorbar.rs new file mode 100644 index 0000000..6782e54 --- /dev/null +++ b/tests/src/tests/colorbar.rs @@ -0,0 +1,150 @@ +use plotive::des::cmap; +use plotive::{des, style}; +use rand_distr::Uniform; + +use crate::tests::fig_small; +use crate::{TestHarness, assert_fig_eq_ref}; + +fn columns() -> (Vec<f64>, Vec<f64>, Vec<f64>) { + let mut rng = super::rng(None); + let distr = Uniform::new(0.0, 1.0).unwrap(); + + let x = super::make_col(15, distr, &mut rng); + let y = super::make_col(15, distr, &mut rng); + let col = super::make_col(15, distr, &mut rng); + + (x, y, col) +} + +#[test] +fn colorbar_default() { + let (x, y, col) = columns(); + + let plot = des::Plot::new(vec![ + des::series::Scatter::new(des::data_inline(x), des::data_inline(y)) + .with_color_data(des::data_inline(col), cmap::viridis()) + .with_marker( + style::series::Marker::default() + .with_fill_opacity(0.7) + .with_stroke_width(2.0), + ) + .into(), + ]) + .with_colorbar(Default::default()); + let fig = fig_small(plot); + + assert_fig_eq_ref!(&fig, "colorbar/default"); +} + +#[test] +fn colorbar_default_with_axes() { + let (x, y, col) = columns(); + + let plot = des::Plot::new(vec![ + des::series::Scatter::new(des::data_inline(x), des::data_inline(y)) + .with_color_data(des::data_inline(col), cmap::viridis()) + .with_marker( + style::series::Marker::default() + .with_fill_opacity(0.7) + .with_stroke_width(2.0), + ) + .into(), + ]) + .with_x_axis( + des::Axis::default() + .with_ticks(des::axis::Ticks::default()) + .with_title("x".into()), + ) + .with_y_axis( + des::Axis::default() + .with_ticks(des::axis::Ticks::default()) + .with_title("y".into()), + ) + .with_colorbar(Default::default()); + let fig = fig_small(plot); + + assert_fig_eq_ref!(&fig, "colorbar/default-with-axes"); +} + +#[test] +fn colorbar_forced_scale() { + let (x, y, col) = columns(); + + let plot = des::Plot::new(vec![ + des::series::Scatter::new(des::data_inline(x), des::data_inline(y)) + .with_color_data( + des::data_inline(col), + cmap::viridis().with_data_range((0.0, 2.0)), + ) + .with_marker( + style::series::Marker::default() + .with_fill_opacity(0.7) + .with_stroke_width(2.0), + ) + .into(), + ]) + .with_colorbar(Default::default()); + let fig = fig_small(plot); + + assert_fig_eq_ref!(&fig, "colorbar/forced-scale"); +} + +#[test] +fn colorbar_left() { + let (x, y, col) = columns(); + + let plot = des::Plot::new(vec![ + des::series::Scatter::new(des::data_inline(x), des::data_inline(y)) + .with_color_data(des::data_inline(col), cmap::viridis()) + .with_marker( + style::series::Marker::default() + .with_fill_opacity(0.7) + .with_stroke_width(2.0), + ) + .into(), + ]) + .with_colorbar(des::ColorBarPos::Left.into()); + let fig = fig_small(plot); + + assert_fig_eq_ref!(&fig, "colorbar/left"); +} + +#[test] +fn colorbar_top() { + let (x, y, col) = columns(); + + let plot = des::Plot::new(vec![ + des::series::Scatter::new(des::data_inline(x), des::data_inline(y)) + .with_color_data(des::data_inline(col), cmap::viridis()) + .with_marker( + style::series::Marker::default() + .with_fill_opacity(0.7) + .with_stroke_width(2.0), + ) + .into(), + ]) + .with_colorbar(des::ColorBarPos::Top.into()); + let fig = fig_small(plot); + + assert_fig_eq_ref!(&fig, "colorbar/top"); +} + +#[test] +fn colorbar_bottom() { + let (x, y, col) = columns(); + + let plot = des::Plot::new(vec![ + des::series::Scatter::new(des::data_inline(x), des::data_inline(y)) + .with_color_data(des::data_inline(col), cmap::viridis()) + .with_marker( + style::series::Marker::default() + .with_fill_opacity(0.7) + .with_stroke_width(2.0), + ) + .into(), + ]) + .with_colorbar(des::ColorBarPos::Bottom.into()); + let fig = fig_small(plot); + + assert_fig_eq_ref!(&fig, "colorbar/bottom"); +} diff --git a/tests/src/tests/series.rs b/tests/src/tests/series.rs index 1031aa5..fd7efa1 100644 --- a/tests/src/tests/series.rs +++ b/tests/src/tests/series.rs @@ -35,13 +35,13 @@ fn series_scatter_nodata() { fn series_scatter_sizes() { let x = vec![1.0, 2.0, 3.0, 4.0, 5.0]; let y = vec![1.0, 4.0, 9.0, 16.0, 25.0]; - let sizes = vec![300.0, 250.0, 200.0, 150.0, 100.0]; + let sizes = vec![8.0, 4.0, 2.0, 1.0, 0.5]; - let color: plotive::ColorU8 = "light eggplant".parse().unwrap(); + let color: plotive::Rgba8 = "light eggplant".parse().unwrap(); let plot = des::Plot::new(vec![ des::series::Scatter::new(des::data_inline(x), des::data_inline(y)) - .with_sizes(des::data_inline(sizes)) + .with_size_data(des::data_inline(sizes)) .with_marker( style::series::Marker::default() .with_color(color.into()) @@ -61,8 +61,8 @@ fn series_area_double() { let y1 = vec![10.0, 15.0, 8.0, 6.0, 12.0, 10.0]; let y2 = vec![4.0, 9.0, 2.0, 0.0, 6.0, 4.0]; - let fill = plotive::ColorU8::from_html(b"#888").into(); - let stroke: style::series::Stroke = plotive::ColorU8::from_html(b"#000").into(); + let fill = plotive::Rgba8::from_hex(b"#888").into(); + let stroke: style::series::Stroke = plotive::Rgba8::from_hex(b"#000").into(); let plot = des::Plot::new(vec![ des::series::Area::new( @@ -95,9 +95,9 @@ fn series_area_double_legend() { let y1 = vec![10.0, 15.0, 8.0, 6.0, 12.0, 10.0]; let y2 = vec![4.0, 9.0, 2.0, 0.0, 6.0, 4.0]; - let fill1 = plotive::ColorU8::from_html(b"#888").into(); - let fill2 = plotive::ColorU8::from_html(b"#444").into(); - let stroke: style::series::Stroke = plotive::ColorU8::from_html(b"#000").into(); + let fill1 = plotive::Rgba8::from_hex(b"#888").into(); + let fill2 = plotive::Rgba8::from_hex(b"#444").into(); + let stroke: style::series::Stroke = plotive::Rgba8::from_hex(b"#000").into(); let plot = des::Plot::new(vec![ des::series::Area::new( diff --git a/tests/src/tests/style.rs b/tests/src/tests/style.rs index 06c8169..20ad551 100644 --- a/tests/src/tests/style.rs +++ b/tests/src/tests/style.rs @@ -1,5 +1,5 @@ use plotive::utils::MplStyle; -use plotive::{ColorU8, des}; +use plotive::{Rgba8, des}; use super::{fig_small, line}; use crate::{TestHarness, assert_fig_eq_ref}; @@ -137,9 +137,9 @@ fn style_line_markers_triup_color() { let plot = line_spline() .with_marker( plotive::style::series::Marker::new_with_color( - plotive::ColorU8::from_html(b"#000").into(), + plotive::Rgba8::from_hex(b"#000").into(), ) - .with_stroke(ColorU8::from_html(b"#080").into()) + .with_stroke(Rgba8::from_hex(b"#080").into()) .with_shape(plotive::style::MarkerShape::TriangleUp), ) .into_plot(); diff --git a/text/src/rich.rs b/text/src/rich.rs index 5593e09..4c54c82 100644 --- a/text/src/rich.rs +++ b/text/src/rich.rs @@ -1,4 +1,4 @@ -use plotive_base::{Color, ColorU8, color, geom}; +use plotive_base::{Color, Rgba8, color, geom}; use ttf_parser as ttf; use crate::{Error, font, fontdb, line}; @@ -199,7 +199,7 @@ where } #[derive(Debug, Clone)] -pub struct RichText<C = ColorU8> +pub struct RichText<C = Rgba8> where C: Clone, { @@ -386,7 +386,7 @@ pub trait Foreground { fn foreground() -> Self; } -impl Foreground for ColorU8 { +impl Foreground for Rgba8 { fn foreground() -> Self { color::BLACK } diff --git a/text/src/rich/builder.rs b/text/src/rich/builder.rs index e12ae34..046897a 100644 --- a/text/src/rich/builder.rs +++ b/text/src/rich/builder.rs @@ -694,7 +694,7 @@ where #[cfg(test)] mod tests { - use plotive_base::ColorU8; + use plotive_base::Rgba8; use super::*; use crate::bundled_font_db; @@ -702,7 +702,7 @@ mod tests { #[test] fn underline_span() { let db = bundled_font_db(); - let mut builder: RichTextBuilder<ColorU8> = + let mut builder: RichTextBuilder<Rgba8> = RichTextBuilder::new("Some RICH\ntext string".to_string(), TextProps::new(12.0)); builder.add_span( 5, diff --git a/text/src/rich/render.rs b/text/src/rich/render.rs index 6cf9259..7c16bac 100644 --- a/text/src/rich/render.rs +++ b/text/src/rich/render.rs @@ -1,11 +1,11 @@ -use plotive_base::{ColorU8, geom}; +use plotive_base::{Rgba8, geom}; use ttf_parser as ttf; use super::RichText; use crate::{font, fontdb}; #[derive(Debug)] -pub enum RichPrimitive<'a, C = ColorU8> +pub enum RichPrimitive<'a, C = Rgba8> where C: Clone, { @@ -104,12 +104,12 @@ pub fn render_rich_text( let render_fn = |primitive: RichPrimitive| match primitive { RichPrimitive::Fill(path, color) => { let mut paint = tiny_skia::Paint::default(); - paint.set_color_rgba8(color.red(), color.green(), color.blue(), color.alpha()); + paint.set_color_rgba8(color.r(), color.g(), color.b(), color.a()); pixmap.fill_path(path, &paint, tiny_skia::FillRule::Winding, transform, mask); } RichPrimitive::Stroke(path, color, width) => { let mut paint = tiny_skia::Paint::default(); - paint.set_color_rgba8(color.red(), color.green(), color.blue(), color.alpha()); + paint.set_color_rgba8(color.r(), color.g(), color.b(), color.a()); let mut stroke = tiny_skia::Stroke::default(); stroke.width = width; pixmap.stroke_path(path, &paint, &stroke, transform, mask);