You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DiesalLibs/DiesalStyle-2.0/DiesalStyle-2.0.lua

5213 lines
190 KiB

local MAJOR, MINOR = "DiesalStyle-2.0", 1
---@alias Diesal.Style DiesalStyle-2.0
---@class DiesalStyle-2.0
local DiesalStyle, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
if not DiesalStyle then
return
end -- No Upgrade needed.
-- ~~| Libraries |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local DiesalTools = LibStub("DiesalTools-2.0")
local LibSharedMedia = LibStub("LibSharedMedia-3.0")
-- ~~| Lib Upvalues |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local GetIconCoords, HSL = DiesalTools.GetIconCoords, DiesalTools.HSL
-- ~~| Lua Upvalues |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local type, select, pairs, tonumber = type, select, pairs, tonumber
local next = next
local format, sub = string.format, string.sub
local min, max = math.min, math.max
-- ~~| WoW Upvalues |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local errorhandler = geterrorhandler()
-- ~~| DiesalStyle Values |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---@type { [string]: { [string]: string } }
DiesalStyle.Media = DiesalStyle.Media or {}
DiesalStyle.ReleasedTextures = DiesalStyle.ReleasedTextures or {}
DiesalStyle.TextureFrame = DiesalStyle.TextureFrame or CreateFrame("Frame")
DiesalStyle.TextureFrame:Hide()
DiesalStyle.Colors = DiesalStyle.Colors or {}
DiesalStyle.Formatters = DiesalStyle.Formatters or {}
-- ~~| DiesalStyle UpValues |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local AddonName = ...
---@type table<Diesal.Style.Texture, boolean>
local ReleasedTextures = DiesalStyle.ReleasedTextures
local TextureFrame = DiesalStyle.TextureFrame
local Media = DiesalStyle.Media
local Colors = DiesalStyle.Colors
local Formatters = DiesalStyle.Formatters
-- ~~| Locals |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local OUTLINES = { "_LEFT", "_RIGHT", "_TOP", "_BOTTOM" }
---@diagnostic disable-next-line: undefined-global
local MEDIA_PATH = MEDIA_PATH
or type(AddonName) == "table" and string.format("Interface\\AddOns\\Media\\")
or AddonName == "DiesalLibs" and string.format("Interface\\AddOns\\%s\\%s\\Media\\", AddonName, MAJOR)
or string.format("Interface\\AddOns\\%s\\Libs\\%s\\Media\\", AddonName, MAJOR)
local DEFAULT_COLOR = "FFFFFF"
local DEFAULT_GRADIENT_ORIENTATION = "horizontal"
local DEFAULT_LAYER = "ARTWORK"
-- ~~| Local Methods |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local function addMedia(mediaType, name, mediaFile)
Media[mediaType] = Media[mediaType] or {}
-- update or create new media entry
Media[mediaType][name] = MEDIA_PATH .. mediaFile
end
local function getMedia(mediaType, name)
if not Media[mediaType] then
error("media type: " .. mediaType .. " does not exist", 2)
return
end
if not Media[mediaType][name] then
error('media: "' .. name .. '" does not exist', 2)
return
end
return Media[mediaType][name]
end
local function newTexture()
local nt = next(ReleasedTextures)
if not nt then
nt = TextureFrame:CreateTexture() --[[@as Diesal.Style.Texture]]
else
nt:Show()
ReleasedTextures[nt] = nil
end
return nt
end
local function releaseTexture(texture)
-- reset texture
texture:ClearAllPoints()
texture:SetDrawLayer("ARTWORK", 0)
-- texture:SetTexCoord(0,1,0,1)
-- specific order based on testing! for a close as possible full texture reset
-- texture:SetGradientAlpha('HORIZONTAL',1,1,1,1,1,1,1,1)
-- texture:SetColorTexture(0,0,0,0)
-- texture:SetTexture()
-- texture:SetVertexColor(1,1,1,1)
texture:SetParent(TextureFrame)
texture:Hide()
texture.style = nil
if ReleasedTextures[texture] then
error("Attempt to Release a texture that is already released", 2)
end
ReleasedTextures[texture] = true
end
local function round(number, base)
base = base or 1
return floor((number + base / 2) / base) * base
end
local function GetBlizzColorValues(value)
if not value then
return
end
if type(value) == "table" and #value >= 3 then
return value[1] / 255, value[2] / 255, value[3] / 255
elseif type(value) == "string" then
return tonumber(sub(value, 1, 2), 16) / 255, tonumber(sub(value, 3, 4), 16) / 255, tonumber(sub(value, 5, 6), 16) / 255
end
end
local function formatCoords(coords)
if type(coords) ~= "table" then
return
end
if #coords == 5 then
return { GetIconCoords(coords[1], coords[2], coords[3], coords[4], coords[5]) }
else
return coords
end
end
local function formatFile(file)
if type(file) ~= "string" and type(file) ~= "number" then
return
end
return Media.texture[file] or file
end
local function formatPosition(position)
if type(position) ~= "table" and type(position) ~= "number" then
return
end
return type(position) == "number" and { position, position, position, position } or position
end
---@param orientation string
local function formatOrientation(orientation)
if type(orientation) ~= "string" then
return
end
return orientation:upper()
end
local function formatAlpha(alpha)
if type(alpha) ~= "table" and type(alpha) ~= "number" then
return
end
return type(alpha) == "number" and { alpha, alpha } or alpha
end
local function CreateColor(r, g, b, a)
return {
r = r or 0,
g = g or 0,
b = b or 0,
a = a or 1,
}
end
-- error handling
local function setColor(texture, r, g, b, a)
local status, err = pcall(texture.SetColorTexture, texture, r, g, b, a)
if not status then
errorhandler('error in "' .. (texture.style.name or "texture") .. '" ' .. texture.style.mode .. " or alpha setting", r, g, b, a)
end
end
local function setGradient(texture, orientation, r1, g1, b1, a1, r2, g2, b2, a2)
local status, err = pcall(texture.SetGradient, texture, orientation, CreateColor(r1, g1, b1, a1), CreateColor(r2, g2, b2, a2))
if not status then
errorhandler('error in "' .. (texture.style.name or "texture") .. '" ' .. texture.style.mode .. " or alpha setting.")
end
end
-- ~~| Media |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
do -- | Set Colors |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
do -- google material colors
Colors.red_50 = "fde0dc"
Colors.red_100 = "f9bdbb"
Colors.red_200 = "f69988"
Colors.red_300 = "f36c60"
Colors.red_400 = "e84e40"
Colors.red_500 = "e51c23"
Colors.red_600 = "dd191d"
Colors.red_700 = "d01716"
Colors.red_800 = "c41411"
Colors.red_900 = "b0120a"
Colors.red_A100 = "FF8A80"
Colors.red_A200 = "FF5252"
Colors.red_A400 = "FF1744"
Colors.red_A700 = "D50000"
Colors.pink_50 = "fce4ec"
Colors.pink_100 = "f8bbd0"
Colors.pink_200 = "f48fb1"
Colors.pink_300 = "f06292"
Colors.pink_400 = "ec407a"
Colors.pink_500 = "e91e63"
Colors.pink_600 = "d81b60"
Colors.pink_700 = "c2185b"
Colors.pink_800 = "ad1457"
Colors.pink_900 = "880e4f"
Colors.pink_A100 = "FF80AB"
Colors.pink_A200 = "FF4081"
Colors.pink_A400 = "F50057"
Colors.pink_A700 = "C51162"
Colors.purple_50 = "f3e5f5"
Colors.purple_100 = "e1bee7"
Colors.purple_200 = "ce93d8"
Colors.purple_300 = "ba68c8"
Colors.purple_400 = "ab47bc"
Colors.purple_500 = "9c27b0"
Colors.purple_600 = "8e24aa"
Colors.purple_700 = "7b1fa2"
Colors.purple_800 = "6a1b9a"
Colors.purple_900 = "4a148c"
Colors.purple_A100 = "EA80FC"
Colors.purple_A200 = "E040FB"
Colors.purple_A400 = "D500F9"
Colors.purple_A700 = "AA00FF"
Colors.dark_purple_50 = "ede7f6"
Colors.dark_purple_100 = "d1c4e9"
Colors.dark_purple_200 = "b39ddb"
Colors.dark_purple_300 = "9575cd"
Colors.dark_purple_400 = "7e57c2"
Colors.dark_purple_500 = "673ab7"
Colors.dark_purple_600 = "5e35b1"
Colors.dark_purple_700 = "512da8"
Colors.dark_purple_800 = "4527a0"
Colors.dark_purple_900 = "311b92"
Colors.dark_purple_A100 = "B388FF"
Colors.dark_purple_A200 = "7C4DFF"
Colors.dark_purple_A400 = "651FFF"
Colors.dark_purple_A700 = "6200EA"
Colors.indigo_50 = "e8eaf6"
Colors.indigo_100 = "c5cae9"
Colors.indigo_200 = "9fa8da"
Colors.indigo_300 = "7986cb"
Colors.indigo_400 = "5c6bc0"
Colors.indigo_500 = "3f51b5"
Colors.indigo_600 = "3949ab"
Colors.indigo_700 = "303f9f"
Colors.indigo_800 = "283593"
Colors.indigo_900 = "1a237e"
Colors.indigo_A100 = "8C9EFF"
Colors.indigo_A200 = "536DFE"
Colors.indigo_A400 = "3D5AFE"
Colors.indigo_A700 = "304FFE"
Colors.blue_50 = "e7e9fd"
Colors.blue_100 = "d0d9ff"
Colors.blue_200 = "afbfff"
Colors.blue_300 = "91a7ff"
Colors.blue_400 = "738ffe"
Colors.blue_500 = "5677fc"
Colors.blue_600 = "4e6cef"
Colors.blue_700 = "455ede"
Colors.blue_800 = "3b50ce"
Colors.blue_900 = "2a36b1"
Colors.blue_A100 = "82B1FF"
Colors.blue_A200 = "448AFF"
Colors.blue_A400 = "2979FF"
Colors.blue_A700 = "2962FF"
Colors.light_blue_50 = "e1f5fe"
Colors.light_blue_100 = "b3e5fc"
Colors.light_blue_200 = "81d4fa"
Colors.light_blue_300 = "4fc3f7"
Colors.light_blue_400 = "29b6f6"
Colors.light_blue_500 = "03a9f4"
Colors.light_blue_600 = "039be5"
Colors.light_blue_700 = "0288d1"
Colors.light_blue_800 = "0277bd"
Colors.light_blue_900 = "01579b"
Colors.light_blue_A100 = "80D8FF"
Colors.light_blue_A200 = "40C4FF"
Colors.light_blue_A400 = "00B0FF"
Colors.light_blue_A700 = "0091EA"
Colors.cyan_50 = "e0f7fa"
Colors.cyan_100 = "b2ebf2"
Colors.cyan_200 = "80deea"
Colors.cyan_300 = "4dd0e1"
Colors.cyan_400 = "26c6da"
Colors.cyan_500 = "00bcd4"
Colors.cyan_600 = "00acc1"
Colors.cyan_700 = "0097a7"
Colors.cyan_800 = "00838f"
Colors.cyan_900 = "006064"
Colors.cyan_A100 = "84FFFF"
Colors.cyan_A200 = "18FFFF"
Colors.cyan_A400 = "00E5FF"
Colors.cyan_A700 = "00B8D4"
Colors.teal_50 = "e0f2f1"
Colors.teal_100 = "b2dfdb"
Colors.teal_200 = "80cbc4"
Colors.teal_300 = "4db6ac"
Colors.teal_400 = "26a69a"
Colors.teal_500 = "009688"
Colors.teal_600 = "00897b"
Colors.teal_700 = "00796b"
Colors.teal_800 = "00695c"
Colors.teal_900 = "004d40"
Colors.teal_A100 = "A7FFEB"
Colors.teal_A200 = "64FFDA"
Colors.teal_A400 = "1DE9B6"
Colors.teal_A700 = "00BFA5"
Colors.green_50 = "d0f8ce"
Colors.green_100 = "a3e9a4"
Colors.green_200 = "72d572"
Colors.green_300 = "42bd41"
Colors.green_400 = "2baf2b"
Colors.green_500 = "4CAF50"
Colors.green_600 = "0a8f08"
Colors.green_700 = "0a7e07"
Colors.green_800 = "056f00"
Colors.green_900 = "0d5302"
Colors.green_A100 = "B9F6CA"
Colors.green_A200 = "69F0AE"
Colors.green_A400 = "00E676"
Colors.green_A700 = "00C853"
Colors.light_green_50 = "f1f8e9"
Colors.light_green_100 = "dcedc8"
Colors.light_green_200 = "c5e1a5"
Colors.light_green_300 = "aed581"
Colors.light_green_400 = "9ccc65"
Colors.light_green_500 = "8bc34a"
Colors.light_green_600 = "7cb342"
Colors.light_green_700 = "689f38"
Colors.light_green_800 = "558b2f"
Colors.light_green_900 = "33691e"
Colors.light_green_A100 = "CCFF90"
Colors.light_green_A200 = "B2FF59"
Colors.light_green_A400 = "76FF03"
Colors.light_green_A700 = "64DD17"
Colors.lime_50 = "f9fbe7"
Colors.lime_100 = "f0f4c3"
Colors.lime_200 = "e6ee9c"
Colors.lime_300 = "dce775"
Colors.lime_400 = "d4e157"
Colors.lime_500 = "cddc39"
Colors.lime_600 = "c0ca33"
Colors.lime_700 = "afb42b"
Colors.lime_800 = "9e9d24"
Colors.lime_900 = "827717"
Colors.lime_A100 = "F4FF81"
Colors.lime_A200 = "EEFF41"
Colors.lime_A400 = "C6FF00"
Colors.lime_A700 = "AEEA00"
Colors.yellow_50 = "fffde7"
Colors.yellow_100 = "fff9c4"
Colors.yellow_200 = "fff59d"
Colors.yellow_300 = "fff176"
Colors.yellow_400 = "ffee58"
Colors.yellow_500 = "ffeb3b"
Colors.yellow_600 = "fdd835"
Colors.yellow_700 = "fbc02d"
Colors.yellow_800 = "f9a825"
Colors.yellow_900 = "f57f17"
Colors.yellow_A100 = "FFFF8D"
Colors.yellow_A200 = "FFFF00"
Colors.yellow_A400 = "FFEA00"
Colors.yellow_A700 = "FFD600"
Colors.amber_50 = "fff8e1"
Colors.amber_100 = "ffecb3"
Colors.amber_200 = "ffe082"
Colors.amber_300 = "ffd54f"
Colors.amber_400 = "ffca28"
Colors.amber_500 = "ffc107"
Colors.amber_600 = "ffb300"
Colors.amber_700 = "ffa000"
Colors.amber_800 = "ff8f00"
Colors.amber_900 = "ff6f00"
Colors.amber_A100 = "FFE57F"
Colors.amber_A200 = "FFD740"
Colors.amber_A400 = "FFC400"
Colors.amber_A700 = "FFAB00"
Colors.orange_50 = "fff3e0"
Colors.orange_100 = "ffe0b2"
Colors.orange_200 = "ffcc80"
Colors.orange_300 = "ffb74d"
Colors.orange_400 = "ffa726"
Colors.orange_500 = "ff9800"
Colors.orange_600 = "fb8c00"
Colors.orange_700 = "f57c00"
Colors.orange_800 = "ef6c00"
Colors.orange_900 = "e65100"
Colors.orange_A100 = "FFD180"
Colors.orange_A200 = "FFAB40"
Colors.orange_A400 = "FF9100"
Colors.orange_A700 = "FF6D00"
Colors.deep_orange_50 = "fbe9e7"
Colors.deep_orange_100 = "ffccbc"
Colors.deep_orange_200 = "ffab91"
Colors.deep_orange_300 = "ff8a65"
Colors.deep_orange_400 = "ff7043"
Colors.deep_orange_500 = "ff5722"
Colors.deep_orange_600 = "f4511e"
Colors.deep_orange_700 = "e64a19"
Colors.deep_orange_800 = "d84315"
Colors.deep_orange_900 = "bf360c"
Colors.deep_orange_A100 = "FF9E80"
Colors.deep_orange_A200 = "FF6E40"
Colors.deep_orange_A400 = "FF3D00"
Colors.deep_orange_A700 = "DD2C00"
Colors.brown_50 = "efebe9"
Colors.brown_100 = "d7ccc8"
Colors.brown_200 = "bcaaa4"
Colors.brown_300 = "a1887f"
Colors.brown_400 = "8d6e63"
Colors.brown_500 = "795548"
Colors.brown_600 = "6d4c41"
Colors.brown_700 = "5d4037"
Colors.brown_800 = "4e342e"
Colors.brown_900 = "3e2723"
Colors.gray_50 = "fafafa"
Colors.gray_100 = "f5f5f5"
Colors.gray_200 = "eee"
Colors.gray_300 = "e0e0e0"
Colors.gray_400 = "bdbdbd"
Colors.gray_500 = "9e9e9e"
Colors.gray_600 = "757575"
Colors.gray_700 = "616161"
Colors.gray_800 = "424242"
Colors.gray_900 = "212121"
Colors.blue_gray_50 = "eceff1"
Colors.blue_gray_100 = "cfd8dc"
Colors.blue_gray_200 = "b0bec5"
Colors.blue_gray_300 = "90a4ae"
Colors.blue_gray_400 = "78909c"
Colors.blue_gray_500 = "607d8b"
Colors.blue_gray_600 = "546e7a"
Colors.blue_gray_700 = "455a64"
Colors.blue_gray_800 = "37474f"
Colors.blue_gray_900 = "263238"
end
do -- Base UI Colors
Colors.UI_Hue = 210
Colors.UI_Saturation = 0.24
Colors.UI_TEXT = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.9)
-- level 1
Colors.UI_100 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.03) -- BG
Colors.UI_150 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.05)
-- level 2
Colors.UI_200 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.07)
-- level 3
Colors.UI_300 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.12)
Colors.UI_300_GR = { HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.12), HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.11) }
Colors.UI_350 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.15)
Colors.UI_350_GR = { HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.17), HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.14) }
-- level 4
Colors.UI_400 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.20)
Colors.UI_400_GR = { HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.20), HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.17) }
Colors.UI_450_GR = { HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.24), HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.20) }
-- level 5
Colors.UI_500 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.29)
Colors.UI_500_GR = { HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.29), HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.26) }
Colors.UI_600_GR = { HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.35), HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.32) }
-- font Colors -35
Colors.UI_F450 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.75)
Colors.UI_F350 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.60)
Colors.UI_1000 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 1)
Colors.UI_A900 = HSL(Colors.UI_Hue, 1, 0.7)
Colors.UI_A800 = HSL(Colors.UI_Hue, 1, 0.65)
Colors.UI_A700 = HSL(Colors.UI_Hue, 1, 0.6)
Colors.UI_A600 = HSL(Colors.UI_Hue, 1, 0.55)
Colors.UI_A500 = HSL(Colors.UI_Hue, 1, 0.5)
Colors.UI_A400 = HSL(Colors.UI_Hue, 1, 0.45)
Colors.UI_A300 = HSL(Colors.UI_Hue, 1, 0.4)
Colors.UI_A200 = HSL(Colors.UI_Hue, 1, 0.35)
Colors.UI_A100 = HSL(Colors.UI_Hue, 1, 0.3)
end
-- Class Colors
do
Colors.WARRIOR = "c79c6e"
Colors.PALADIN = "f58cba"
Colors.HUNTER = "abd473"
Colors.ROGUE = "fff569"
Colors.PRIEST = "ffffff"
Colors.DEATHKNIGHT = "c41f3b"
Colors.SHAMAN = "0070de"
Colors.MAGE = "69ccf0"
Colors.WARLOCK = "9482c9"
Colors.MONK = "00ff96"
Colors.DRUID = "ff7d0a"
Colors.DEMONHUNTER = "a330c9"
Colors.EVOKER = "33937f"
end
end
do -- | Text Formatters |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Formatters.tooltip = "|cff" .. Colors.gray_50 .. "%s\n|cff" .. Colors.yellow_500 .. "%s"
end
do -- | Set Media |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
addMedia("font", "calibrib", "Fonts\\calibrib.ttf")
-- Material
addMedia("font", "MaterialIcons", "Fonts\\MaterialIcons-Regular.ttf")
--addMedia("font", "MaterialIconsOutlined", "Fonts\\MaterialIconsOutlined-Regular.ttf")
addMedia("font", "MaterialIconsOutlined", "Fonts\\MaterialIconsOutlined-Regular.otf")
addMedia("font", "MaterialIconsRound", "Fonts\\MaterialIconsRound-Regular.otf")
addMedia("font", "MaterialIconsSharp", "Fonts\\MaterialIconsSharp-Regular.otf")
addMedia("font", "MaterialIconsTwoTone", "Fonts\\MaterialIconsTwoTone-Regular.otf")
addMedia("font", "MaterialSymbolsRounded", "Fonts\\MaterialSymbolsRounded.ttf")
-- monospaced
addMedia("font", "DejaVuSansMono", "Fonts\\DejaVuSansMono.ttf")
addMedia("font", "DejaVuSansMonoBold", "Fonts\\DejaVuSansMono-Bold.ttf")
addMedia("font", "FiraMonoMedium", "Fonts\\FiraMono-Medium.ttf")
addMedia("font", "FiraMonoRegular", "Fonts\\FiraMono-Regular.ttf")
addMedia("font", "FiraMonoBold", "Fonts\\FiraMono-Bold.ttf")
addMedia("font", "HackRegular", "Fonts\\Hack-Regular.ttf")
addMedia("font", "HackBold", "Fonts\\Hack-Bold.ttf")
addMedia("font", "InconsolataRegular", "Fonts\\Inconsolata-Regular.ttf")
addMedia("font", "InconsolataBold", "Fonts\\Inconsolata-Bold.ttf")
addMedia("font", "LucidiaMono", "Fonts\\LUCON.ttf")
addMedia("font", "MonoFur", "Fonts\\monof55.ttf")
addMedia("font", "MonoFurItalic", "Fonts\\monof56.ttf")
addMedia("font", "OfficeCodeProRegular", "Fonts\\OfficeCodePro-Regular.ttf")
addMedia("font", "OfficeCodeProMedium", "Fonts\\OfficeCodePro-Medium.ttf")
addMedia("font", "OfficeCodeProBold", "Fonts\\OfficeCodePro-Bold.ttf")
addMedia("font", "RobotoMonoRegular", "Fonts\\RobotoMono-Regular.ttf")
addMedia("font", "RobotoMonoMedium", "Fonts\\RobotoMono-Medium.ttf")
addMedia("font", "RobotoMonoBold", "Fonts\\RobotoMono-Bold.ttf")
addMedia("font", "SourceCodeProRegular", "Fonts\\SourceCodePro-Regular.ttf")
addMedia("font", "SourceCodeProMedium", "Fonts\\SourceCodePro-Medium.ttf")
addMedia("font", "SourceCodeProSemibold", "Fonts\\SourceCodePro-Semibold.ttf")
addMedia("font", "SourceCodeProBold", "Fonts\\SourceCodePro-Bold.ttf")
addMedia("font", "SourceCodeProBlack", "Fonts\\SourceCodePro-Black.ttf")
addMedia("font", "UbuntuMonoBold", "Fonts\\UbuntuMono-B.ttf")
addMedia("font", "UbuntuMonoRegular", "Fonts\\UbuntuMono-R.ttf")
-- pixel fonts
addMedia("font", "FiraSans", "Fonts\\FiraSans-Regular.ttf")
addMedia("font", "Standard0755", "Fonts\\Standard0755.ttf")
addMedia("font", "FFF Intelligent Thin Condensed", "Fonts\\FFF Intelligent Thin Condensed.ttf")
-- Icons
addMedia("texture", "DiesalGUIcons", "Textures\\DiesalGUIcons16x256x128.tga")
addMedia("texture", "DiesalGUIcons64", "Textures\\DiesalGUIcons64x256x256.tga")
addMedia("texture", "DiesalGUIcons32", "Textures\\DiesalGUIcons32x256x256.tga")
addMedia("texture", "DiesalButtonIcons32", "Textures\\DiesalButtonIcons32x128x512.tga")
-- Shadows
addMedia("border", "shadow", "Textures\\shadow.tga")
addMedia("border", "shadowNoDist", "Textures\\shadowNoDist.tga")
end
do
local font = getMedia("font", "MaterialSymbolsRounded")
if font then
MaterialSymbolsRounded = CreateFont("MaterialSymbolsRounded")
MaterialSymbolsRounded:SetFont(font, 20, "")
MaterialSymbolsRounded:SetJustifyH("CENTER")
MaterialSymbolsRounded:SetJustifyV("MIDDLE")
--MaterialIconsRegular = MaterialSymbolsRounded
end
end
do -- | Add LibSharedMedia |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local font = getMedia("font", "calibrib")
if font then
LibSharedMedia:Register("font", "Calibri Bold", font)
end
font = getMedia("font", "FiraSans")
if font then
LibSharedMedia:Register("font", "Fira Sans", font)
end
-- monospaced
-- LibSharedMedia:Register("font","DejaVuSansMono",getMedia('font','DejaVuSansMono'))
-- LibSharedMedia:Register("font","Hack",getMedia('font','Hack'))
-- LibSharedMedia:Register("font","Inconsolata",getMedia('font','Inconsolata'))
-- LibSharedMedia:Register("font","Fira Sans",getMedia('font','FiraSans'))
-- LibSharedMedia:Register("font","Source Code Pro",getMedia('font','SourceCodePro'))
-- pixel fonts
font = getMedia("font", "Standard0755")
if font then
LibSharedMedia:Register("font", "Standard0755", font)
end
font = getMedia("font", "FFF Intelligent Thin Condensed")
if font then
LibSharedMedia:Register("font", "FFF Intelligent", font)
end
end
do -- | Set Fonts |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local font = getMedia("font", "calibrib")
if font then
DiesalFontNormal = CreateFont("DiesalFontNormal")
DiesalFontNormal:SetFont(font, 11, "")
end
font = getMedia("font", "Standard0755")
if font then
DiesalFontPixel = CreateFont("DiesalFontPixel")
DiesalFontPixel:SetFont(font, 8, "")
end
font = getMedia("font", "Standard0755")
if font then
DiesalFontPixelOutLine = CreateFont("DiesalFontPixelOutLine")
DiesalFontPixelOutLine:SetFont(font, 8, "OUTLINE, MONOCHROME")
DiesalFontPixelOutLine:SetSpacing(2)
end
font = getMedia("font", "FFF Intelligent Thin Condensed")
if font then
DiesalFontPixel2 = CreateFont("DiesalFontPixel2")
DiesalFontPixel2:SetFont(font, 8, "OUTLINE, MONOCHROME")
end
end
do -- Set Material Icons
DiesalStyle.MaterialIcons = DiesalStyle.MaterialIcons or {}
local MaterialIcons = DiesalStyle.MaterialIcons
MaterialIcons.bytes = {
["10k"] = 0xe951,
["10mp"] = 0xe952,
["11mp"] = 0xe953,
["123"] = 0xeb8d,
["12mp"] = 0xe954,
["13mp"] = 0xe955,
["14mp"] = 0xe956,
["15mp"] = 0xe957,
["16mp"] = 0xe958,
["17mp"] = 0xe959,
["18_up_rating"] = 0xf8fd,
["18mp"] = 0xe95a,
["19mp"] = 0xe95b,
["1k"] = 0xe95c,
["1k_plus"] = 0xe95d,
["1x_mobiledata"] = 0xefcd,
["1x_mobiledata_badge"] = 0xf7f1,
["20mp"] = 0xe95e,
["21mp"] = 0xe95f,
["22mp"] = 0xe960,
["23mp"] = 0xe961,
["24mp"] = 0xe962,
["2d"] = 0xef37,
["2k"] = 0xe963,
["2k_plus"] = 0xe964,
["2mp"] = 0xe965,
["30fps"] = 0xefce,
["30fps_select"] = 0xefcf,
["360"] = 0xe577,
["3d_rotation"] = 0xe84d,
["3g_mobiledata"] = 0xefd0,
["3g_mobiledata_badge"] = 0xf7f0,
["3k"] = 0xe966,
["3k_plus"] = 0xe967,
["3mp"] = 0xe968,
["3p"] = 0xefd1,
["4g_mobiledata"] = 0xefd2,
["4g_mobiledata_badge"] = 0xf7ef,
["4g_plus_mobiledata"] = 0xefd3,
["4k"] = 0xe072,
["4k_plus"] = 0xe969,
["4mp"] = 0xe96a,
["50mp"] = 0xf6f3,
["5g"] = 0xef38,
["5g_mobiledata_badge"] = 0xf7ee,
["5k"] = 0xe96b,
["5k_plus"] = 0xe96c,
["5mp"] = 0xe96d,
["60fps"] = 0xefd4,
["60fps_select"] = 0xefd5,
["6_ft_apart"] = 0xf21e,
["6k"] = 0xe96e,
["6k_plus"] = 0xe96f,
["6mp"] = 0xe970,
["7k"] = 0xe971,
["7k_plus"] = 0xe972,
["7mp"] = 0xe973,
["8k"] = 0xe974,
["8k_plus"] = 0xe975,
["8mp"] = 0xe976,
["9k"] = 0xe977,
["9k_plus"] = 0xe978,
["9mp"] = 0xe979,
["abc"] = 0xeb94,
["ac_unit"] = 0xeb3b,
["access_alarm"] = 0xe855,
["access_alarms"] = 0xe855,
["access_time"] = 0xefd6,
["access_time_filled"] = 0xefd6,
["accessibility"] = 0xe84e,
["accessibility_new"] = 0xe92c,
["accessible"] = 0xe914,
["accessible_forward"] = 0xe934,
["account_balance"] = 0xe84f,
["account_balance_wallet"] = 0xe850,
["account_box"] = 0xe851,
["account_child"] = 0xe852,
["account_child_invert"] = 0xe659,
["account_circle"] = 0xf20b,
["account_circle_filled"] = 0xf20b,
["account_circle_off"] = 0xf7b3,
["account_tree"] = 0xe97a,
["action_key"] = 0xf502,
["activity_zone"] = 0xe1e6,
["acute"] = 0xe4cb,
["ad"] = 0xe65a,
["ad_group"] = 0xe65b,
["ad_group_off"] = 0xeae5,
["ad_off"] = 0xf7b2,
["ad_units"] = 0xef39,
["adb"] = 0xe60e,
["add"] = 0xe145,
["add_a_photo"] = 0xe439,
["add_ad"] = 0xe72a,
["add_alarm"] = 0xe856,
["add_alert"] = 0xe003,
["add_box"] = 0xe146,
["add_business"] = 0xe729,
["add_call"] = 0xf0b7,
["add_card"] = 0xeb86,
["add_chart"] = 0xef3c,
["add_circle"] = 0xe3ba,
["add_circle_outline"] = 0xe3ba,
["add_comment"] = 0xe266,
["add_home"] = 0xf8eb,
["add_home_work"] = 0xf8ed,
["add_ic_call"] = 0xf0b7,
["add_link"] = 0xe178,
["add_location"] = 0xe567,
["add_location_alt"] = 0xef3a,
["add_moderator"] = 0xe97d,
["add_notes"] = 0xe091,
["add_photo_alternate"] = 0xe43e,
["add_reaction"] = 0xe1d3,
["add_road"] = 0xef3b,
["add_shopping_cart"] = 0xe854,
["add_task"] = 0xf23a,
["add_to_drive"] = 0xe65c,
["add_to_home_screen"] = 0xe1fe,
["add_to_photos"] = 0xe39d,
["add_to_queue"] = 0xe05c,
["addchart"] = 0xef3c,
["adf_scanner"] = 0xeada,
["adjust"] = 0xe39e,
["admin_meds"] = 0xe48d,
["admin_panel_settings"] = 0xef3d,
["ads_click"] = 0xe762,
["agender"] = 0xf888,
["agriculture"] = 0xea79,
["air"] = 0xefd8,
["air_freshener"] = 0xe2ca,
["air_purifier"] = 0xe97e,
["air_purifier_gen"] = 0xe829,
["airline_seat_flat"] = 0xe630,
["airline_seat_flat_angled"] = 0xe631,
["airline_seat_individual_suite"] = 0xe632,
["airline_seat_legroom_extra"] = 0xe633,
["airline_seat_legroom_normal"] = 0xe634,
["airline_seat_legroom_reduced"] = 0xe635,
["airline_seat_recline_extra"] = 0xe636,
["airline_seat_recline_normal"] = 0xe637,
["airline_stops"] = 0xe7d0,
["airlines"] = 0xe7ca,
["airplane_ticket"] = 0xefd9,
["airplanemode_active"] = 0xe53d,
["airplanemode_inactive"] = 0xe194,
["airplay"] = 0xe055,
["airport_shuttle"] = 0xeb3c,
["airware"] = 0xf154,
["airwave"] = 0xf154,
["alarm"] = 0xe855,
["alarm_add"] = 0xe856,
["alarm_off"] = 0xe857,
["alarm_on"] = 0xe858,
["alarm_smart_wake"] = 0xf6b0,
["album"] = 0xe019,
["align_center"] = 0xe356,
["align_end"] = 0xf797,
["align_flex_center"] = 0xf796,
["align_flex_end"] = 0xf795,
["align_flex_start"] = 0xf794,
["align_horizontal_center"] = 0xe00f,
["align_horizontal_left"] = 0xe00d,
["align_horizontal_right"] = 0xe010,
["align_items_stretch"] = 0xf793,
["align_justify_center"] = 0xf792,
["align_justify_flex_end"] = 0xf791,
["align_justify_flex_start"] = 0xf790,
["align_justify_space_around"] = 0xf78f,
["align_justify_space_between"] = 0xf78e,
["align_justify_space_even"] = 0xf78d,
["align_justify_stretch"] = 0xf78c,
["align_self_stretch"] = 0xf78b,
["align_space_around"] = 0xf78a,
["align_space_between"] = 0xf789,
["align_space_even"] = 0xf788,
["align_start"] = 0xf787,
["align_stretch"] = 0xf786,
["align_vertical_bottom"] = 0xe015,
["align_vertical_center"] = 0xe011,
["align_vertical_top"] = 0xe00c,
["all_inbox"] = 0xe97f,
["all_inclusive"] = 0xeb3d,
["all_match"] = 0xe093,
["all_out"] = 0xe90b,
["allergies"] = 0xe094,
["allergy"] = 0xe64e,
["alt_route"] = 0xf184,
["alternate_email"] = 0xe0e6,
["altitude"] = 0xf873,
["ambient_screen"] = 0xf6c4,
["ambulance"] = 0xf803,
["amend"] = 0xf802,
["amp_stories"] = 0xea13,
["analytics"] = 0xef3e,
["anchor"] = 0xf1cd,
["android"] = 0xe859,
["animation"] = 0xe71c,
["announcement"] = 0xe87f,
["aod"] = 0xefda,
["aod_tablet"] = 0xf89f,
["aod_watch"] = 0xf6ac,
["apartment"] = 0xea40,
["api"] = 0xf1b7,
["apk_document"] = 0xf88e,
["apk_install"] = 0xf88f,
["app_badging"] = 0xf72f,
["app_blocking"] = 0xef3f,
["app_promo"] = 0xe981,
["app_registration"] = 0xef40,
["app_settings_alt"] = 0xef41,
["app_shortcut"] = 0xeae4,
["apparel"] = 0xef7b,
["approval"] = 0xe982,
["approval_delegation"] = 0xf84a,
["apps"] = 0xe5c3,
["apps_outage"] = 0xe7cc,
["aq"] = 0xf55a,
["aq_indoor"] = 0xf55b,
["ar_on_you"] = 0xef7c,
["ar_stickers"] = 0xe983,
["architecture"] = 0xea3b,
["archive"] = 0xe149,
["area_chart"] = 0xe770,
["arming_countdown"] = 0xe78a,
["arrow_and_edge"] = 0xf5d7,
["arrow_back"] = 0xe5c4,
["arrow_back_ios"] = 0xe5e0,
["arrow_back_ios_new"] = 0xe2ea,
["arrow_circle_down"] = 0xf181,
["arrow_circle_left"] = 0xeaa7,
["arrow_circle_right"] = 0xeaaa,
["arrow_circle_up"] = 0xf182,
["arrow_downward"] = 0xe5db,
["arrow_downward_alt"] = 0xe984,
["arrow_drop_down"] = 0xe5c5,
["arrow_drop_down_circle"] = 0xe5c6,
["arrow_drop_up"] = 0xe5c7,
["arrow_forward"] = 0xe5c8,
["arrow_forward_ios"] = 0xe5e1,
["arrow_insert"] = 0xf837,
["arrow_left"] = 0xe5de,
["arrow_left_alt"] = 0xef7d,
["arrow_or_edge"] = 0xf5d6,
["arrow_outward"] = 0xf8ce,
["arrow_range"] = 0xf69b,
["arrow_right"] = 0xe5df,
["arrow_right_alt"] = 0xe941,
["arrow_selector_tool"] = 0xf82f,
["arrow_split"] = 0xea04,
["arrow_top_left"] = 0xf72e,
["arrow_top_right"] = 0xf72d,
["arrow_upward"] = 0xe5d8,
["arrow_upward_alt"] = 0xe986,
["arrows_more_down"] = 0xf8ab,
["arrows_more_up"] = 0xf8ac,
["arrows_outward"] = 0xf72c,
["art_track"] = 0xe060,
["article"] = 0xef42,
["article_shortcut"] = 0xf587,
["artist"] = 0xe01a,
["aspect_ratio"] = 0xe85b,
["assessment"] = 0xf0cc,
["assignment"] = 0xe85d,
["assignment_add"] = 0xf848,
["assignment_ind"] = 0xe85e,
["assignment_late"] = 0xe85f,
["assignment_return"] = 0xe860,
["assignment_returned"] = 0xe861,
["assignment_turned_in"] = 0xe862,
["assist_walker"] = 0xf8d5,
["assistant"] = 0xe39f,
["assistant_device"] = 0xe987,
["assistant_direction"] = 0xe988,
["assistant_navigation"] = 0xe989,
["assistant_on_hub"] = 0xf6c1,
["assistant_photo"] = 0xf0c6,
["assured_workload"] = 0xeb6f,
["asterisk"] = 0xf525,
["astrophotography_auto"] = 0xf1d9,
["astrophotography_off"] = 0xf1da,
["atm"] = 0xe573,
["atr"] = 0xebc7,
["attach_email"] = 0xea5e,
["attach_file"] = 0xe226,
["attach_file_add"] = 0xf841,
["attach_file_off"] = 0xf4d9,
["attach_money"] = 0xe227,
["attachment"] = 0xe2bc,
["attractions"] = 0xea52,
["attribution"] = 0xefdb,
["audio_description"] = 0xf58c,
["audio_file"] = 0xeb82,
["audio_video_receiver"] = 0xf5d3,
["audiotrack"] = 0xe405,
["auto_activity_zone"] = 0xf8ad,
["auto_awesome"] = 0xe65f,
["auto_awesome_mosaic"] = 0xe660,
["auto_awesome_motion"] = 0xe661,
["auto_delete"] = 0xea4c,
["auto_detect_voice"] = 0xf83e,
["auto_draw_solid"] = 0xe98a,
["auto_fix"] = 0xe663,
["auto_fix_high"] = 0xe663,
["auto_fix_normal"] = 0xe664,
["auto_fix_off"] = 0xe665,
["auto_graph"] = 0xe4fb,
["auto_label"] = 0xf6be,
["auto_meeting_room"] = 0xf6bf,
["auto_mode"] = 0xec20,
["auto_read_pause"] = 0xf219,
["auto_read_play"] = 0xf216,
["auto_schedule"] = 0xe214,
["auto_stories"] = 0xe666,
["auto_timer"] = 0xef7f,
["auto_towing"] = 0xe71e,
["auto_transmission"] = 0xf53f,
["auto_videocam"] = 0xf6c0,
["autofps_select"] = 0xefdc,
["autopause"] = 0xf6b6,
["autopay"] = 0xf84b,
["autoplay"] = 0xf6b5,
["autorenew"] = 0xe863,
["autostop"] = 0xf682,
["av_timer"] = 0xe01b,
["avg_pace"] = 0xf6bb,
["avg_time"] = 0xf813,
["award_star"] = 0xf612,
["azm"] = 0xf6ec,
["baby_changing_station"] = 0xf19b,
["back_hand"] = 0xe764,
["back_to_tab"] = 0xf72b,
["background_dot_large"] = 0xf79e,
["background_dot_small"] = 0xf514,
["background_grid_small"] = 0xf79d,
["background_replace"] = 0xf20a,
["backlight_high"] = 0xf7ed,
["backlight_high_off"] = 0xf4ef,
["backlight_low"] = 0xf7ec,
["backpack"] = 0xf19c,
["backspace"] = 0xe14a,
["backup"] = 0xe864,
["backup_table"] = 0xef43,
["badge"] = 0xea67,
["badge_critical_battery"] = 0xf156,
["bakery_dining"] = 0xea53,
["balance"] = 0xeaf6,
["balcony"] = 0xe58f,
["ballot"] = 0xe172,
["bar_chart"] = 0xe26b,
["bar_chart_4_bars"] = 0xf681,
["barcode"] = 0xe70b,
["barcode_reader"] = 0xf85c,
["barcode_scanner"] = 0xe70c,
["barefoot"] = 0xf871,
["batch_prediction"] = 0xf0f5,
["bath_outdoor"] = 0xf6fb,
["bath_private"] = 0xf6fa,
["bath_public_large"] = 0xf6f9,
["bathroom"] = 0xefdd,
["bathtub"] = 0xea41,
["battery_0_bar"] = 0xebdc,
["battery_1_bar"] = 0xf09c,
["battery_20"] = 0xf09c,
["battery_2_bar"] = 0xf09d,
["battery_30"] = 0xf09d,
["battery_3_bar"] = 0xf09e,
["battery_4_bar"] = 0xf09f,
["battery_50"] = 0xf09e,
["battery_5_bar"] = 0xf0a0,
["battery_60"] = 0xf09f,
["battery_6_bar"] = 0xf0a1,
["battery_80"] = 0xf0a0,
["battery_90"] = 0xf0a1,
["battery_alert"] = 0xe19c,
["battery_change"] = 0xf7eb,
["battery_charging_20"] = 0xf0a2,
["battery_charging_30"] = 0xf0a3,
["battery_charging_50"] = 0xf0a4,
["battery_charging_60"] = 0xf0a5,
["battery_charging_80"] = 0xf0a6,
["battery_charging_90"] = 0xf0a7,
["battery_charging_full"] = 0xe1a3,
["battery_error"] = 0xf7ea,
["battery_full"] = 0xe1a5,
["battery_full_alt"] = 0xf13b,
["battery_horiz_000"] = 0xf8ae,
["battery_horiz_050"] = 0xf8af,
["battery_horiz_075"] = 0xf8b0,
["battery_low"] = 0xf155,
["battery_plus"] = 0xf7e9,
["battery_profile"] = 0xe206,
["battery_saver"] = 0xefde,
["battery_share"] = 0xf67e,
["battery_status_good"] = 0xf67d,
["battery_std"] = 0xe1a5,
["battery_unknown"] = 0xe1a6,
["battery_vert_005"] = 0xf8b1,
["battery_vert_020"] = 0xf8b2,
["battery_vert_050"] = 0xf8b3,
["battery_very_low"] = 0xf156,
["beach_access"] = 0xeb3e,
["bed"] = 0xefdf,
["bedroom_baby"] = 0xefe0,
["bedroom_child"] = 0xefe1,
["bedroom_parent"] = 0xefe2,
["bedtime"] = 0xef44,
["bedtime_off"] = 0xeb76,
["beenhere"] = 0xe52d,
["bento"] = 0xf1f4,
["bia"] = 0xf6eb,
["bid_landscape"] = 0xe678,
["bid_landscape_disabled"] = 0xef81,
["bigtop_updates"] = 0xe669,
["bike_scooter"] = 0xef45,
["biotech"] = 0xea3a,
["blanket"] = 0xe828,
["blender"] = 0xefe3,
["blind"] = 0xf8d6,
["blinds"] = 0xe286,
["blinds_closed"] = 0xec1f,
["block"] = 0xf08c,
["blood_pressure"] = 0xe097,
["bloodtype"] = 0xefe4,
["bluetooth"] = 0xe1a7,
["bluetooth_audio"] = 0xe60f,
["bluetooth_connected"] = 0xe1a8,
["bluetooth_disabled"] = 0xe1a9,
["bluetooth_drive"] = 0xefe5,
["bluetooth_searching"] = 0xe60f,
["blur_circular"] = 0xe3a2,
["blur_linear"] = 0xe3a3,
["blur_medium"] = 0xe84c,
["blur_off"] = 0xe3a4,
["blur_on"] = 0xe3a5,
["blur_short"] = 0xe8cf,
["body_fat"] = 0xe098,
["body_system"] = 0xe099,
["bolt"] = 0xea0b,
["bomb"] = 0xf568,
["book"] = 0xe86e,
["book_2"] = 0xf53e,
["book_3"] = 0xf53d,
["book_4"] = 0xf53c,
["book_5"] = 0xf53b,
["book_online"] = 0xf217,
["bookmark"] = 0xe8e7,
["bookmark_add"] = 0xe598,
["bookmark_added"] = 0xe599,
["bookmark_border"] = 0xe8e7,
["bookmark_manager"] = 0xf7b1,
["bookmark_remove"] = 0xe59a,
["bookmarks"] = 0xe98b,
["border_all"] = 0xe228,
["border_bottom"] = 0xe229,
["border_clear"] = 0xe22a,
["border_color"] = 0xe22b,
["border_horizontal"] = 0xe22c,
["border_inner"] = 0xe22d,
["border_left"] = 0xe22e,
["border_outer"] = 0xe22f,
["border_right"] = 0xe230,
["border_style"] = 0xe231,
["border_top"] = 0xe232,
["border_vertical"] = 0xe233,
["bottom_app_bar"] = 0xe730,
["bottom_drawer"] = 0xe72d,
["bottom_navigation"] = 0xe98c,
["bottom_panel_close"] = 0xf72a,
["bottom_panel_open"] = 0xf729,
["bottom_right_click"] = 0xf684,
["bottom_sheets"] = 0xe98d,
["box"] = 0xf5a4,
["box_add"] = 0xf5a5,
["box_edit"] = 0xf5a6,
["boy"] = 0xeb67,
["brand_awareness"] = 0xe98e,
["brand_family"] = 0xf4f1,
["branding_watermark"] = 0xe06b,
["breakfast_dining"] = 0xea54,
["breaking_news"] = 0xea08,
["breaking_news_alt_1"] = 0xf0ba,
["breastfeeding"] = 0xf856,
["brightness_1"] = 0xe3fa,
["brightness_2"] = 0xf036,
["brightness_3"] = 0xe3a8,
["brightness_4"] = 0xe3a9,
["brightness_5"] = 0xe3aa,
["brightness_6"] = 0xe3ab,
["brightness_7"] = 0xe3ac,
["brightness_alert"] = 0xf5cf,
["brightness_auto"] = 0xe1ab,
["brightness_empty"] = 0xf7e8,
["brightness_high"] = 0xe1ac,
["brightness_low"] = 0xe1ad,
["brightness_medium"] = 0xe1ae,
["bring_your_own_ip"] = 0xe016,
["broadcast_on_home"] = 0xf8f8,
["broadcast_on_personal"] = 0xf8f9,
["broken_image"] = 0xe3ad,
["browse"] = 0xeb13,
["browse_activity"] = 0xf8a5,
["browse_gallery"] = 0xebd1,
["browser_not_supported"] = 0xef47,
["browser_updated"] = 0xe7cf,
["brunch_dining"] = 0xea73,
["brush"] = 0xe3ae,
["bubble"] = 0xef83,
["bubble_chart"] = 0xe6dd,
["bubbles"] = 0xf64e,
["bug_report"] = 0xe868,
["build"] = 0xf8cd,
["build_circle"] = 0xef48,
["bungalow"] = 0xe591,
["burst_mode"] = 0xe43c,
["bus_alert"] = 0xe98f,
["business"] = 0xe7ee,
["business_center"] = 0xeb3f,
["business_chip"] = 0xf84c,
["business_messages"] = 0xef84,
["buttons_alt"] = 0xe72f,
["cabin"] = 0xe589,
["cable"] = 0xefe6,
["cached"] = 0xe86a,
["cake"] = 0xe7e9,
["cake_add"] = 0xf85b,
["calculate"] = 0xea5f,
["calendar_add_on"] = 0xef85,
["calendar_apps_script"] = 0xf0bb,
["calendar_clock"] = 0xf540,
["calendar_month"] = 0xebcc,
["calendar_today"] = 0xe935,
["calendar_view_day"] = 0xe936,
["calendar_view_month"] = 0xefe7,
["calendar_view_week"] = 0xefe8,
["call"] = 0xf0d4,
["call_end"] = 0xf0bc,
["call_end_alt"] = 0xf0bc,
["call_log"] = 0xe08e,
["call_made"] = 0xe0b2,
["call_merge"] = 0xe0b3,
["call_missed"] = 0xe0b4,
["call_missed_outgoing"] = 0xe0e4,
["call_quality"] = 0xf652,
["call_received"] = 0xe0b5,
["call_split"] = 0xe0b6,
["call_to_action"] = 0xe06c,
["camera"] = 0xe3af,
["camera_alt"] = 0xe412,
["camera_enhance"] = 0xe8fc,
["camera_front"] = 0xe3b1,
["camera_indoor"] = 0xefe9,
["camera_outdoor"] = 0xefea,
["camera_rear"] = 0xe3b2,
["camera_roll"] = 0xe3b3,
["camera_video"] = 0xf7a6,
["cameraswitch"] = 0xefeb,
["campaign"] = 0xef49,
["camping"] = 0xf8a2,
["cancel"] = 0xe888,
["cancel_presentation"] = 0xe0e9,
["cancel_schedule_send"] = 0xea39,
["candle"] = 0xf588,
["candlestick_chart"] = 0xead4,
["captive_portal"] = 0xf728,
["capture"] = 0xf727,
["car_crash"] = 0xebf2,
["car_rental"] = 0xea55,
["car_repair"] = 0xea56,
["car_tag"] = 0xf4e3,
["card_giftcard"] = 0xe8f6,
["card_membership"] = 0xe8f7,
["card_travel"] = 0xe8f8,
["cardiology"] = 0xe09c,
["cards"] = 0xe991,
["carpenter"] = 0xf1f8,
["carry_on_bag"] = 0xeb08,
["carry_on_bag_checked"] = 0xeb0b,
["carry_on_bag_inactive"] = 0xeb0a,
["carry_on_bag_question"] = 0xeb09,
["cases"] = 0xe992,
["casino"] = 0xeb40,
["cast"] = 0xe307,
["cast_connected"] = 0xe308,
["cast_for_education"] = 0xefec,
["cast_pause"] = 0xf5f0,
["cast_warning"] = 0xf5ef,
["castle"] = 0xeab1,
["category"] = 0xe574,
["celebration"] = 0xea65,
["cell_merge"] = 0xf82e,
["cell_tower"] = 0xebba,
["cell_wifi"] = 0xe0ec,
["center_focus_strong"] = 0xe3b4,
["center_focus_weak"] = 0xe3b5,
["chair"] = 0xefed,
["chair_alt"] = 0xefee,
["chalet"] = 0xe585,
["change_circle"] = 0xe2e7,
["change_history"] = 0xe86b,
["charger"] = 0xe2ae,
["charging_station"] = 0xf19d,
["chart_data"] = 0xe473,
["chat"] = 0xe0c9,
["chat_add_on"] = 0xf0f3,
["chat_apps_script"] = 0xf0bd,
["chat_bubble"] = 0xe0cb,
["chat_bubble_outline"] = 0xe0cb,
["chat_error"] = 0xf7ac,
["chat_info"] = 0xf52b,
["chat_paste_go"] = 0xf6bd,
["check"] = 0xe5ca,
["check_box"] = 0xe834,
["check_box_outline_blank"] = 0xe835,
["check_circle"] = 0xf0be,
["check_circle_filled"] = 0xf0be,
["check_circle_outline"] = 0xf0be,
["check_in_out"] = 0xf6f6,
["check_indeterminate_small"] = 0xf88a,
["check_small"] = 0xf88b,
["checkbook"] = 0xe70d,
["checked_bag"] = 0xeb0c,
["checked_bag_question"] = 0xeb0d,
["checklist"] = 0xe6b1,
["checklist_rtl"] = 0xe6b3,
["checkroom"] = 0xf19e,
["cheer"] = 0xf6a8,
["chess"] = 0xf5e7,
["chevron_left"] = 0xe5cb,
["chevron_right"] = 0xe5cc,
["child_care"] = 0xeb41,
["child_friendly"] = 0xeb42,
["chip_extraction"] = 0xf821,
["chips"] = 0xe993,
["chrome_reader_mode"] = 0xe86d,
["chromecast_2"] = 0xf17b,
["chromecast_device"] = 0xe83c,
["chronic"] = 0xebb2,
["church"] = 0xeaae,
["cinematic_blur"] = 0xf853,
["circle"] = 0xef4a,
["circle_notifications"] = 0xe994,
["circles"] = 0xe7ea,
["circles_ext"] = 0xe7ec,
["clarify"] = 0xf0bf,
["class"] = 0xe86e,
["clean_hands"] = 0xf21f,
["cleaning"] = 0xe995,
["cleaning_bucket"] = 0xf8b4,
["cleaning_services"] = 0xf0ff,
["clear"] = 0xe5cd,
["clear_all"] = 0xe0b8,
["clear_day"] = 0xf157,
["clear_night"] = 0xf159,
["climate_mini_split"] = 0xf8b5,
["clinical_notes"] = 0xe09e,
["clock_loader_10"] = 0xf726,
["clock_loader_20"] = 0xf725,
["clock_loader_40"] = 0xf724,
["clock_loader_60"] = 0xf723,
["clock_loader_80"] = 0xf722,
["clock_loader_90"] = 0xf721,
["close"] = 0xe5cd,
["close_fullscreen"] = 0xf1cf,
["close_small"] = 0xf508,
["closed_caption"] = 0xe996,
["closed_caption_disabled"] = 0xf1dc,
["closed_caption_off"] = 0xe996,
["cloud"] = 0xf15c,
["cloud_circle"] = 0xe2be,
["cloud_done"] = 0xe2bf,
["cloud_download"] = 0xe2c0,
["cloud_off"] = 0xe2c1,
["cloud_queue"] = 0xf15c,
["cloud_sync"] = 0xeb5a,
["cloud_upload"] = 0xe2c3,
["cloudy"] = 0xf15c,
["cloudy_filled"] = 0xf15c,
["cloudy_snowing"] = 0xe810,
["co2"] = 0xe7b0,
["co_present"] = 0xeaf0,
["code"] = 0xe86f,
["code_blocks"] = 0xf84d,
["code_off"] = 0xe4f3,
["coffee"] = 0xefef,
["coffee_maker"] = 0xeff0,
["cognition"] = 0xe09f,
["collapse_all"] = 0xe944,
["collapse_content"] = 0xf507,
["collections"] = 0xe3d3,
["collections_bookmark"] = 0xe431,
["color_lens"] = 0xe40a,
["colorize"] = 0xe3b8,
["colors"] = 0xe997,
["comedy_mask"] = 0xf4d6,
["comic_bubble"] = 0xf5dd,
["comment"] = 0xe24c,
["comment_bank"] = 0xea4e,
["comments_disabled"] = 0xe7a2,
["commit"] = 0xeaf5,
["communication"] = 0xe27c,
["communities"] = 0xeb16,
["communities_filled"] = 0xeb16,
["commute"] = 0xe940,
["compare"] = 0xe3b9,
["compare_arrows"] = 0xe915,
["compass_calibration"] = 0xe57c,
["component_exchange"] = 0xf1e7,
["compost"] = 0xe761,
["compress"] = 0xe94d,
["computer"] = 0xe31e,
["concierge"] = 0xf561,
["conditions"] = 0xe0a0,
["confirmation_number"] = 0xe638,
["congenital"] = 0xe0a1,
["connect_without_contact"] = 0xf223,
["connected_tv"] = 0xe998,
["connecting_airports"] = 0xe7c9,
["construction"] = 0xea3c,
["contact_emergency"] = 0xf8d1,
["contact_mail"] = 0xe0d0,
["contact_page"] = 0xf22e,
["contact_phone"] = 0xf0c0,
["contact_phone_filled"] = 0xf0c0,
["contact_support"] = 0xe94c,
["contactless"] = 0xea71,
["contactless_off"] = 0xf858,
["contacts"] = 0xe0ba,
["contacts_product"] = 0xe999,
["content_copy"] = 0xe14d,
["content_cut"] = 0xe14e,
["content_paste"] = 0xe14f,
["content_paste_go"] = 0xea8e,
["content_paste_off"] = 0xe4f8,
["content_paste_search"] = 0xea9b,
["contract"] = 0xf5a0,
["contract_delete"] = 0xf5a2,
["contract_edit"] = 0xf5a1,
["contrast"] = 0xeb37,
["contrast_rtl_off"] = 0xec72,
["control_camera"] = 0xe074,
["control_point"] = 0xe3ba,
["control_point_duplicate"] = 0xe3bb,
["controller_gen"] = 0xe83d,
["conversion_path"] = 0xf0c1,
["conversion_path_off"] = 0xf7b4,
["conveyor_belt"] = 0xf867,
["cookie"] = 0xeaac,
["cookie_off"] = 0xf79a,
["cooking"] = 0xe2b6,
["cool_to_dry"] = 0xe276,
["copy_all"] = 0xe2ec,
["copyright"] = 0xe90c,
["coronavirus"] = 0xf221,
["corporate_fare"] = 0xf1d0,
["cottage"] = 0xe587,
["counter_0"] = 0xf785,
["counter_1"] = 0xf784,
["counter_2"] = 0xf783,
["counter_3"] = 0xf782,
["counter_4"] = 0xf781,
["counter_5"] = 0xf780,
["counter_6"] = 0xf77f,
["counter_7"] = 0xf77e,
["counter_8"] = 0xf77d,
["counter_9"] = 0xf77c,
["countertops"] = 0xf1f7,
["create"] = 0xf097,
["create_new_folder"] = 0xe2cc,
["credit_card"] = 0xe8a1,
["credit_card_gear"] = 0xf52d,
["credit_card_heart"] = 0xf52c,
["credit_card_off"] = 0xe4f4,
["credit_score"] = 0xeff1,
["crib"] = 0xe588,
["crisis_alert"] = 0xebe9,
["crop"] = 0xe3be,
["crop_16_9"] = 0xe3bc,
["crop_3_2"] = 0xe3bd,
["crop_5_4"] = 0xe3bf,
["crop_7_5"] = 0xe3c0,
["crop_9_16"] = 0xf549,
["crop_din"] = 0xe3c6,
["crop_free"] = 0xe3c2,
["crop_landscape"] = 0xe3c3,
["crop_original"] = 0xe3f4,
["crop_portrait"] = 0xe3c5,
["crop_rotate"] = 0xe437,
["crop_square"] = 0xe3c6,
["crossword"] = 0xf5e5,
["crowdsource"] = 0xeb18,
["cruelty_free"] = 0xe799,
["css"] = 0xeb93,
["csv"] = 0xe6cf,
["currency_bitcoin"] = 0xebc5,
["currency_exchange"] = 0xeb70,
["currency_franc"] = 0xeafa,
["currency_lira"] = 0xeaef,
["currency_pound"] = 0xeaf1,
["currency_ruble"] = 0xeaec,
["currency_rupee"] = 0xeaf7,
["currency_yen"] = 0xeafb,
["currency_yuan"] = 0xeaf9,
["curtains"] = 0xec1e,
["curtains_closed"] = 0xec1d,
["custom_typography"] = 0xe732,
["cut"] = 0xf08b,
["cycle"] = 0xf854,
["cyclone"] = 0xebd5,
["dangerous"] = 0xe99a,
["dark_mode"] = 0xe51c,
["dashboard"] = 0xe871,
["dashboard_customize"] = 0xe99b,
["data_alert"] = 0xf7f6,
["data_array"] = 0xead1,
["data_check"] = 0xf7f2,
["data_exploration"] = 0xe76f,
["data_info_alert"] = 0xf7f5,
["data_loss_prevention"] = 0xe2dc,
["data_object"] = 0xead3,
["data_saver_off"] = 0xeff2,
["data_saver_on"] = 0xeff3,
["data_table"] = 0xe99c,
["data_thresholding"] = 0xeb9f,
["data_usage"] = 0xeff2,
["database"] = 0xf20e,
["dataset"] = 0xf8ee,
["dataset_linked"] = 0xf8ef,
["date_range"] = 0xe916,
["deblur"] = 0xeb77,
["deceased"] = 0xe0a5,
["decimal_decrease"] = 0xf82d,
["decimal_increase"] = 0xf82c,
["deck"] = 0xea42,
["dehaze"] = 0xe3c7,
["delete"] = 0xe92e,
["delete_forever"] = 0xe92b,
["delete_history"] = 0xf518,
["delete_outline"] = 0xe92e,
["delete_sweep"] = 0xe16c,
["demography"] = 0xe489,
["density_large"] = 0xeba9,
["density_medium"] = 0xeb9e,
["density_small"] = 0xeba8,
["dentistry"] = 0xe0a6,
["departure_board"] = 0xe576,
["deployed_code"] = 0xf720,
["deployed_code_account"] = 0xf51b,
["deployed_code_alert"] = 0xf5f2,
["deployed_code_history"] = 0xf5f3,
["deployed_code_update"] = 0xf5f4,
["dermatology"] = 0xe0a7,
["description"] = 0xe873,
["deselect"] = 0xebb6,
["design_services"] = 0xf10a,
["desk"] = 0xf8f4,
["deskphone"] = 0xf7fa,
["desktop_access_disabled"] = 0xe99d,
["desktop_mac"] = 0xe30b,
["desktop_windows"] = 0xe30c,
["destruction"] = 0xf585,
["details"] = 0xe3c8,
["detection_and_zone"] = 0xe29f,
["detector"] = 0xe282,
["detector_alarm"] = 0xe1f7,
["detector_battery"] = 0xe204,
["detector_co"] = 0xe2af,
["detector_offline"] = 0xe223,
["detector_smoke"] = 0xe285,
["detector_status"] = 0xe1e8,
["developer_board"] = 0xe30d,
["developer_board_off"] = 0xe4ff,
["developer_guide"] = 0xe99e,
["developer_mode"] = 0xe1b0,
["developer_mode_tv"] = 0xe874,
["device_hub"] = 0xe335,
["device_reset"] = 0xe8b3,
["device_thermostat"] = 0xe1ff,
["device_unknown"] = 0xe339,
["devices"] = 0xe326,
["devices_fold"] = 0xebde,
["devices_off"] = 0xf7a5,
["devices_other"] = 0xe337,
["devices_wearables"] = 0xf6ab,
["dew_point"] = 0xf879,
["diagnosis"] = 0xe0a8,
["dialer_sip"] = 0xe0bb,
["dialogs"] = 0xe99f,
["dialpad"] = 0xe0bc,
["diamond"] = 0xead5,
["dictionary"] = 0xf539,
["difference"] = 0xeb7d,
["digital_out_of_home"] = 0xf1de,
["digital_wellbeing"] = 0xef86,
["dining"] = 0xeff4,
["dinner_dining"] = 0xea57,
["directions"] = 0xe52e,
["directions_alt"] = 0xf880,
["directions_alt_off"] = 0xf881,
["directions_bike"] = 0xe52f,
["directions_boat"] = 0xeff5,
["directions_boat_filled"] = 0xeff5,
["directions_bus"] = 0xeff6,
["directions_bus_filled"] = 0xeff6,
["directions_car"] = 0xeff7,
["directions_car_filled"] = 0xeff7,
["directions_off"] = 0xf10f,
["directions_railway"] = 0xeff8,
["directions_railway_filled"] = 0xeff8,
["directions_run"] = 0xe566,
["directions_subway"] = 0xeffa,
["directions_subway_filled"] = 0xeffa,
["directions_transit"] = 0xeffa,
["directions_transit_filled"] = 0xeffa,
["directions_walk"] = 0xe536,
["directory_sync"] = 0xe394,
["dirty_lens"] = 0xef4b,
["disabled_by_default"] = 0xf230,
["disabled_visible"] = 0xe76e,
["disc_full"] = 0xe610,
["discover_tune"] = 0xe018,
["dishwasher"] = 0xe9a0,
["dishwasher_gen"] = 0xe832,
["display_external_input"] = 0xf7e7,
["display_settings"] = 0xeb97,
["distance"] = 0xf6ea,
["diversity_1"] = 0xf8d7,
["diversity_2"] = 0xf8d8,
["diversity_3"] = 0xf8d9,
["diversity_4"] = 0xf857,
["dns"] = 0xe875,
["do_disturb"] = 0xf08c,
["do_disturb_alt"] = 0xf08d,
["do_disturb_off"] = 0xf08e,
["do_disturb_on"] = 0xf08f,
["do_not_disturb"] = 0xf08d,
["do_not_disturb_alt"] = 0xf08c,
["do_not_disturb_off"] = 0xf08e,
["do_not_disturb_on"] = 0xf08f,
["do_not_disturb_on_total_silence"] = 0xeffb,
["do_not_step"] = 0xf19f,
["do_not_touch"] = 0xf1b0,
["dock"] = 0xe30e,
["dock_to_bottom"] = 0xf7e6,
["dock_to_left"] = 0xf7e5,
["dock_to_right"] = 0xf7e4,
["docs_add_on"] = 0xf0c2,
["docs_apps_script"] = 0xf0c3,
["document_scanner"] = 0xe5fa,
["domain"] = 0xe7ee,
["domain_add"] = 0xeb62,
["domain_disabled"] = 0xe0ef,
["domain_verification"] = 0xef4c,
["domain_verification_off"] = 0xf7b0,
["domino_mask"] = 0xf5e4,
["done"] = 0xe876,
["done_all"] = 0xe877,
["done_outline"] = 0xe92f,
["donut_large"] = 0xe917,
["donut_small"] = 0xe918,
["door_back"] = 0xeffc,
["door_front"] = 0xeffd,
["door_open"] = 0xe77c,
["door_sensor"] = 0xe28a,
["door_sliding"] = 0xeffe,
["doorbell"] = 0xefff,
["doorbell_3p"] = 0xe1e7,
["doorbell_chime"] = 0xe1f3,
["double_arrow"] = 0xea50,
["downhill_skiing"] = 0xe509,
["download"] = 0xf090,
["download_2"] = 0xf523,
["download_done"] = 0xf091,
["download_for_offline"] = 0xf000,
["downloading"] = 0xf001,
["draft"] = 0xe66d,
["draft_orders"] = 0xe7b3,
["drafts"] = 0xe151,
["drag_click"] = 0xf71f,
["drag_handle"] = 0xe25d,
["drag_indicator"] = 0xe945,
["drag_pan"] = 0xf71e,
["draw"] = 0xe746,
["draw_abstract"] = 0xf7f8,
["draw_collage"] = 0xf7f7,
["drawing_recognition"] = 0xeb00,
["dresser"] = 0xe210,
["drive_eta"] = 0xeff7,
["drive_file_move"] = 0xe9a1,
["drive_file_move_outline"] = 0xe9a1,
["drive_file_move_rtl"] = 0xe9a1,
["drive_file_rename_outline"] = 0xe9a2,
["drive_folder_upload"] = 0xe9a3,
["drive_fusiontable"] = 0xe678,
["dropdown"] = 0xe9a4,
["dry"] = 0xf1b3,
["dry_cleaning"] = 0xea58,
["dual_screen"] = 0xf6cf,
["duo"] = 0xe9a5,
["dvr"] = 0xe1b2,
["dynamic_feed"] = 0xea14,
["dynamic_form"] = 0xf1bf,
["e911_avatar"] = 0xf11a,
["e911_emergency"] = 0xf119,
["e_mobiledata"] = 0xf002,
["e_mobiledata_badge"] = 0xf7e3,
["earbuds"] = 0xf003,
["earbuds_battery"] = 0xf004,
["early_on"] = 0xe2ba,
["earthquake"] = 0xf64f,
["east"] = 0xf1df,
["ecg"] = 0xf80f,
["ecg_heart"] = 0xf6e9,
["eco"] = 0xea35,
["eda"] = 0xf6e8,
["edgesensor_high"] = 0xf005,
["edgesensor_low"] = 0xf006,
["edit"] = 0xf097,
["edit_attributes"] = 0xe578,
["edit_calendar"] = 0xe742,
["edit_document"] = 0xf88c,
["edit_location"] = 0xe568,
["edit_location_alt"] = 0xe1c5,
["edit_note"] = 0xe745,
["edit_notifications"] = 0xe525,
["edit_off"] = 0xe950,
["edit_road"] = 0xef4d,
["edit_square"] = 0xf88d,
["editor_choice"] = 0xf528,
["egg"] = 0xeacc,
["egg_alt"] = 0xeac8,
["eject"] = 0xe8fb,
["elderly"] = 0xf21a,
["elderly_woman"] = 0xeb69,
["electric_bike"] = 0xeb1b,
["electric_bolt"] = 0xec1c,
["electric_car"] = 0xeb1c,
["electric_meter"] = 0xec1b,
["electric_moped"] = 0xeb1d,
["electric_rickshaw"] = 0xeb1e,
["electric_scooter"] = 0xeb1f,
["electrical_services"] = 0xf102,
["elevation"] = 0xf6e7,
["elevator"] = 0xf1a0,
["email"] = 0xe159,
["emergency"] = 0xe1eb,
["emergency_heat"] = 0xf15d,
["emergency_heat_2"] = 0xf4e5,
["emergency_home"] = 0xe82a,
["emergency_recording"] = 0xebf4,
["emergency_share"] = 0xebf6,
["emergency_share_off"] = 0xf59e,
["emoji_emotions"] = 0xea22,
["emoji_events"] = 0xea23,
["emoji_flags"] = 0xf0c6,
["emoji_food_beverage"] = 0xea1b,
["emoji_nature"] = 0xea1c,
["emoji_objects"] = 0xea24,
["emoji_people"] = 0xea1d,
["emoji_symbols"] = 0xea1e,
["emoji_transportation"] = 0xea1f,
["emoticon"] = 0xe5f3,
["empty_dashboard"] = 0xf844,
["enable"] = 0xf188,
["encrypted"] = 0xe593,
["endocrinology"] = 0xe0a9,
["energy"] = 0xe9a6,
["energy_program_saving"] = 0xf15f,
["energy_program_time_used"] = 0xf161,
["energy_savings_leaf"] = 0xec1a,
["engineering"] = 0xea3d,
["enhanced_encryption"] = 0xe63f,
["ent"] = 0xe0aa,
["enterprise"] = 0xe70e,
["enterprise_off"] = 0xeb4d,
["equal"] = 0xf77b,
["equalizer"] = 0xe01d,
["error"] = 0xf8b6,
["error_circle_rounded"] = 0xf8b6,
["error_med"] = 0xe49b,
["error_outline"] = 0xf8b6,
["escalator"] = 0xf1a1,
["escalator_warning"] = 0xf1ac,
["euro"] = 0xea15,
["euro_symbol"] = 0xe926,
["ev_charger"] = 0xe56d,
["ev_mobiledata_badge"] = 0xf7e2,
["ev_shadow"] = 0xef8f,
["ev_shadow_add"] = 0xf580,
["ev_shadow_minus"] = 0xf57f,
["ev_station"] = 0xe56d,
["event"] = 0xe878,
["event_available"] = 0xe614,
["event_busy"] = 0xe615,
["event_list"] = 0xf683,
["event_note"] = 0xe616,
["event_repeat"] = 0xeb7b,
["event_seat"] = 0xe903,
["event_upcoming"] = 0xf238,
["exclamation"] = 0xf22f,
["exercise"] = 0xf6e6,
["exit_to_app"] = 0xe879,
["expand"] = 0xe94f,
["expand_all"] = 0xe946,
["expand_circle_down"] = 0xe7cd,
["expand_circle_right"] = 0xf591,
["expand_circle_up"] = 0xf5d2,
["expand_content"] = 0xf830,
["expand_less"] = 0xe5ce,
["expand_more"] = 0xe5cf,
["experiment"] = 0xe686,
["explicit"] = 0xe01e,
["explore"] = 0xe87a,
["explore_nearby"] = 0xe538,
["explore_off"] = 0xe9a8,
["explosion"] = 0xf685,
["export_notes"] = 0xe0ac,
["exposure"] = 0xe3f6,
["exposure_neg_1"] = 0xe3cb,
["exposure_neg_2"] = 0xe3cc,
["exposure_plus_1"] = 0xe800,
["exposure_plus_2"] = 0xe3ce,
["exposure_zero"] = 0xe3cf,
["extension"] = 0xe87b,
["extension_off"] = 0xe4f5,
["eyeglasses"] = 0xf6ee,
["face"] = 0xf008,
["face_2"] = 0xf8da,
["face_3"] = 0xf8db,
["face_4"] = 0xf8dc,
["face_5"] = 0xf8dd,
["face_6"] = 0xf8de,
["face_retouching_natural"] = 0xef4e,
["face_retouching_off"] = 0xf007,
["face_unlock"] = 0xf008,
["fact_check"] = 0xf0c5,
["factory"] = 0xebbc,
["falling"] = 0xf60d,
["familiar_face_and_zone"] = 0xe21c,
["family_history"] = 0xe0ad,
["family_home"] = 0xeb26,
["family_link"] = 0xeb19,
["family_restroom"] = 0xf1a2,
["family_star"] = 0xf527,
["farsight_digital"] = 0xf559,
["fast_forward"] = 0xe01f,
["fast_rewind"] = 0xe020,
["fastfood"] = 0xe57a,
["faucet"] = 0xe278,
["favorite"] = 0xe87e,
["favorite_border"] = 0xe87e,
["fax"] = 0xead8,
["feature_search"] = 0xe9a9,
["featured_play_list"] = 0xe06d,
["featured_seasonal_and_gifts"] = 0xef91,
["featured_video"] = 0xe06e,
["feed"] = 0xf009,
["feedback"] = 0xe87f,
["female"] = 0xe590,
["femur"] = 0xf891,
["femur_alt"] = 0xf892,
["fence"] = 0xf1f6,
["fertile"] = 0xf6e5,
["festival"] = 0xea68,
["fiber_dvr"] = 0xe05d,
["fiber_manual_record"] = 0xe061,
["fiber_new"] = 0xe05e,
["fiber_pin"] = 0xe06a,
["fiber_smart_record"] = 0xe062,
["file_copy"] = 0xe173,
["file_copy_off"] = 0xf4d8,
["file_download"] = 0xf090,
["file_download_done"] = 0xf091,
["file_download_off"] = 0xe4fe,
["file_map"] = 0xe2c5,
["file_open"] = 0xeaf3,
["file_present"] = 0xea0e,
["file_save"] = 0xf17f,
["file_save_off"] = 0xe505,
["file_upload"] = 0xf09b,
["file_upload_off"] = 0xf886,
["filter"] = 0xe3d3,
["filter_1"] = 0xe3d0,
["filter_2"] = 0xe3d1,
["filter_3"] = 0xe3d2,
["filter_4"] = 0xe3d4,
["filter_5"] = 0xe3d5,
["filter_6"] = 0xe3d6,
["filter_7"] = 0xe3d7,
["filter_8"] = 0xe3d8,
["filter_9"] = 0xe3d9,
["filter_9_plus"] = 0xe3da,
["filter_alt"] = 0xef4f,
["filter_alt_off"] = 0xeb32,
["filter_b_and_w"] = 0xe3db,
["filter_center_focus"] = 0xe3dc,
["filter_drama"] = 0xe3dd,
["filter_frames"] = 0xe3de,
["filter_hdr"] = 0xe3df,
["filter_list"] = 0xe152,
["filter_list_alt"] = 0xe94e,
["filter_list_off"] = 0xeb57,
["filter_none"] = 0xe3e0,
["filter_retrolux"] = 0xe3e1,
["filter_tilt_shift"] = 0xe3e2,
["filter_vintage"] = 0xe3e3,
["finance"] = 0xe6bf,
["finance_chip"] = 0xf84e,
["finance_mode"] = 0xef92,
["find_in_page"] = 0xe880,
["find_replace"] = 0xe881,
["fingerprint"] = 0xe90d,
["fire_extinguisher"] = 0xf1d8,
["fire_hydrant"] = 0xf1a3,
["fire_truck"] = 0xf8f2,
["fireplace"] = 0xea43,
["first_page"] = 0xe5dc,
["fit_page"] = 0xf77a,
["fit_screen"] = 0xea10,
["fit_width"] = 0xf779,
["fitness_center"] = 0xeb43,
["flag"] = 0xf0c6,
["flag_circle"] = 0xeaf8,
["flag_filled"] = 0xf0c6,
["flaky"] = 0xef50,
["flare"] = 0xe3e4,
["flash_auto"] = 0xe3e5,
["flash_off"] = 0xe3e6,
["flash_on"] = 0xe3e7,
["flashlight_off"] = 0xf00a,
["flashlight_on"] = 0xf00b,
["flatware"] = 0xf00c,
["flex_direction"] = 0xf778,
["flex_no_wrap"] = 0xf777,
["flex_wrap"] = 0xf776,
["flight"] = 0xe539,
["flight_class"] = 0xe7cb,
["flight_land"] = 0xe904,
["flight_takeoff"] = 0xe905,
["flights_and_hotels"] = 0xe9ab,
["flightsmode"] = 0xef93,
["flip"] = 0xe3e8,
["flip_camera_android"] = 0xea37,
["flip_camera_ios"] = 0xea38,
["flip_to_back"] = 0xe882,
["flip_to_front"] = 0xe883,
["flood"] = 0xebe6,
["floor"] = 0xf6e4,
["floor_lamp"] = 0xe21e,
["flourescent"] = 0xf07d,
["flowsheet"] = 0xe0ae,
["fluid"] = 0xe483,
["fluid_balance"] = 0xf80d,
["fluid_med"] = 0xf80c,
["fluorescent"] = 0xf07d,
["flutter"] = 0xf1dd,
["flutter_dash"] = 0xe00b,
["fmd_bad"] = 0xf00e,
["fmd_good"] = 0xf1db,
["foggy"] = 0xe818,
["folded_hands"] = 0xf5ed,
["folder"] = 0xe2c7,
["folder_copy"] = 0xebbd,
["folder_data"] = 0xf586,
["folder_delete"] = 0xeb34,
["folder_limited"] = 0xf4e4,
["folder_managed"] = 0xf775,
["folder_off"] = 0xeb83,
["folder_open"] = 0xe2c8,
["folder_shared"] = 0xe2c9,
["folder_special"] = 0xe617,
["folder_supervised"] = 0xf774,
["folder_zip"] = 0xeb2c,
["follow_the_signs"] = 0xf222,
["font_download"] = 0xe167,
["font_download_off"] = 0xe4f9,
["food_bank"] = 0xf1f2,
["foot_bones"] = 0xf893,
["footprint"] = 0xf87d,
["for_you"] = 0xe9ac,
["forest"] = 0xea99,
["fork_left"] = 0xeba0,
["fork_right"] = 0xebac,
["forklift"] = 0xf868,
["format_align_center"] = 0xe234,
["format_align_justify"] = 0xe235,
["format_align_left"] = 0xe236,
["format_align_right"] = 0xe237,
["format_bold"] = 0xe238,
["format_clear"] = 0xe239,
["format_color_fill"] = 0xe23a,
["format_color_reset"] = 0xe23b,
["format_color_text"] = 0xe23c,
["format_h1"] = 0xf85d,
["format_h2"] = 0xf85e,
["format_h3"] = 0xf85f,
["format_h4"] = 0xf860,
["format_h5"] = 0xf861,
["format_h6"] = 0xf862,
["format_image_left"] = 0xf863,
["format_image_right"] = 0xf864,
["format_indent_decrease"] = 0xe23d,
["format_indent_increase"] = 0xe23e,
["format_ink_highlighter"] = 0xf82b,
["format_italic"] = 0xe23f,
["format_letter_spacing"] = 0xf773,
["format_letter_spacing_2"] = 0xf618,
["format_letter_spacing_standard"] = 0xf617,
["format_letter_spacing_wide"] = 0xf616,
["format_letter_spacing_wider"] = 0xf615,
["format_line_spacing"] = 0xe240,
["format_list_bulleted"] = 0xe241,
["format_list_bulleted_add"] = 0xf849,
["format_list_numbered"] = 0xe242,
["format_list_numbered_rtl"] = 0xe267,
["format_overline"] = 0xeb65,
["format_paint"] = 0xe243,
["format_paragraph"] = 0xf865,
["format_quote"] = 0xe244,
["format_shapes"] = 0xe25e,
["format_size"] = 0xe245,
["format_strikethrough"] = 0xe246,
["format_text_clip"] = 0xf82a,
["format_text_overflow"] = 0xf829,
["format_text_wrap"] = 0xf828,
["format_textdirection_l_to_r"] = 0xe247,
["format_textdirection_r_to_l"] = 0xe248,
["format_underlined"] = 0xe249,
["format_underlined_squiggle"] = 0xf885,
["forms_add_on"] = 0xf0c7,
["forms_apps_script"] = 0xf0c8,
["fort"] = 0xeaad,
["forum"] = 0xe8af,
["forward"] = 0xf57a,
["forward_10"] = 0xe056,
["forward_30"] = 0xe057,
["forward_5"] = 0xe058,
["forward_circle"] = 0xf6f5,
["forward_media"] = 0xf6f4,
["forward_to_inbox"] = 0xf187,
["foundation"] = 0xf200,
["frame_inspect"] = 0xf772,
["frame_person"] = 0xf8a6,
["frame_person_off"] = 0xf7d1,
["frame_reload"] = 0xf771,
["frame_source"] = 0xf770,
["free_breakfast"] = 0xeb44,
["free_cancellation"] = 0xe748,
["front_hand"] = 0xe769,
["front_loader"] = 0xf869,
["full_coverage"] = 0xeb12,
["full_hd"] = 0xf58b,
["full_stacked_bar_chart"] = 0xf212,
["fullscreen"] = 0xe5d0,
["fullscreen_exit"] = 0xe5d1,
["function"] = 0xf866,
["functions"] = 0xe24a,
["g_mobiledata"] = 0xf010,
["g_mobiledata_badge"] = 0xf7e1,
["g_translate"] = 0xe927,
["gallery_thumbnail"] = 0xf86f,
["gamepad"] = 0xe30f,
["games"] = 0xe30f,
["garage"] = 0xf011,
["garage_door"] = 0xe714,
["garage_home"] = 0xe82d,
["garden_cart"] = 0xf8a9,
["gas_meter"] = 0xec19,
["gastroenterology"] = 0xe0f1,
["gate"] = 0xe277,
["gavel"] = 0xe90e,
["general_device"] = 0xe6de,
["generating_tokens"] = 0xe749,
["genetics"] = 0xe0f3,
["genres"] = 0xe6ee,
["gesture"] = 0xe155,
["gesture_select"] = 0xf657,
["get_app"] = 0xf090,
["gif"] = 0xe908,
["gif_box"] = 0xe7a3,
["girl"] = 0xeb68,
["gite"] = 0xe58b,
["glass_cup"] = 0xf6e3,
["globe"] = 0xe64c,
["globe_asia"] = 0xf799,
["globe_uk"] = 0xf798,
["glucose"] = 0xe4a0,
["glyphs"] = 0xf8a3,
["go_to_line"] = 0xf71d,
["golf_course"] = 0xeb45,
["google_home_devices"] = 0xe715,
["google_plus_reshare"] = 0xf57a,
["google_tv_remote"] = 0xf5db,
["google_wifi"] = 0xf579,
["gpp_bad"] = 0xf012,
["gpp_good"] = 0xf013,
["gpp_maybe"] = 0xf014,
["gps_fixed"] = 0xe55c,
["gps_not_fixed"] = 0xe1b7,
["gps_off"] = 0xe1b6,
["grade"] = 0xe885,
["gradient"] = 0xe3e9,
["grading"] = 0xea4f,
["grain"] = 0xe3ea,
["graphic_eq"] = 0xe1b8,
["grass"] = 0xf205,
["grid_3x3"] = 0xf015,
["grid_3x3_off"] = 0xf67c,
["grid_4x4"] = 0xf016,
["grid_goldenratio"] = 0xf017,
["grid_guides"] = 0xf76f,
["grid_off"] = 0xe3eb,
["grid_on"] = 0xe3ec,
["grid_view"] = 0xe9b0,
["grocery"] = 0xef97,
["group"] = 0xea21,
["group_add"] = 0xe7f0,
["group_off"] = 0xe747,
["group_remove"] = 0xe7ad,
["group_work"] = 0xe886,
["grouped_bar_chart"] = 0xf211,
["groups"] = 0xf233,
["groups_2"] = 0xf8df,
["groups_3"] = 0xf8e0,
["gynecology"] = 0xe0f4,
["h_mobiledata"] = 0xf018,
["h_mobiledata_badge"] = 0xf7e0,
["h_plus_mobiledata"] = 0xf019,
["h_plus_mobiledata_badge"] = 0xf7df,
["hail"] = 0xe9b1,
["hallway"] = 0xe6f8,
["hand_bones"] = 0xf894,
["hand_gesture"] = 0xef9c,
["handshake"] = 0xebcb,
["handwriting_recognition"] = 0xeb02,
["handyman"] = 0xf10b,
["hangout_video"] = 0xe0c1,
["hangout_video_off"] = 0xe0c2,
["hard_drive"] = 0xf80e,
["hard_drive_2"] = 0xf7a4,
["hardware"] = 0xea59,
["hd"] = 0xe052,
["hdr_auto"] = 0xf01a,
["hdr_auto_select"] = 0xf01b,
["hdr_enhanced_select"] = 0xef51,
["hdr_off"] = 0xe3ed,
["hdr_off_select"] = 0xf01c,
["hdr_on"] = 0xe3ee,
["hdr_on_select"] = 0xf01d,
["hdr_plus"] = 0xf01e,
["hdr_plus_off"] = 0xe3ef,
["hdr_strong"] = 0xe3f1,
["hdr_weak"] = 0xe3f2,
["headphones"] = 0xf01f,
["headphones_battery"] = 0xf020,
["headset"] = 0xf01f,
["headset_mic"] = 0xe311,
["headset_off"] = 0xe33a,
["healing"] = 0xe3f3,
["health_and_beauty"] = 0xef9d,
["health_and_safety"] = 0xe1d5,
["health_metrics"] = 0xf6e2,
["heap_snapshot_large"] = 0xf76e,
["heap_snapshot_multiple"] = 0xf76d,
["heap_snapshot_thumbnail"] = 0xf76c,
["hearing"] = 0xe023,
["hearing_disabled"] = 0xf104,
["heart_broken"] = 0xeac2,
["heart_check"] = 0xf60a,
["heart_minus"] = 0xf883,
["heart_plus"] = 0xf884,
["heat"] = 0xf537,
["heat_pump"] = 0xec18,
["heat_pump_balance"] = 0xe27e,
["height"] = 0xea16,
["helicopter"] = 0xf60c,
["help"] = 0xe8fd,
["help_center"] = 0xf1c0,
["help_clinic"] = 0xf810,
["help_outline"] = 0xe8fd,
["hematology"] = 0xe0f6,
["hevc"] = 0xf021,
["hexagon"] = 0xeb39,
["hide"] = 0xef9e,
["hide_image"] = 0xf022,
["hide_source"] = 0xf023,
["high_density"] = 0xf79c,
["high_quality"] = 0xe024,
["high_res"] = 0xf54b,
["highlight"] = 0xe25f,
["highlight_keyboard_focus"] = 0xf510,
["highlight_mouse_cursor"] = 0xf511,
["highlight_off"] = 0xe888,
["highlight_text_cursor"] = 0xf512,
["highlighter_size_1"] = 0xf76b,
["highlighter_size_2"] = 0xf76a,
["highlighter_size_3"] = 0xf769,
["highlighter_size_4"] = 0xf768,
["highlighter_size_5"] = 0xf767,
["hiking"] = 0xe50a,
["history"] = 0xe8b3,
["history_edu"] = 0xea3e,
["history_off"] = 0xf4da,
["history_toggle_off"] = 0xf17d,
["hive"] = 0xeaa6,
["hls"] = 0xeb8a,
["hls_off"] = 0xeb8c,
["holiday_village"] = 0xe58a,
["home"] = 0xe9b2,
["home_and_garden"] = 0xef9f,
["home_app_logo"] = 0xe295,
["home_filled"] = 0xe9b2,
["home_health"] = 0xe4b9,
["home_improvement_and_tools"] = 0xefa0,
["home_iot_device"] = 0xe283,
["home_max"] = 0xf024,
["home_max_dots"] = 0xe849,
["home_mini"] = 0xf025,
["home_pin"] = 0xf14d,
["home_repair_service"] = 0xf100,
["home_speaker"] = 0xf11c,
["home_storage"] = 0xf86c,
["home_work"] = 0xf030,
["horizontal_distribute"] = 0xe014,
["horizontal_rule"] = 0xf108,
["horizontal_split"] = 0xe947,
["hot_tub"] = 0xeb46,
["hotel"] = 0xe549,
["hotel_class"] = 0xe743,
["hourglass"] = 0xebff,
["hourglass_bottom"] = 0xea5c,
["hourglass_disabled"] = 0xef53,
["hourglass_empty"] = 0xe88b,
["hourglass_full"] = 0xe88c,
["hourglass_top"] = 0xea5b,
["house"] = 0xea44,
["house_siding"] = 0xf202,
["house_with_shield"] = 0xe786,
["houseboat"] = 0xe584,
["household_supplies"] = 0xefa1,
["how_to_reg"] = 0xe174,
["how_to_vote"] = 0xe175,
["hr_resting"] = 0xf6ba,
["html"] = 0xeb7e,
["http"] = 0xe902,
["https"] = 0xe899,
["hub"] = 0xe9f4,
["humerus"] = 0xf895,
["humerus_alt"] = 0xf896,
["humidity_high"] = 0xf163,
["humidity_indoor"] = 0xf558,
["humidity_low"] = 0xf164,
["humidity_mid"] = 0xf165,
["humidity_percentage"] = 0xf87e,
["hvac"] = 0xf10e,
["ice_skating"] = 0xe50b,
["icecream"] = 0xea69,
["ifl"] = 0xe025,
["iframe"] = 0xf71b,
["iframe_off"] = 0xf71c,
["image"] = 0xe3f4,
["image_aspect_ratio"] = 0xe3f5,
["image_not_supported"] = 0xf116,
["image_search"] = 0xe43f,
["imagesearch_roller"] = 0xe9b4,
["imagesmode"] = 0xefa2,
["immunology"] = 0xe0fb,
["import_contacts"] = 0xe0e0,
["import_export"] = 0xe8d5,
["important_devices"] = 0xe912,
["in_home_mode"] = 0xe833,
["inactive_order"] = 0xe0fc,
["inbox"] = 0xe156,
["inbox_customize"] = 0xf859,
["incomplete_circle"] = 0xe79b,
["indeterminate_check_box"] = 0xe909,
["indeterminate_question_box"] = 0xf56d,
["info"] = 0xe88e,
["info_i"] = 0xf59b,
["infrared"] = 0xf87c,
["ink_eraser"] = 0xe6d0,
["ink_eraser_off"] = 0xe7e3,
["ink_highlighter"] = 0xe6d1,
["ink_highlighter_move"] = 0xf524,
["ink_marker"] = 0xe6d2,
["ink_pen"] = 0xe6d3,
["inpatient"] = 0xe0fe,
["input"] = 0xe890,
["input_circle"] = 0xf71a,
["insert_chart"] = 0xf0cc,
["insert_chart_filled"] = 0xf0cc,
["insert_chart_outlined"] = 0xf0cc,
["insert_comment"] = 0xe24c,
["insert_drive_file"] = 0xe66d,
["insert_emoticon"] = 0xea22,
["insert_invitation"] = 0xe878,
["insert_link"] = 0xe250,
["insert_page_break"] = 0xeaca,
["insert_photo"] = 0xe3f4,
["insert_text"] = 0xf827,
["insights"] = 0xf092,
["install_desktop"] = 0xeb71,
["install_mobile"] = 0xeb72,
["instant_mix"] = 0xe026,
["integration_instructions"] = 0xef54,
["interactive_space"] = 0xf7ff,
["interests"] = 0xe7c8,
["interpreter_mode"] = 0xe83b,
["inventory"] = 0xe179,
["inventory_2"] = 0xe1a1,
["invert_colors"] = 0xe891,
["invert_colors_off"] = 0xe0c4,
["ios"] = 0xe027,
["ios_share"] = 0xe6b8,
["iron"] = 0xe583,
["iso"] = 0xe3f6,
["jamboard_kiosk"] = 0xe9b5,
["javascript"] = 0xeb7c,
["join"] = 0xf84f,
["join_full"] = 0xf84f,
["join_inner"] = 0xeaf4,
["join_left"] = 0xeaf2,
["join_right"] = 0xeaea,
["joystick"] = 0xf5ee,
["jump_to_element"] = 0xf719,
["kayaking"] = 0xe50c,
["kebab_dining"] = 0xe842,
["kettle"] = 0xe2b9,
["key"] = 0xe73c,
["key_off"] = 0xeb84,
["key_vertical"] = 0xf51a,
["key_visualizer"] = 0xf199,
["keyboard"] = 0xe312,
["keyboard_alt"] = 0xf028,
["keyboard_arrow_down"] = 0xe313,
["keyboard_arrow_left"] = 0xe314,
["keyboard_arrow_right"] = 0xe315,
["keyboard_arrow_up"] = 0xe316,
["keyboard_backspace"] = 0xe317,
["keyboard_capslock"] = 0xe318,
["keyboard_capslock_badge"] = 0xf7de,
["keyboard_command_key"] = 0xeae7,
["keyboard_control_key"] = 0xeae6,
["keyboard_double_arrow_down"] = 0xead0,
["keyboard_double_arrow_left"] = 0xeac3,
["keyboard_double_arrow_right"] = 0xeac9,
["keyboard_double_arrow_up"] = 0xeacf,
["keyboard_external_input"] = 0xf7dd,
["keyboard_full"] = 0xf7dc,
["keyboard_hide"] = 0xe31a,
["keyboard_keys"] = 0xf67b,
["keyboard_off"] = 0xf67a,
["keyboard_onscreen"] = 0xf7db,
["keyboard_option_key"] = 0xeae8,
["keyboard_previous_language"] = 0xf7da,
["keyboard_return"] = 0xe31b,
["keyboard_tab"] = 0xe31c,
["keyboard_tab_rtl"] = 0xec73,
["keyboard_voice"] = 0xe31d,
["kid_star"] = 0xf526,
["king_bed"] = 0xea45,
["kitchen"] = 0xeb47,
["kitesurfing"] = 0xe50d,
["lab_panel"] = 0xe103,
["lab_profile"] = 0xe104,
["lab_research"] = 0xf80b,
["label"] = 0xe893,
["label_important"] = 0xe948,
["label_important_outline"] = 0xe948,
["label_off"] = 0xe9b6,
["label_outline"] = 0xe893,
["labs"] = 0xe105,
["lan"] = 0xeb2f,
["landscape"] = 0xe564,
["landslide"] = 0xebd7,
["language"] = 0xe894,
["language_chinese_array"] = 0xf766,
["language_chinese_cangjie"] = 0xf765,
["language_chinese_dayi"] = 0xf764,
["language_chinese_pinyin"] = 0xf763,
["language_chinese_quick"] = 0xf762,
["language_chinese_wubi"] = 0xf761,
["language_french"] = 0xf760,
["language_gb_english"] = 0xf75f,
["language_international"] = 0xf75e,
["language_japanese_kana"] = 0xf513,
["language_korean_latin"] = 0xf75d,
["language_pinyin"] = 0xf75c,
["language_spanish"] = 0xf5e9,
["language_us"] = 0xf759,
["language_us_colemak"] = 0xf75b,
["language_us_dvorak"] = 0xf75a,
["laps"] = 0xf6b9,
["laptop"] = 0xe31e,
["laptop_chromebook"] = 0xe31f,
["laptop_mac"] = 0xe320,
["laptop_windows"] = 0xe321,
["lasso_select"] = 0xeb03,
["last_page"] = 0xe5dd,
["launch"] = 0xe89e,
["laundry"] = 0xe2a8,
["layers"] = 0xe53b,
["layers_clear"] = 0xe53c,
["lda"] = 0xe106,
["leaderboard"] = 0xf20c,
["leak_add"] = 0xe3f8,
["leak_remove"] = 0xe3f9,
["left_click"] = 0xf718,
["left_panel_close"] = 0xf717,
["left_panel_open"] = 0xf716,
["legend_toggle"] = 0xf11b,
["lens"] = 0xe3fa,
["lens_blur"] = 0xf029,
["letter_switch"] = 0xf758,
["library_add"] = 0xe03c,
["library_add_check"] = 0xe9b7,
["library_books"] = 0xe02f,
["library_music"] = 0xe030,
["license"] = 0xeb04,
["lift_to_talk"] = 0xefa3,
["light"] = 0xf02a,
["light_group"] = 0xe28b,
["light_mode"] = 0xe518,
["light_off"] = 0xe9b8,
["lightbulb"] = 0xe90f,
["lightbulb_circle"] = 0xebfe,
["lightbulb_outline"] = 0xe90f,
["lightning_stand"] = 0xefa4,
["line_axis"] = 0xea9a,
["line_curve"] = 0xf757,
["line_end"] = 0xf826,
["line_end_arrow"] = 0xf81d,
["line_end_arrow_notch"] = 0xf81c,
["line_end_circle"] = 0xf81b,
["line_end_diamond"] = 0xf81a,
["line_end_square"] = 0xf819,
["line_start"] = 0xf825,
["line_start_arrow"] = 0xf818,
["line_start_arrow_notch"] = 0xf817,
["line_start_circle"] = 0xf816,
["line_start_diamond"] = 0xf815,
["line_start_square"] = 0xf814,
["line_style"] = 0xe919,
["line_weight"] = 0xe91a,
["linear_scale"] = 0xe260,
["link"] = 0xe250,
["link_off"] = 0xe16f,
["linked_camera"] = 0xe438,
["linked_services"] = 0xf535,
["liquor"] = 0xea60,
["list"] = 0xe896,
["list_alt"] = 0xe0ee,
["list_alt_add"] = 0xf756,
["lists"] = 0xe9b9,
["live_help"] = 0xe0c6,
["live_tv"] = 0xe63a,
["living"] = 0xf02b,
["local_activity"] = 0xe553,
["local_airport"] = 0xe53d,
["local_atm"] = 0xe53e,
["local_bar"] = 0xe540,
["local_cafe"] = 0xeb44,
["local_car_wash"] = 0xe542,
["local_convenience_store"] = 0xe543,
["local_dining"] = 0xe561,
["local_drink"] = 0xe544,
["local_fire_department"] = 0xef55,
["local_florist"] = 0xe545,
["local_gas_station"] = 0xe546,
["local_grocery_store"] = 0xe8cc,
["local_hospital"] = 0xe548,
["local_hotel"] = 0xe549,
["local_laundry_service"] = 0xe54a,
["local_library"] = 0xe54b,
["local_mall"] = 0xe54c,
["local_movies"] = 0xe8da,
["local_offer"] = 0xf05b,
["local_parking"] = 0xe54f,
["local_pharmacy"] = 0xe550,
["local_phone"] = 0xf0d4,
["local_pizza"] = 0xe552,
["local_play"] = 0xe553,
["local_police"] = 0xef56,
["local_post_office"] = 0xe554,
["local_printshop"] = 0xe8ad,
["local_see"] = 0xe557,
["local_shipping"] = 0xe558,
["local_taxi"] = 0xe559,
["location_automation"] = 0xf14f,
["location_away"] = 0xf150,
["location_chip"] = 0xf850,
["location_city"] = 0xe7f1,
["location_disabled"] = 0xe1b6,
["location_home"] = 0xf152,
["location_off"] = 0xe0c7,
["location_on"] = 0xf1db,
["location_pin"] = 0xf1db,
["location_searching"] = 0xe1b7,
["locator_tag"] = 0xf8c1,
["lock"] = 0xe899,
["lock_clock"] = 0xef57,
["lock_open"] = 0xe898,
["lock_open_right"] = 0xf656,
["lock_outline"] = 0xe899,
["lock_person"] = 0xf8f3,
["lock_reset"] = 0xeade,
["login"] = 0xea77,
["logo_dev"] = 0xead6,
["logout"] = 0xe9ba,
["looks"] = 0xe3fc,
["looks_3"] = 0xe3fb,
["looks_4"] = 0xe3fd,
["looks_5"] = 0xe3fe,
["looks_6"] = 0xe3ff,
["looks_one"] = 0xe400,
["looks_two"] = 0xe401,
["loop"] = 0xe863,
["loupe"] = 0xe402,
["low_density"] = 0xf79b,
["low_priority"] = 0xe16d,
["loyalty"] = 0xe89a,
["lte_mobiledata"] = 0xf02c,
["lte_mobiledata_badge"] = 0xf7d9,
["lte_plus_mobiledata"] = 0xf02d,
["lte_plus_mobiledata_badge"] = 0xf7d8,
["luggage"] = 0xf235,
["lunch_dining"] = 0xea61,
["lyrics"] = 0xec0b,
["macro_auto"] = 0xf6f2,
["macro_off"] = 0xf8d2,
["magic_button"] = 0xf136,
["magic_exchange"] = 0xf7f4,
["magic_tether"] = 0xf7d7,
["magnification_large"] = 0xf83d,
["magnification_small"] = 0xf83c,
["magnify_docked"] = 0xf7d6,
["magnify_fullscreen"] = 0xf7d5,
["mail"] = 0xe159,
["mail_lock"] = 0xec0a,
["mail_outline"] = 0xe159,
["male"] = 0xe58e,
["man"] = 0xe4eb,
["man_2"] = 0xf8e1,
["man_3"] = 0xf8e2,
["man_4"] = 0xf8e3,
["manage_accounts"] = 0xf02e,
["manage_history"] = 0xebe7,
["manage_search"] = 0xf02f,
["manga"] = 0xf5e3,
["manufacturing"] = 0xe726,
["map"] = 0xe55b,
["maps_home_work"] = 0xf030,
["maps_ugc"] = 0xef58,
["margin"] = 0xe9bb,
["mark_as_unread"] = 0xe9bc,
["mark_chat_read"] = 0xf18b,
["mark_chat_unread"] = 0xf189,
["mark_email_read"] = 0xf18c,
["mark_email_unread"] = 0xf18a,
["mark_unread_chat_alt"] = 0xeb9d,
["markdown"] = 0xf552,
["markdown_copy"] = 0xf553,
["markdown_paste"] = 0xf554,
["markunread"] = 0xe159,
["markunread_mailbox"] = 0xe89b,
["masked_transitions"] = 0xe72e,
["masks"] = 0xf218,
["match_case"] = 0xf6f1,
["match_word"] = 0xf6f0,
["matter"] = 0xe907,
["maximize"] = 0xe930,
["measuring_tape"] = 0xf6af,
["media_bluetooth_off"] = 0xf031,
["media_bluetooth_on"] = 0xf032,
["media_link"] = 0xf83f,
["media_output"] = 0xf4f2,
["media_output_off"] = 0xf4f3,
["mediation"] = 0xefa7,
["medical_information"] = 0xebed,
["medical_mask"] = 0xf80a,
["medical_services"] = 0xf109,
["medication"] = 0xf033,
["medication_liquid"] = 0xea87,
["meeting_room"] = 0xeb4f,
["memory"] = 0xe322,
["memory_alt"] = 0xf7a3,
["menstrual_health"] = 0xf6e1,
["menu"] = 0xe5d2,
["menu_book"] = 0xea19,
["menu_open"] = 0xe9bd,
["merge"] = 0xeb98,
["merge_type"] = 0xe252,
["message"] = 0xe0c9,
["metabolism"] = 0xe10b,
["mfg_nest_yale_lock"] = 0xf11d,
["mic"] = 0xe31d,
["mic_double"] = 0xf5d1,
["mic_external_off"] = 0xef59,
["mic_external_on"] = 0xef5a,
["mic_none"] = 0xe31d,
["mic_off"] = 0xe02b,
["microbiology"] = 0xe10c,
["microwave"] = 0xf204,
["microwave_gen"] = 0xe847,
["military_tech"] = 0xea3f,
["mimo"] = 0xe9be,
["mimo_disconnect"] = 0xe9bf,
["mindfulness"] = 0xf6e0,
["minimize"] = 0xe931,
["minor_crash"] = 0xebf1,
["mintmark"] = 0xefa9,
["missed_video_call"] = 0xf0ce,
["missed_video_call_filled"] = 0xf0ce,
["missing_controller"] = 0xe701,
["mist"] = 0xe188,
["mitre"] = 0xf547,
["mixture_med"] = 0xe4c8,
["mms"] = 0xe618,
["mobile_friendly"] = 0xe200,
["mobile_off"] = 0xe201,
["mobile_screen_share"] = 0xe0e7,
["mobiledata_off"] = 0xf034,
["mode"] = 0xf097,
["mode_comment"] = 0xe253,
["mode_cool"] = 0xf166,
["mode_cool_off"] = 0xf167,
["mode_dual"] = 0xf557,
["mode_edit"] = 0xf097,
["mode_edit_outline"] = 0xf097,
["mode_fan"] = 0xf168,
["mode_fan_off"] = 0xec17,
["mode_heat"] = 0xf16a,
["mode_heat_cool"] = 0xf16b,
["mode_heat_off"] = 0xf16d,
["mode_night"] = 0xf036,
["mode_of_travel"] = 0xe7ce,
["mode_off_on"] = 0xf16f,
["mode_standby"] = 0xf037,
["model_training"] = 0xf0cf,
["monetization_on"] = 0xe263,
["money"] = 0xe57d,
["money_off"] = 0xf038,
["money_off_csred"] = 0xf038,
["monitor"] = 0xef5b,
["monitor_heart"] = 0xeaa2,
["monitor_weight"] = 0xf039,
["monitor_weight_gain"] = 0xf6df,
["monitor_weight_loss"] = 0xf6de,
["monitoring"] = 0xf190,
["monochrome_photos"] = 0xe403,
["mood"] = 0xea22,
["mood_bad"] = 0xe7f3,
["mop"] = 0xe28d,
["more"] = 0xe619,
["more_down"] = 0xf196,
["more_horiz"] = 0xe5d3,
["more_time"] = 0xea5d,
["more_up"] = 0xf197,
["more_vert"] = 0xe5d4,
["mosque"] = 0xeab2,
["motion_blur"] = 0xf0d0,
["motion_mode"] = 0xf842,
["motion_photos_auto"] = 0xf03a,
["motion_photos_off"] = 0xe9c0,
["motion_photos_on"] = 0xe9c1,
["motion_photos_pause"] = 0xf227,
["motion_photos_paused"] = 0xf227,
["motion_sensor_active"] = 0xe792,
["motion_sensor_alert"] = 0xe784,
["motion_sensor_idle"] = 0xe783,
["motion_sensor_urgent"] = 0xe78e,
["motorcycle"] = 0xe91b,
["mountain_flag"] = 0xf5e2,
["mouse"] = 0xe323,
["move"] = 0xe740,
["move_down"] = 0xeb61,
["move_group"] = 0xf715,
["move_item"] = 0xf1ff,
["move_location"] = 0xe741,
["move_selection_down"] = 0xf714,
["move_selection_left"] = 0xf713,
["move_selection_right"] = 0xf712,
["move_selection_up"] = 0xf711,
["move_to_inbox"] = 0xe168,
["move_up"] = 0xeb64,
["moved_location"] = 0xe594,
["movie"] = 0xe404,
["movie_creation"] = 0xe404,
["movie_edit"] = 0xf840,
["movie_filter"] = 0xe43a,
["movie_info"] = 0xe02d,
["moving"] = 0xe501,
["moving_beds"] = 0xe73d,
["moving_ministry"] = 0xe73e,
["mp"] = 0xe9c3,
["multicooker"] = 0xe293,
["multiline_chart"] = 0xe6df,
["multiple_stop"] = 0xf1b9,
["museum"] = 0xea36,
["music_cast"] = 0xeb1a,
["music_note"] = 0xe405,
["music_off"] = 0xe440,
["music_video"] = 0xe063,
["my_location"] = 0xe55c,
["mystery"] = 0xf5e1,
["nat"] = 0xef5c,
["nature"] = 0xe406,
["nature_people"] = 0xe407,
["navigate_before"] = 0xe408,
["navigate_next"] = 0xe409,
["navigation"] = 0xe55d,
["near_me"] = 0xe569,
["near_me_disabled"] = 0xf1ef,
["nearby"] = 0xe6b7,
["nearby_error"] = 0xf03b,
["nearby_off"] = 0xf03c,
["nephrology"] = 0xe10d,
["nest_audio"] = 0xebbf,
["nest_cam_floodlight"] = 0xf8b7,
["nest_cam_indoor"] = 0xf11e,
["nest_cam_iq"] = 0xf11f,
["nest_cam_iq_outdoor"] = 0xf120,
["nest_cam_magnet_mount"] = 0xf8b8,
["nest_cam_outdoor"] = 0xf121,
["nest_cam_stand"] = 0xf8b9,
["nest_cam_wall_mount"] = 0xf8ba,
["nest_cam_wired_stand"] = 0xec16,
["nest_clock_farsight_analog"] = 0xf8bb,
["nest_clock_farsight_digital"] = 0xf8bc,
["nest_connect"] = 0xf122,
["nest_detect"] = 0xf123,
["nest_display"] = 0xf124,
["nest_display_max"] = 0xf125,
["nest_doorbell_visitor"] = 0xf8bd,
["nest_eco_leaf"] = 0xf8be,
["nest_farsight_weather"] = 0xf8bf,
["nest_found_savings"] = 0xf8c0,
["nest_gale_wifi"] = 0xf579,
["nest_heat_link_e"] = 0xf126,
["nest_heat_link_gen_3"] = 0xf127,
["nest_hello_doorbell"] = 0xe82c,
["nest_locator_tag"] = 0xf8c1,
["nest_mini"] = 0xe789,
["nest_multi_room"] = 0xf8c2,
["nest_protect"] = 0xe68e,
["nest_remote"] = 0xf5db,
["nest_remote_comfort_sensor"] = 0xf12a,
["nest_secure_alarm"] = 0xf12b,
["nest_sunblock"] = 0xf8c3,
["nest_tag"] = 0xf8c1,
["nest_thermostat"] = 0xe68f,
["nest_thermostat_e_eu"] = 0xf12d,
["nest_thermostat_gen_3"] = 0xf12e,
["nest_thermostat_sensor"] = 0xf12f,
["nest_thermostat_sensor_eu"] = 0xf130,
["nest_thermostat_zirconium_eu"] = 0xf131,
["nest_true_radiant"] = 0xf8c4,
["nest_wake_on_approach"] = 0xf8c5,
["nest_wake_on_press"] = 0xf8c6,
["nest_wifi_gale"] = 0xf132,
["nest_wifi_mistral"] = 0xf133,
["nest_wifi_point"] = 0xf134,
["nest_wifi_point_vento"] = 0xf134,
["nest_wifi_pro"] = 0xf56b,
["nest_wifi_pro_2"] = 0xf56a,
["nest_wifi_router"] = 0xf133,
["network_cell"] = 0xe1b9,
["network_check"] = 0xe640,
["network_intelligence_history"] = 0xf5f6,
["network_intelligence_update"] = 0xf5f5,
["network_locked"] = 0xe61a,
["network_manage"] = 0xf7ab,
["network_node"] = 0xf56e,
["network_ping"] = 0xebca,
["network_wifi"] = 0xe1ba,
["network_wifi_1_bar"] = 0xebe4,
["network_wifi_1_bar_locked"] = 0xf58f,
["network_wifi_2_bar"] = 0xebd6,
["network_wifi_2_bar_locked"] = 0xf58e,
["network_wifi_3_bar"] = 0xebe1,
["network_wifi_3_bar_locked"] = 0xf58d,
["network_wifi_locked"] = 0xf532,
["neurology"] = 0xe10e,
["new_label"] = 0xe609,
["new_releases"] = 0xef76,
["new_window"] = 0xf710,
["news"] = 0xe032,
["newsmode"] = 0xefad,
["newspaper"] = 0xeb81,
["newsstand"] = 0xe9c4,
["next_plan"] = 0xef5d,
["next_week"] = 0xe16a,
["nfc"] = 0xe1bb,
["night_shelter"] = 0xf1f1,
["night_sight_auto"] = 0xf1d7,
["night_sight_auto_off"] = 0xf1f9,
["night_sight_max"] = 0xf6c3,
["nightlife"] = 0xea62,
["nightlight"] = 0xf03d,
["nightlight_round"] = 0xf03d,
["nights_stay"] = 0xea46,
["no_accounts"] = 0xf03e,
["no_adult_content"] = 0xf8fe,
["no_backpack"] = 0xf237,
["no_crash"] = 0xebf0,
["no_drinks"] = 0xf1a5,
["no_encryption"] = 0xf03f,
["no_encryption_gmailerrorred"] = 0xf03f,
["no_flash"] = 0xf1a6,
["no_food"] = 0xf1a7,
["no_luggage"] = 0xf23b,
["no_meals"] = 0xf1d6,
["no_meeting_room"] = 0xeb4e,
["no_photography"] = 0xf1a8,
["no_sim"] = 0xe1ce,
["no_sound"] = 0xe710,
["no_stroller"] = 0xf1af,
["no_transfer"] = 0xf1d5,
["noise_aware"] = 0xebec,
["noise_control_off"] = 0xebf3,
["noise_control_on"] = 0xf8a8,
["nordic_walking"] = 0xe50e,
["north"] = 0xf1e0,
["north_east"] = 0xf1e1,
["north_west"] = 0xf1e2,
["not_accessible"] = 0xf0fe,
["not_accessible_forward"] = 0xf54a,
["not_interested"] = 0xf08c,
["not_listed_location"] = 0xe575,
["not_started"] = 0xf0d1,
["note"] = 0xe66d,
["note_add"] = 0xe89c,
["note_alt"] = 0xf040,
["note_stack"] = 0xf562,
["note_stack_add"] = 0xf563,
["notes"] = 0xe26c,
["notification_add"] = 0xe399,
["notification_important"] = 0xe004,
["notification_multiple"] = 0xe6c2,
["notifications"] = 0xe7f5,
["notifications_active"] = 0xe7f7,
["notifications_none"] = 0xe7f5,
["notifications_off"] = 0xe7f6,
["notifications_paused"] = 0xe7f8,
["notifications_unread"] = 0xf4fe,
["numbers"] = 0xeac7,
["nutrition"] = 0xe110,
["ods"] = 0xe6e8,
["odt"] = 0xe6e9,
["offline_bolt"] = 0xe932,
["offline_pin"] = 0xe90a,
["offline_share"] = 0xe9c5,
["oil_barrel"] = 0xec15,
["on_device_training"] = 0xebfd,
["on_hub_device"] = 0xe6c3,
["oncology"] = 0xe114,
["ondemand_video"] = 0xe63a,
["online_prediction"] = 0xf0eb,
["onsen"] = 0xf6f8,
["opacity"] = 0xe91c,
["open_in_browser"] = 0xe89d,
["open_in_full"] = 0xf1ce,
["open_in_new"] = 0xe89e,
["open_in_new_down"] = 0xf70f,
["open_in_new_off"] = 0xe4f6,
["open_in_phone"] = 0xe702,
["open_jam"] = 0xefae,
["open_with"] = 0xe89f,
["ophthalmology"] = 0xe115,
["oral_disease"] = 0xe116,
["order_approve"] = 0xf812,
["order_play"] = 0xf811,
["orders"] = 0xeb14,
["orthopedics"] = 0xf897,
["other_admission"] = 0xe47b,
["other_houses"] = 0xe58c,
["outbound"] = 0xe1ca,
["outbox"] = 0xef5f,
["outbox_alt"] = 0xeb17,
["outdoor_garden"] = 0xe205,
["outdoor_grill"] = 0xea47,
["outgoing_mail"] = 0xf0d2,
["outlet"] = 0xf1d4,
["outlined_flag"] = 0xf0c6,
["outpatient"] = 0xe118,
["outpatient_med"] = 0xe119,
["output"] = 0xebbe,
["output_circle"] = 0xf70e,
["oven"] = 0xe9c7,
["oven_gen"] = 0xe843,
["overview"] = 0xe4a7,
["overview_key"] = 0xf7d4,
["oxygen_saturation"] = 0xe4de,
["p2p"] = 0xf52a,
["pace"] = 0xf6b8,
["pacemaker"] = 0xe656,
["package"] = 0xe48f,
["package_2"] = 0xf569,
["padding"] = 0xe9c8,
["page_control"] = 0xe731,
["page_info"] = 0xf614,
["pageless"] = 0xf509,
["pages"] = 0xe7f9,
["pageview"] = 0xe8a0,
["paid"] = 0xf041,
["palette"] = 0xe40a,
["pallet"] = 0xf86a,
["pan_tool"] = 0xe925,
["pan_tool_alt"] = 0xebb9,
["pan_zoom"] = 0xf655,
["panorama"] = 0xe40b,
["panorama_fish_eye"] = 0xe40c,
["panorama_horizontal"] = 0xe40d,
["panorama_photosphere"] = 0xe9c9,
["panorama_vertical"] = 0xe40e,
["panorama_wide_angle"] = 0xe40f,
["paragliding"] = 0xe50f,
["park"] = 0xea63,
["partly_cloudy_day"] = 0xf172,
["partly_cloudy_night"] = 0xf174,
["partner_exchange"] = 0xf7f9,
["partner_reports"] = 0xefaf,
["party_mode"] = 0xe7fa,
["passkey"] = 0xf87f,
["password"] = 0xf042,
["patient_list"] = 0xe653,
["pattern"] = 0xf043,
["pause"] = 0xe034,
["pause_circle"] = 0xe1a2,
["pause_circle_filled"] = 0xe1a2,
["pause_circle_outline"] = 0xe1a2,
["pause_presentation"] = 0xe0ea,
["payment"] = 0xe8a1,
["payments"] = 0xef63,
["pedal_bike"] = 0xeb29,
["pediatrics"] = 0xe11d,
["pen_size_1"] = 0xf755,
["pen_size_2"] = 0xf754,
["pen_size_3"] = 0xf753,
["pen_size_4"] = 0xf752,
["pen_size_5"] = 0xf751,
["pending"] = 0xef64,
["pending_actions"] = 0xf1bb,
["pentagon"] = 0xeb50,
["people"] = 0xea21,
["people_alt"] = 0xea21,
["people_outline"] = 0xea21,
["percent"] = 0xeb58,
["performance_max"] = 0xe51a,
["pergola"] = 0xe203,
["perm_camera_mic"] = 0xe8a2,
["perm_contact_calendar"] = 0xe8a3,
["perm_data_setting"] = 0xe8a4,
["perm_device_information"] = 0xe8a5,
["perm_identity"] = 0xf0d3,
["perm_media"] = 0xe8a7,
["perm_phone_msg"] = 0xe8a8,
["perm_scan_wifi"] = 0xe8a9,
["person"] = 0xf0d3,
["person_2"] = 0xf8e4,
["person_3"] = 0xf8e5,
["person_4"] = 0xf8e6,
["person_add"] = 0xea4d,
["person_add_alt"] = 0xea4d,
["person_add_disabled"] = 0xe9cb,
["person_alert"] = 0xf567,
["person_apron"] = 0xf5a3,
["person_book"] = 0xf5e8,
["person_cancel"] = 0xf566,
["person_celebrate"] = 0xf7fe,
["person_check"] = 0xf565,
["person_edit"] = 0xf4fa,
["person_filled"] = 0xf0d3,
["person_off"] = 0xe510,
["person_outline"] = 0xf0d3,
["person_pin"] = 0xe55a,
["person_pin_circle"] = 0xe56a,
["person_play"] = 0xf7fd,
["person_raised_hand"] = 0xf59a,
["person_remove"] = 0xef66,
["person_search"] = 0xf106,
["personal_bag"] = 0xeb0e,
["personal_bag_off"] = 0xeb0f,
["personal_bag_question"] = 0xeb10,
["personal_injury"] = 0xe6da,
["personal_places"] = 0xe703,
["personal_video"] = 0xe63b,
["pest_control"] = 0xf0fa,
["pest_control_rodent"] = 0xf0fd,
["pet_supplies"] = 0xefb1,
["pets"] = 0xe91d,
["phishing"] = 0xead7,
["phone"] = 0xf0d4,
["phone_alt"] = 0xf0d4,
["phone_android"] = 0xe324,
["phone_bluetooth_speaker"] = 0xe61b,
["phone_callback"] = 0xe649,
["phone_disabled"] = 0xe9cc,
["phone_enabled"] = 0xe9cd,
["phone_forwarded"] = 0xe61c,
["phone_in_talk"] = 0xe61d,
["phone_iphone"] = 0xe325,
["phone_locked"] = 0xe61e,
["phone_missed"] = 0xe61f,
["phone_paused"] = 0xe620,
["phonelink"] = 0xe326,
["phonelink_erase"] = 0xe0db,
["phonelink_lock"] = 0xe0dc,
["phonelink_off"] = 0xe327,
["phonelink_ring"] = 0xe0dd,
["phonelink_ring_off"] = 0xf7aa,
["phonelink_setup"] = 0xef41,
["photo"] = 0xe432,
["photo_album"] = 0xe411,
["photo_auto_merge"] = 0xf530,
["photo_camera"] = 0xe412,
["photo_camera_back"] = 0xef68,
["photo_camera_front"] = 0xef69,
["photo_filter"] = 0xe43b,
["photo_frame"] = 0xf0d9,
["photo_library"] = 0xe413,
["photo_prints"] = 0xefb2,
["photo_size_select_actual"] = 0xe432,
["photo_size_select_large"] = 0xe433,
["photo_size_select_small"] = 0xe434,
["php"] = 0xeb8f,
["physical_therapy"] = 0xe11e,
["piano"] = 0xe521,
["piano_off"] = 0xe520,
["picture_as_pdf"] = 0xe415,
["picture_in_picture"] = 0xe8aa,
["picture_in_picture_alt"] = 0xe911,
["picture_in_picture_center"] = 0xf550,
["picture_in_picture_large"] = 0xf54f,
["picture_in_picture_medium"] = 0xf54e,
["picture_in_picture_mobile"] = 0xf517,
["picture_in_picture_off"] = 0xf52f,
["picture_in_picture_small"] = 0xf54d,
["pie_chart"] = 0xf0da,
["pie_chart_filled"] = 0xf0da,
["pie_chart_outline"] = 0xf0da,
["pie_chart_outlined"] = 0xf0da,
["pill"] = 0xe11f,
["pill_off"] = 0xf809,
["pin"] = 0xf045,
["pin_drop"] = 0xe55e,
["pin_end"] = 0xe767,
["pin_invoke"] = 0xe763,
["pinch"] = 0xeb38,
["pinch_zoom_in"] = 0xf1fa,
["pinch_zoom_out"] = 0xf1fb,
["pip"] = 0xf64d,
["pip_exit"] = 0xf70d,
["pivot_table_chart"] = 0xe9ce,
["place"] = 0xf1db,
["place_item"] = 0xf1f0,
["plagiarism"] = 0xea5a,
["planner_banner_ad_pt"] = 0xe692,
["planner_review"] = 0xe694,
["play_arrow"] = 0xe037,
["play_circle"] = 0xe1c4,
["play_disabled"] = 0xef6a,
["play_for_work"] = 0xe906,
["play_lesson"] = 0xf047,
["play_music"] = 0xe6ee,
["play_pause"] = 0xf137,
["play_shapes"] = 0xf7fc,
["playing_cards"] = 0xf5dc,
["playlist_add"] = 0xe03b,
["playlist_add_check"] = 0xe065,
["playlist_add_check_circle"] = 0xe7e6,
["playlist_add_circle"] = 0xe7e5,
["playlist_play"] = 0xe05f,
["playlist_remove"] = 0xeb80,
["plumbing"] = 0xf107,
["plus_one"] = 0xe800,
["podcasts"] = 0xf048,
["podiatry"] = 0xe120,
["podium"] = 0xf7fb,
["point_of_sale"] = 0xf17e,
["point_scan"] = 0xf70c,
["policy"] = 0xea17,
["poll"] = 0xf0cc,
["polyline"] = 0xebbb,
["polymer"] = 0xe8ab,
["pool"] = 0xeb48,
["portable_wifi_off"] = 0xf087,
["portrait"] = 0xe851,
["position_bottom_left"] = 0xf70b,
["position_bottom_right"] = 0xf70a,
["position_top_right"] = 0xf709,
["post"] = 0xe705,
["post_add"] = 0xea20,
["potted_plant"] = 0xf8aa,
["power"] = 0xe63c,
["power_input"] = 0xe336,
["power_off"] = 0xe646,
["power_rounded"] = 0xf8c7,
["power_settings_new"] = 0xf8c7,
["prayer_times"] = 0xf838,
["precision_manufacturing"] = 0xf049,
["pregnancy"] = 0xf5f1,
["pregnant_woman"] = 0xf5f1,
["preliminary"] = 0xe7d8,
["prescriptions"] = 0xe121,
["present_to_all"] = 0xe0df,
["preview"] = 0xf1c5,
["preview_off"] = 0xf7af,
["price_change"] = 0xf04a,
["price_check"] = 0xf04b,
["print"] = 0xe8ad,
["print_add"] = 0xf7a2,
["print_connect"] = 0xf7a1,
["print_disabled"] = 0xe9cf,
["print_error"] = 0xf7a0,
["print_lock"] = 0xf651,
["priority"] = 0xe19f,
["priority_high"] = 0xe645,
["privacy"] = 0xf148,
["privacy_tip"] = 0xf0dc,
["private_connectivity"] = 0xe744,
["problem"] = 0xe122,
["procedure"] = 0xe651,
["process_chart"] = 0xf855,
["production_quantity_limits"] = 0xe1d1,
["productivity"] = 0xe296,
["progress_activity"] = 0xe9d0,
["prompt_suggestion"] = 0xf4f6,
["propane"] = 0xec14,
["propane_tank"] = 0xec13,
["psychiatry"] = 0xe123,
["psychology"] = 0xea4a,
["psychology_alt"] = 0xf8ea,
["public"] = 0xe80b,
["public_off"] = 0xf1ca,
["publish"] = 0xe255,
["published_with_changes"] = 0xf232,
["pulmonology"] = 0xe124,
["pulse_alert"] = 0xf501,
["punch_clock"] = 0xeaa8,
["push_pin"] = 0xf10d,
["qr_code"] = 0xef6b,
["qr_code_2"] = 0xe00a,
["qr_code_2_add"] = 0xf658,
["qr_code_scanner"] = 0xf206,
["query_builder"] = 0xefd6,
["query_stats"] = 0xe4fc,
["question_answer"] = 0xe8af,
["question_exchange"] = 0xf7f3,
["question_mark"] = 0xeb8b,
["queue"] = 0xe03c,
["queue_music"] = 0xe03d,
["queue_play_next"] = 0xe066,
["quick_phrases"] = 0xe7d1,
["quick_reference"] = 0xe46e,
["quick_reference_all"] = 0xf801,
["quick_reorder"] = 0xeb15,
["quickreply"] = 0xef6c,
["quiet_time"] = 0xe1f9,
["quiet_time_active"] = 0xe291,
["quiz"] = 0xf04c,
["r_mobiledata"] = 0xf04d,
["radar"] = 0xf04e,
["radio"] = 0xe03e,
["radio_button_checked"] = 0xe837,
["radio_button_partial"] = 0xf560,
["radio_button_unchecked"] = 0xe836,
["radiology"] = 0xe125,
["railway_alert"] = 0xe9d1,
["rainy"] = 0xf176,
["rainy_heavy"] = 0xf61f,
["rainy_light"] = 0xf61e,
["rainy_snow"] = 0xf61d,
["ramen_dining"] = 0xea64,
["ramp_left"] = 0xeb9c,
["ramp_right"] = 0xeb96,
["range_hood"] = 0xe1ea,
["rate_review"] = 0xe560,
["raven"] = 0xf555,
["raw_off"] = 0xf04f,
["raw_on"] = 0xf050,
["read_more"] = 0xef6d,
["readiness_score"] = 0xf6dd,
["real_estate_agent"] = 0xe73a,
["rear_camera"] = 0xf6c2,
["rebase"] = 0xf845,
["rebase_edit"] = 0xf846,
["receipt"] = 0xe8b0,
["receipt_long"] = 0xef6e,
["recent_actors"] = 0xe03f,
["recent_patient"] = 0xf808,
["recommend"] = 0xe9d2,
["record_voice_over"] = 0xe91f,
["rectangle"] = 0xeb54,
["recycling"] = 0xe760,
["redeem"] = 0xe8f6,
["redo"] = 0xe15a,
["reduce_capacity"] = 0xf21c,
["refresh"] = 0xe5d5,
["regular_expression"] = 0xf750,
["relax"] = 0xf6dc,
["release_alert"] = 0xf654,
["remember_me"] = 0xf051,
["reminder"] = 0xe6c6,
["reminders_alt"] = 0xe6c6,
["remote_gen"] = 0xe83e,
["remove"] = 0xe15b,
["remove_circle"] = 0xf08f,
["remove_circle_outline"] = 0xf08f,
["remove_done"] = 0xe9d3,
["remove_from_queue"] = 0xe067,
["remove_moderator"] = 0xe9d4,
["remove_red_eye"] = 0xe8f4,
["remove_road"] = 0xebfc,
["remove_selection"] = 0xe9d5,
["remove_shopping_cart"] = 0xe928,
["reopen_window"] = 0xf708,
["reorder"] = 0xe8fe,
["repartition"] = 0xf8e8,
["repeat"] = 0xe040,
["repeat_on"] = 0xe9d6,
["repeat_one"] = 0xe041,
["repeat_one_on"] = 0xe9d7,
["replay"] = 0xe042,
["replay_10"] = 0xe059,
["replay_30"] = 0xe05a,
["replay_5"] = 0xe05b,
["replay_circle_filled"] = 0xe9d8,
["reply"] = 0xe15e,
["reply_all"] = 0xe15f,
["report"] = 0xf052,
["report_gmailerrorred"] = 0xf052,
["report_off"] = 0xe170,
["report_problem"] = 0xf083,
["request_page"] = 0xf22c,
["request_quote"] = 0xf1b6,
["reset_image"] = 0xf824,
["reset_tv"] = 0xe9d9,
["reset_wrench"] = 0xf56c,
["resize"] = 0xf707,
["respiratory_rate"] = 0xe127,
["responsive_layout"] = 0xe9da,
["restart_alt"] = 0xf053,
["restaurant"] = 0xe56c,
["restaurant_menu"] = 0xe561,
["restore"] = 0xe8b3,
["restore_from_trash"] = 0xe938,
["restore_page"] = 0xe929,
["resume"] = 0xf7d0,
["reviews"] = 0xf07c,
["rewarded_ads"] = 0xefb6,
["rheumatology"] = 0xe128,
["rib_cage"] = 0xf898,
["rice_bowl"] = 0xf1f5,
["right_click"] = 0xf706,
["right_panel_close"] = 0xf705,
["right_panel_open"] = 0xf704,
["ring_volume"] = 0xf0dd,
["ring_volume_filled"] = 0xf0dd,
["ripples"] = 0xe9db,
["robot"] = 0xf882,
["robot_2"] = 0xf5d0,
["rocket"] = 0xeba5,
["rocket_launch"] = 0xeb9b,
["roller_shades"] = 0xec12,
["roller_shades_closed"] = 0xec11,
["roller_skating"] = 0xebcd,
["roofing"] = 0xf201,
["room"] = 0xf1db,
["room_preferences"] = 0xf1b8,
["room_service"] = 0xeb49,
["rotate_90_degrees_ccw"] = 0xe418,
["rotate_90_degrees_cw"] = 0xeaab,
["rotate_left"] = 0xe419,
["rotate_right"] = 0xe41a,
["roundabout_left"] = 0xeb99,
["roundabout_right"] = 0xeba3,
["rounded_corner"] = 0xe920,
["route"] = 0xeacd,
["router"] = 0xe328,
["routine"] = 0xe20c,
["rowing"] = 0xe921,
["rss_feed"] = 0xe0e5,
["rsvp"] = 0xf055,
["rtt"] = 0xe9ad,
["rubric"] = 0xeb27,
["rule"] = 0xf1c2,
["rule_folder"] = 0xf1c9,
["rule_settings"] = 0xf64c,
["run_circle"] = 0xef6f,
["running_with_errors"] = 0xe51d,
["rv_hookup"] = 0xe642,
["safety_check"] = 0xebef,
["safety_check_off"] = 0xf59d,
["safety_divider"] = 0xe1cc,
["sailing"] = 0xe502,
["salinity"] = 0xf876,
["sanitizer"] = 0xf21d,
["satellite"] = 0xe562,
["satellite_alt"] = 0xeb3a,
["sauna"] = 0xf6f7,
["save"] = 0xe161,
["save_alt"] = 0xf090,
["save_as"] = 0xeb60,
["saved_search"] = 0xea11,
["savings"] = 0xe2eb,
["scale"] = 0xeb5f,
["scan"] = 0xf74e,
["scan_delete"] = 0xf74f,
["scanner"] = 0xe329,
["scatter_plot"] = 0xe268,
["scene"] = 0xe2a7,
["schedule"] = 0xefd6,
["schedule_send"] = 0xea0a,
["schema"] = 0xe4fd,
["school"] = 0xe80c,
["science"] = 0xea4b,
["science_off"] = 0xf542,
["score"] = 0xe269,
["scoreboard"] = 0xebd0,
["screen_lock_landscape"] = 0xe1be,
["screen_lock_portrait"] = 0xe1bf,
["screen_lock_rotation"] = 0xe1c0,
["screen_record"] = 0xf679,
["screen_rotation"] = 0xe1c1,
["screen_rotation_alt"] = 0xebee,
["screen_rotation_up"] = 0xf678,
["screen_search_desktop"] = 0xef70,
["screen_share"] = 0xe0e2,
["screenshot"] = 0xf056,
["screenshot_frame"] = 0xf677,
["screenshot_keyboard"] = 0xf7d3,
["screenshot_monitor"] = 0xec08,
["screenshot_region"] = 0xf7d2,
["screenshot_tablet"] = 0xf697,
["scrollable_header"] = 0xe9dc,
["scuba_diving"] = 0xebce,
["sd"] = 0xe9dd,
["sd_card"] = 0xe623,
["sd_card_alert"] = 0xf057,
["sd_storage"] = 0xe623,
["sdk"] = 0xe720,
["search"] = 0xe8b6,
["search_check"] = 0xf800,
["search_hands_free"] = 0xe696,
["search_off"] = 0xea76,
["security"] = 0xe32a,
["security_key"] = 0xf503,
["security_update"] = 0xf072,
["security_update_good"] = 0xf073,
["security_update_warning"] = 0xf074,
["segment"] = 0xe94b,
["select"] = 0xf74d,
["select_all"] = 0xe162,
["select_check_box"] = 0xf1fe,
["select_to_speak"] = 0xf7cf,
["select_window"] = 0xe6fa,
["select_window_off"] = 0xe506,
["self_care"] = 0xf86d,
["self_improvement"] = 0xea78,
["sell"] = 0xf05b,
["send"] = 0xe163,
["send_and_archive"] = 0xea0c,
["send_money"] = 0xe8b7,
["send_time_extension"] = 0xeadb,
["send_to_mobile"] = 0xf05c,
["sensor_door"] = 0xf1b5,
["sensor_occupied"] = 0xec10,
["sensor_window"] = 0xf1b4,
["sensors"] = 0xe51e,
["sensors_krx"] = 0xf556,
["sensors_krx_off"] = 0xf515,
["sensors_off"] = 0xe51f,
["sentiment_calm"] = 0xf6a7,
["sentiment_content"] = 0xf6a6,
["sentiment_dissatisfied"] = 0xe811,
["sentiment_excited"] = 0xf6a5,
["sentiment_extremely_dissatisfied"] = 0xf194,
["sentiment_frustrated"] = 0xf6a4,
["sentiment_neutral"] = 0xe812,
["sentiment_sad"] = 0xf6a3,
["sentiment_satisfied"] = 0xe813,
["sentiment_satisfied_alt"] = 0xe813,
["sentiment_stressed"] = 0xf6a2,
["sentiment_very_dissatisfied"] = 0xe814,
["sentiment_very_satisfied"] = 0xe815,
["sentiment_worried"] = 0xf6a1,
["service_toolbox"] = 0xe717,
["set_meal"] = 0xf1ea,
["settings"] = 0xe8b8,
["settings_accessibility"] = 0xf05d,
["settings_account_box"] = 0xf835,
["settings_alert"] = 0xf143,
["settings_applications"] = 0xe8b9,
["settings_b_roll"] = 0xf625,
["settings_backup_restore"] = 0xe8ba,
["settings_bluetooth"] = 0xe8bb,
["settings_brightness"] = 0xe8bd,
["settings_cell"] = 0xe8bc,
["settings_cinematic_blur"] = 0xf624,
["settings_ethernet"] = 0xe8be,
["settings_heart"] = 0xf522,
["settings_input_antenna"] = 0xe8bf,
["settings_input_component"] = 0xe8c1,
["settings_input_composite"] = 0xe8c1,
["settings_input_hdmi"] = 0xe8c2,
["settings_input_svideo"] = 0xe8c3,
["settings_motion_mode"] = 0xf833,
["settings_night_sight"] = 0xf832,
["settings_overscan"] = 0xe8c4,
["settings_panorama"] = 0xf831,
["settings_phone"] = 0xe8c5,
["settings_photo_camera"] = 0xf834,
["settings_power"] = 0xe8c6,
["settings_remote"] = 0xe8c7,
["settings_slow_motion"] = 0xf623,
["settings_suggest"] = 0xf05e,
["settings_system_daydream"] = 0xe1c3,
["settings_timelapse"] = 0xf622,
["settings_video_camera"] = 0xf621,
["settings_voice"] = 0xe8c8,
["settop_component"] = 0xe2ac,
["severe_cold"] = 0xebd3,
["shadow"] = 0xe9df,
["shadow_add"] = 0xf584,
["shadow_minus"] = 0xf583,
["shape_line"] = 0xf8d3,
["shape_recognition"] = 0xeb01,
["shapes"] = 0xe602,
["share"] = 0xe80d,
["share_location"] = 0xf05f,
["share_off"] = 0xf6cb,
["share_reviews"] = 0xf8a4,
["share_windows"] = 0xf613,
["sheets_rtl"] = 0xf823,
["shelf_auto_hide"] = 0xf703,
["shelf_position"] = 0xf702,
["shelves"] = 0xf86e,
["shield"] = 0xe9e0,
["shield_lock"] = 0xf686,
["shield_locked"] = 0xf592,
["shield_moon"] = 0xeaa9,
["shield_person"] = 0xf650,
["shield_question"] = 0xf529,
["shield_with_heart"] = 0xe78f,
["shield_with_house"] = 0xe78d,
["shift"] = 0xe5f2,
["shift_lock"] = 0xf7ae,
["shop"] = 0xe8c9,
["shop_2"] = 0xe8ca,
["shop_two"] = 0xe8ca,
["shopping_bag"] = 0xf1cc,
["shopping_basket"] = 0xe8cb,
["shopping_cart"] = 0xe8cc,
["shopping_cart_checkout"] = 0xeb88,
["shopping_cart_off"] = 0xf4f7,
["shoppingmode"] = 0xefb7,
["short_stay"] = 0xe4d0,
["short_text"] = 0xe261,
["shortcut"] = 0xf57a,
["show_chart"] = 0xe6e1,
["shower"] = 0xf061,
["shuffle"] = 0xe043,
["shuffle_on"] = 0xe9e1,
["shutter_speed"] = 0xe43d,
["shutter_speed_add"] = 0xf57e,
["shutter_speed_minus"] = 0xf57d,
["sick"] = 0xf220,
["side_navigation"] = 0xe9e2,
["sign_language"] = 0xebe5,
["signal_cellular_0_bar"] = 0xf0a8,
["signal_cellular_1_bar"] = 0xf0a9,
["signal_cellular_2_bar"] = 0xf0aa,
["signal_cellular_3_bar"] = 0xf0ab,
["signal_cellular_4_bar"] = 0xe1c8,
["signal_cellular_add"] = 0xf7a9,
["signal_cellular_alt"] = 0xe202,
["signal_cellular_alt_1_bar"] = 0xebdf,
["signal_cellular_alt_2_bar"] = 0xebe3,
["signal_cellular_connected_no_internet_0_bar"] = 0xf0ac,
["signal_cellular_connected_no_internet_4_bar"] = 0xe1cd,
["signal_cellular_no_sim"] = 0xe1ce,
["signal_cellular_nodata"] = 0xf062,
["signal_cellular_null"] = 0xe1cf,
["signal_cellular_off"] = 0xe1d0,
["signal_cellular_pause"] = 0xf5a7,
["signal_disconnected"] = 0xf239,
["signal_wifi_0_bar"] = 0xf0b0,
["signal_wifi_4_bar"] = 0xf065,
["signal_wifi_4_bar_lock"] = 0xe1e1,
["signal_wifi_bad"] = 0xf064,
["signal_wifi_connected_no_internet_4"] = 0xf064,
["signal_wifi_off"] = 0xe1da,
["signal_wifi_statusbar_4_bar"] = 0xf065,
["signal_wifi_statusbar_not_connected"] = 0xf0ef,
["signal_wifi_statusbar_null"] = 0xf067,
["signature"] = 0xf74c,
["signpost"] = 0xeb91,
["sim_card"] = 0xe32b,
["sim_card_alert"] = 0xf057,
["sim_card_download"] = 0xf068,
["single_bed"] = 0xea48,
["sip"] = 0xf069,
["skateboarding"] = 0xe511,
["skeleton"] = 0xf899,
["skillet"] = 0xf543,
["skillet_cooktop"] = 0xf544,
["skip_next"] = 0xe044,
["skip_previous"] = 0xe045,
["skull"] = 0xf89a,
["sledding"] = 0xe512,
["sleep"] = 0xe213,
["sleep_score"] = 0xf6b7,
["slide_library"] = 0xf822,
["sliders"] = 0xe9e3,
["slideshow"] = 0xe41b,
["slow_motion_video"] = 0xe068,
["smart_button"] = 0xf1c1,
["smart_display"] = 0xf06a,
["smart_outlet"] = 0xe844,
["smart_screen"] = 0xf06b,
["smart_toy"] = 0xf06c,
["smartphone"] = 0xe32c,
["smb_share"] = 0xf74b,
["smoke_free"] = 0xeb4a,
["smoking_rooms"] = 0xeb4b,
["sms"] = 0xe625,
["sms_failed"] = 0xe87f,
["snippet_folder"] = 0xf1c7,
["snooze"] = 0xe046,
["snowboarding"] = 0xe513,
["snowing"] = 0xe80f,
["snowing_heavy"] = 0xf61c,
["snowmobile"] = 0xe503,
["snowshoeing"] = 0xe514,
["soap"] = 0xf1b2,
["social_distance"] = 0xe1cb,
["social_leaderboard"] = 0xf6a0,
["solar_power"] = 0xec0f,
["sort"] = 0xe164,
["sort_by_alpha"] = 0xe053,
["sos"] = 0xebf7,
["sound_detection_dog_barking"] = 0xf149,
["sound_detection_glass_break"] = 0xf14a,
["sound_detection_loud_sound"] = 0xf14b,
["sound_sampler"] = 0xf6b4,
["soup_kitchen"] = 0xe7d3,
["source"] = 0xf1c8,
["source_environment"] = 0xe527,
["source_notes"] = 0xe12d,
["south"] = 0xf1e3,
["south_america"] = 0xe7e4,
["south_east"] = 0xf1e4,
["south_west"] = 0xf1e5,
["spa"] = 0xeb4c,
["space_bar"] = 0xe256,
["space_dashboard"] = 0xe66b,
["spatial_audio"] = 0xebeb,
["spatial_audio_off"] = 0xebe8,
["spatial_tracking"] = 0xebea,
["speaker"] = 0xe32d,
["speaker_group"] = 0xe32e,
["speaker_notes"] = 0xe8cd,
["speaker_notes_off"] = 0xe92a,
["speaker_phone"] = 0xe0d2,
["special_character"] = 0xf74a,
["specific_gravity"] = 0xf872,
["speech_to_text"] = 0xf8a7,
["speed"] = 0xe9e4,
["speed_0_5"] = 0xf4e2,
["speed_1_2"] = 0xf4e1,
["speed_1_5"] = 0xf4e0,
["speed_2x"] = 0xf4eb,
["spellcheck"] = 0xe8ce,
["splitscreen"] = 0xf06d,
["splitscreen_add"] = 0xf4fd,
["splitscreen_bottom"] = 0xf676,
["splitscreen_left"] = 0xf675,
["splitscreen_right"] = 0xf674,
["splitscreen_top"] = 0xf673,
["splitscreen_vertical_add"] = 0xf4fc,
["spo2"] = 0xf6db,
["spoke"] = 0xe9a7,
["sports"] = 0xea30,
["sports_and_outdoors"] = 0xefb8,
["sports_bar"] = 0xf1f3,
["sports_baseball"] = 0xea51,
["sports_basketball"] = 0xea26,
["sports_cricket"] = 0xea27,
["sports_esports"] = 0xea28,
["sports_football"] = 0xea29,
["sports_golf"] = 0xea2a,
["sports_gymnastics"] = 0xebc4,
["sports_handball"] = 0xea33,
["sports_hockey"] = 0xea2b,
["sports_kabaddi"] = 0xea34,
["sports_martial_arts"] = 0xeae9,
["sports_mma"] = 0xea2c,
["sports_motorsports"] = 0xea2d,
["sports_rugby"] = 0xea2e,
["sports_score"] = 0xf06e,
["sports_soccer"] = 0xea2f,
["sports_tennis"] = 0xea32,
["sports_volleyball"] = 0xea31,
["sprinkler"] = 0xe29a,
["sprint"] = 0xf81f,
["square"] = 0xeb36,
["square_foot"] = 0xea49,
["ssid_chart"] = 0xeb66,
["stack"] = 0xf609,
["stack_off"] = 0xf608,
["stack_star"] = 0xf607,
["stacked_bar_chart"] = 0xe9e6,
["stacked_email"] = 0xe6c7,
["stacked_inbox"] = 0xe6c9,
["stacked_line_chart"] = 0xf22b,
["stacks"] = 0xf500,
["stadia_controller"] = 0xf135,
["stadium"] = 0xeb90,
["stairs"] = 0xf1a9,
["star"] = 0xf09a,
["star_border"] = 0xf09a,
["star_border_purple500"] = 0xf09a,
["star_half"] = 0xe839,
["star_outline"] = 0xf09a,
["star_purple500"] = 0xf09a,
["star_rate"] = 0xf0ec,
["star_rate_half"] = 0xec45,
["stars"] = 0xe8d0,
["start"] = 0xe089,
["stat_0"] = 0xe697,
["stat_1"] = 0xe698,
["stat_2"] = 0xe699,
["stat_3"] = 0xe69a,
["stat_minus_1"] = 0xe69b,
["stat_minus_2"] = 0xe69c,
["stat_minus_3"] = 0xe69d,
["stay_current_landscape"] = 0xe0d3,
["stay_current_portrait"] = 0xe0d4,
["stay_primary_landscape"] = 0xe0d5,
["stay_primary_portrait"] = 0xe0d6,
["step"] = 0xf6fe,
["step_into"] = 0xf701,
["step_out"] = 0xf700,
["step_over"] = 0xf6ff,
["steppers"] = 0xe9e7,
["steps"] = 0xf6da,
["stethoscope"] = 0xf805,
["stethoscope_arrow"] = 0xf807,
["stethoscope_check"] = 0xf806,
["sticky_note"] = 0xe9e8,
["sticky_note_2"] = 0xf1fc,
["stock_media"] = 0xf570,
["stockpot"] = 0xf545,
["stop"] = 0xe047,
["stop_circle"] = 0xef71,
["stop_screen_share"] = 0xe0e3,
["storage"] = 0xe1db,
["store"] = 0xe8d1,
["store_mall_directory"] = 0xe8d1,
["storefront"] = 0xea12,
["storm"] = 0xf070,
["straight"] = 0xeb95,
["straighten"] = 0xe41c,
["strategy"] = 0xf5df,
["stream"] = 0xe9e9,
["stream_apps"] = 0xf79f,
["streetview"] = 0xe56e,
["stress_management"] = 0xf6d9,
["strikethrough_s"] = 0xe257,
["stroke_full"] = 0xf749,
["stroke_partial"] = 0xf748,
["stroller"] = 0xf1ae,
["style"] = 0xe41d,
["styler"] = 0xe273,
["stylus"] = 0xf604,
["stylus_laser_pointer"] = 0xf747,
["stylus_note"] = 0xf603,
["subdirectory_arrow_left"] = 0xe5d9,
["subdirectory_arrow_right"] = 0xe5da,
["subheader"] = 0xe9ea,
["subject"] = 0xe8d2,
["subscript"] = 0xf111,
["subscriptions"] = 0xe064,
["subtitles"] = 0xe048,
["subtitles_off"] = 0xef72,
["subway"] = 0xe56f,
["summarize"] = 0xf071,
["sunny"] = 0xe81a,
["sunny_snowing"] = 0xe819,
["superscript"] = 0xf112,
["supervised_user_circle"] = 0xe939,
["supervised_user_circle_off"] = 0xf60e,
["supervisor_account"] = 0xe8d3,
["support"] = 0xef73,
["support_agent"] = 0xf0e2,
["surfing"] = 0xe515,
["surgical"] = 0xe131,
["surround_sound"] = 0xe049,
["swap_calls"] = 0xe0d7,
["swap_driving_apps"] = 0xe69e,
["swap_driving_apps_wheel"] = 0xe69f,
["swap_horiz"] = 0xe8d4,
["swap_horizontal_circle"] = 0xe933,
["swap_vert"] = 0xe8d5,
["swap_vertical_circle"] = 0xe8d6,
["sweep"] = 0xe6ac,
["swipe"] = 0xe9ec,
["swipe_down"] = 0xeb53,
["swipe_down_alt"] = 0xeb30,
["swipe_left"] = 0xeb59,
["swipe_left_alt"] = 0xeb33,
["swipe_right"] = 0xeb52,
["swipe_right_alt"] = 0xeb56,
["swipe_up"] = 0xeb2e,
["swipe_up_alt"] = 0xeb35,
["swipe_vertical"] = 0xeb51,
["switch"] = 0xe1f4,
["switch_access"] = 0xf6fd,
["switch_access_2"] = 0xf506,
["switch_access_shortcut"] = 0xe7e1,
["switch_access_shortcut_add"] = 0xe7e2,
["switch_account"] = 0xe9ed,
["switch_camera"] = 0xe41e,
["switch_left"] = 0xf1d1,
["switch_right"] = 0xf1d2,
["switch_video"] = 0xe41f,
["switches"] = 0xe733,
["sword_rose"] = 0xf5de,
["swords"] = 0xf889,
["symptoms"] = 0xe132,
["synagogue"] = 0xeab0,
["sync"] = 0xe627,
["sync_alt"] = 0xea18,
["sync_disabled"] = 0xe628,
["sync_lock"] = 0xeaee,
["sync_problem"] = 0xe629,
["sync_saved_locally"] = 0xf820,
["syringe"] = 0xe133,
["system_security_update"] = 0xf072,
["system_security_update_good"] = 0xf073,
["system_security_update_warning"] = 0xf074,
["system_update"] = 0xf072,
["system_update_alt"] = 0xe8d7,
["tab"] = 0xe8d8,
["tab_close"] = 0xf745,
["tab_close_right"] = 0xf746,
["tab_duplicate"] = 0xf744,
["tab_group"] = 0xf743,
["tab_move"] = 0xf742,
["tab_new_right"] = 0xf741,
["tab_recent"] = 0xf740,
["tab_unselected"] = 0xe8d9,
["table"] = 0xf191,
["table_bar"] = 0xead2,
["table_chart"] = 0xe265,
["table_chart_view"] = 0xf6ef,
["table_lamp"] = 0xe1f2,
["table_restaurant"] = 0xeac6,
["table_rows"] = 0xf101,
["table_rows_narrow"] = 0xf73f,
["table_view"] = 0xf1be,
["tablet"] = 0xe32f,
["tablet_android"] = 0xe330,
["tablet_mac"] = 0xe331,
["tabs"] = 0xe9ee,
["tactic"] = 0xf564,
["tag"] = 0xe9ef,
["tag_faces"] = 0xea22,
["takeout_dining"] = 0xea74,
["tamper_detection_off"] = 0xe82e,
["tamper_detection_on"] = 0xf8c8,
["tap_and_play"] = 0xe62b,
["tapas"] = 0xf1e9,
["target"] = 0xe719,
["task"] = 0xf075,
["task_alt"] = 0xe2e6,
["taunt"] = 0xf69f,
["taxi_alert"] = 0xef74,
["team_dashboard"] = 0xe013,
["temp_preferences_custom"] = 0xf8c9,
["temp_preferences_eco"] = 0xf8ca,
["temple_buddhist"] = 0xeab3,
["temple_hindu"] = 0xeaaf,
["tenancy"] = 0xf0e3,
["terminal"] = 0xeb8e,
["terrain"] = 0xe564,
["text_ad"] = 0xe728,
["text_decrease"] = 0xeadd,
["text_fields"] = 0xe262,
["text_fields_alt"] = 0xe9f1,
["text_format"] = 0xe165,
["text_increase"] = 0xeae2,
["text_rotate_up"] = 0xe93a,
["text_rotate_vertical"] = 0xe93b,
["text_rotation_angledown"] = 0xe93c,
["text_rotation_angleup"] = 0xe93d,
["text_rotation_down"] = 0xe93e,
["text_rotation_none"] = 0xe93f,
["text_select_end"] = 0xf73e,
["text_select_jump_to_beginning"] = 0xf73d,
["text_select_jump_to_end"] = 0xf73c,
["text_select_move_back_character"] = 0xf73b,
["text_select_move_back_word"] = 0xf73a,
["text_select_move_down"] = 0xf739,
["text_select_move_forward_character"] = 0xf738,
["text_select_move_forward_word"] = 0xf737,
["text_select_move_up"] = 0xf736,
["text_select_start"] = 0xf735,
["text_snippet"] = 0xf1c6,
["text_to_speech"] = 0xf1bc,
["textsms"] = 0xe625,
["texture"] = 0xe421,
["texture_add"] = 0xf57c,
["texture_minus"] = 0xf57b,
["theater_comedy"] = 0xea66,
["theaters"] = 0xe8da,
["thermometer"] = 0xe846,
["thermometer_add"] = 0xf582,
["thermometer_gain"] = 0xf6d8,
["thermometer_loss"] = 0xf6d7,
["thermometer_minus"] = 0xf581,
["thermostat"] = 0xf076,
["thermostat_auto"] = 0xf077,
["thermostat_carbon"] = 0xf178,
["things_to_do"] = 0xeb2a,
["thread_unread"] = 0xf4f9,
["thumb_down"] = 0xf578,
["thumb_down_alt"] = 0xf578,
["thumb_down_filled"] = 0xf578,
["thumb_down_off"] = 0xf578,
["thumb_down_off_alt"] = 0xf578,
["thumb_up"] = 0xf577,
["thumb_up_alt"] = 0xf577,
["thumb_up_filled"] = 0xf577,
["thumb_up_off"] = 0xf577,
["thumb_up_off_alt"] = 0xf577,
["thumbnail_bar"] = 0xf734,
["thumbs_up_down"] = 0xe8dd,
["thunderstorm"] = 0xebdb,
["tibia"] = 0xf89b,
["tibia_alt"] = 0xf89c,
["time_auto"] = 0xf0e4,
["time_to_leave"] = 0xeff7,
["timelapse"] = 0xe422,
["timeline"] = 0xe922,
["timer"] = 0xe425,
["timer_10"] = 0xe423,
["timer_10_alt_1"] = 0xefbf,
["timer_10_select"] = 0xf07a,
["timer_3"] = 0xe424,
["timer_3_alt_1"] = 0xefc0,
["timer_3_select"] = 0xf07b,
["timer_off"] = 0xe426,
["tips_and_updates"] = 0xe79a,
["tire_repair"] = 0xebc8,
["title"] = 0xe264,
["toast"] = 0xefc1,
["toc"] = 0xe8de,
["today"] = 0xe8df,
["toggle_off"] = 0xe9f5,
["toggle_on"] = 0xe9f6,
["token"] = 0xea25,
["toll"] = 0xe8e0,
["tonality"] = 0xe427,
["toolbar"] = 0xe9f7,
["tools_flat_head"] = 0xf8cb,
["tools_installation_kit"] = 0xe2ab,
["tools_ladder"] = 0xe2cb,
["tools_level"] = 0xe77b,
["tools_phillips"] = 0xf8cc,
["tools_pliers_wire_stripper"] = 0xe2aa,
["tools_power_drill"] = 0xe1e9,
["tools_wrench"] = 0xf8cd,
["tooltip"] = 0xe9f8,
["top_panel_close"] = 0xf733,
["top_panel_open"] = 0xf732,
["topic"] = 0xf1c8,
["tornado"] = 0xe199,
["total_dissolved_solids"] = 0xf877,
["touch_app"] = 0xe913,
["touchpad_mouse"] = 0xf687,
["touchpad_mouse_off"] = 0xf4e6,
["tour"] = 0xef75,
["toys"] = 0xe332,
["toys_and_games"] = 0xefc2,
["toys_fan"] = 0xf887,
["track_changes"] = 0xe8e1,
["traffic"] = 0xe565,
["trail_length"] = 0xeb5e,
["trail_length_medium"] = 0xeb63,
["trail_length_short"] = 0xeb6d,
["train"] = 0xe570,
["tram"] = 0xe571,
["transcribe"] = 0xf8ec,
["transfer_within_a_station"] = 0xe572,
["transform"] = 0xe428,
["transgender"] = 0xe58d,
["transit_enterexit"] = 0xe579,
["transition_chop"] = 0xf50e,
["transition_dissolve"] = 0xf50d,
["transition_fade"] = 0xf50c,
["transition_push"] = 0xf50b,
["transition_slide"] = 0xf50a,
["translate"] = 0xe8e2,
["transportation"] = 0xe21d,
["travel"] = 0xef93,
["travel_explore"] = 0xe2db,
["travel_luggage_and_bags"] = 0xefc3,
["trending_down"] = 0xe8e3,
["trending_flat"] = 0xe8e4,
["trending_up"] = 0xe8e5,
["trip"] = 0xe6fb,
["trip_origin"] = 0xe57b,
["trolley"] = 0xf86b,
["trophy"] = 0xea23,
["troubleshoot"] = 0xe1d2,
["try"] = 0xf07c,
["tsunami"] = 0xebd8,
["tsv"] = 0xe6d6,
["tty"] = 0xf1aa,
["tune"] = 0xe429,
["tungsten"] = 0xf07d,
["turn_left"] = 0xeba6,
["turn_right"] = 0xebab,
["turn_sharp_left"] = 0xeba7,
["turn_sharp_right"] = 0xebaa,
["turn_slight_left"] = 0xeba4,
["turn_slight_right"] = 0xeb9a,
["turned_in"] = 0xe8e7,
["turned_in_not"] = 0xe8e7,
["tv"] = 0xe63b,
["tv_gen"] = 0xe830,
["tv_guide"] = 0xe1dc,
["tv_off"] = 0xe647,
["tv_options_edit_channels"] = 0xe1dd,
["tv_options_input_settings"] = 0xe1de,
["tv_remote"] = 0xf5d9,
["tv_signin"] = 0xe71b,
["tv_with_assistant"] = 0xe785,
["two_pager"] = 0xf51f,
["two_wheeler"] = 0xe9f9,
["type_specimen"] = 0xf8f0,
["u_turn_left"] = 0xeba1,
["u_turn_right"] = 0xeba2,
["ulna_radius"] = 0xf89d,
["ulna_radius_alt"] = 0xf89e,
["umbrella"] = 0xf1ad,
["unarchive"] = 0xe169,
["undo"] = 0xe166,
["unfold_less"] = 0xe5d6,
["unfold_less_double"] = 0xf8cf,
["unfold_more"] = 0xe5d7,
["unfold_more_double"] = 0xf8d0,
["ungroup"] = 0xf731,
["universal_currency"] = 0xe9fa,
["universal_currency_alt"] = 0xe734,
["universal_local"] = 0xe9fb,
["unknown_2"] = 0xe6a2,
["unknown_5"] = 0xe6a5,
["unknown_document"] = 0xf804,
["unknown_med"] = 0xeabd,
["unlicense"] = 0xeb05,
["unpublished"] = 0xf236,
["unsubscribe"] = 0xe0eb,
["upcoming"] = 0xf07e,
["update"] = 0xe923,
["update_disabled"] = 0xe075,
["upgrade"] = 0xf0fb,
["upload"] = 0xf09b,
["upload_2"] = 0xf521,
["upload_file"] = 0xe9fc,
["urology"] = 0xe137,
["usb"] = 0xe1e0,
["usb_off"] = 0xe4fa,
["user_attributes"] = 0xe708,
["vaccines"] = 0xe138,
["vacuum"] = 0xefc5,
["valve"] = 0xe224,
["vape_free"] = 0xebc6,
["vaping_rooms"] = 0xebcf,
["variable_add"] = 0xf51e,
["variable_insert"] = 0xf51d,
["variable_remove"] = 0xf51c,
["variables"] = 0xf851,
["ventilator"] = 0xe139,
["verified"] = 0xef76,
["verified_user"] = 0xf013,
["vertical_align_bottom"] = 0xe258,
["vertical_align_center"] = 0xe259,
["vertical_align_top"] = 0xe25a,
["vertical_distribute"] = 0xe076,
["vertical_shades"] = 0xec0e,
["vertical_shades_closed"] = 0xec0d,
["vertical_split"] = 0xe949,
["vibration"] = 0xe62d,
["video_call"] = 0xe070,
["video_camera_back"] = 0xf07f,
["video_camera_front"] = 0xf080,
["video_camera_front_off"] = 0xf83b,
["video_chat"] = 0xf8a0,
["video_file"] = 0xeb87,
["video_label"] = 0xe071,
["video_library"] = 0xe04a,
["video_search"] = 0xefc6,
["video_settings"] = 0xea75,
["video_stable"] = 0xf081,
["videocam"] = 0xe04b,
["videocam_off"] = 0xe04c,
["videogame_asset"] = 0xe338,
["videogame_asset_off"] = 0xe500,
["view_agenda"] = 0xe8e9,
["view_array"] = 0xe8ea,
["view_carousel"] = 0xe8eb,
["view_column"] = 0xe8ec,
["view_column_2"] = 0xf847,
["view_comfy"] = 0xe42a,
["view_comfy_alt"] = 0xeb73,
["view_compact"] = 0xe42b,
["view_compact_alt"] = 0xeb74,
["view_cozy"] = 0xeb75,
["view_day"] = 0xe8ed,
["view_headline"] = 0xe8ee,
["view_in_ar"] = 0xefc9,
["view_in_ar_new"] = 0xefc9,
["view_in_ar_off"] = 0xf61b,
["view_kanban"] = 0xeb7f,
["view_list"] = 0xe8ef,
["view_module"] = 0xe8f0,
["view_quilt"] = 0xe8f1,
["view_sidebar"] = 0xf114,
["view_stream"] = 0xe8f2,
["view_timeline"] = 0xeb85,
["view_week"] = 0xe8f3,
["vignette"] = 0xe435,
["villa"] = 0xe586,
["visibility"] = 0xe8f4,
["visibility_lock"] = 0xf653,
["visibility_off"] = 0xe8f5,
["vital_signs"] = 0xe650,
["vitals"] = 0xe13b,
["voice_chat"] = 0xe62e,
["voice_over_off"] = 0xe94a,
["voice_selection"] = 0xf58a,
["voicemail"] = 0xe0d9,
["volcano"] = 0xebda,
["volume_down"] = 0xe04d,
["volume_down_alt"] = 0xe79c,
["volume_mute"] = 0xe04e,
["volume_off"] = 0xe04f,
["volume_up"] = 0xe050,
["volunteer_activism"] = 0xea70,
["voting_chip"] = 0xf852,
["vpn_key"] = 0xe0da,
["vpn_key_alert"] = 0xf6cc,
["vpn_key_off"] = 0xeb7a,
["vpn_lock"] = 0xe62f,
["vr180_create2d"] = 0xefca,
["vr180_create2d_off"] = 0xf571,
["vrpano"] = 0xf082,
["wall_art"] = 0xefcb,
["wall_lamp"] = 0xe2b4,
["wallet"] = 0xf8ff,
["wallpaper"] = 0xe1bc,
["wallpaper_slideshow"] = 0xf672,
["ward"] = 0xe13c,
["warehouse"] = 0xebb8,
["warning"] = 0xf083,
["warning_amber"] = 0xf083,
["warning_off"] = 0xf7ad,
["wash"] = 0xf1b1,
["watch"] = 0xe334,
["watch_button_press"] = 0xf6aa,
["watch_later"] = 0xefd6,
["watch_off"] = 0xeae3,
["watch_screentime"] = 0xf6ae,
["watch_wake"] = 0xf6a9,
["water"] = 0xf084,
["water_bottle"] = 0xf69d,
["water_bottle_large"] = 0xf69e,
["water_damage"] = 0xf203,
["water_do"] = 0xf870,
["water_drop"] = 0xe798,
["water_ec"] = 0xf875,
["water_full"] = 0xf6d6,
["water_heater"] = 0xe284,
["water_lock"] = 0xf6ad,
["water_loss"] = 0xf6d5,
["water_lux"] = 0xf874,
["water_medium"] = 0xf6d4,
["water_orp"] = 0xf878,
["water_ph"] = 0xf87a,
["water_pump"] = 0xf5d8,
["water_voc"] = 0xf87b,
["waterfall_chart"] = 0xea00,
["waves"] = 0xe176,
["waving_hand"] = 0xe766,
["wb_auto"] = 0xe42c,
["wb_cloudy"] = 0xf15c,
["wb_incandescent"] = 0xe42e,
["wb_iridescent"] = 0xf07d,
["wb_shade"] = 0xea01,
["wb_sunny"] = 0xe430,
["wb_twilight"] = 0xe1c6,
["wc"] = 0xe63d,
["weather_hail"] = 0xf67f,
["weather_mix"] = 0xf60b,
["weather_snowy"] = 0xe2cd,
["web"] = 0xe051,
["web_asset"] = 0xe069,
["web_asset_off"] = 0xef47,
["web_stories"] = 0xe595,
["web_traffic"] = 0xea03,
["webhook"] = 0xeb92,
["weekend"] = 0xe16b,
["weight"] = 0xe13d,
["west"] = 0xf1e6,
["whatshot"] = 0xe80e,
["wheelchair_pickup"] = 0xf1ab,
["where_to_vote"] = 0xe177,
["widgets"] = 0xe1bd,
["width"] = 0xf730,
["width_full"] = 0xf8f5,
["width_normal"] = 0xf8f6,
["width_wide"] = 0xf8f7,
["wifi"] = 0xe63e,
["wifi_1_bar"] = 0xe4ca,
["wifi_2_bar"] = 0xe4d9,
["wifi_add"] = 0xf7a8,
["wifi_calling"] = 0xef77,
["wifi_calling_1"] = 0xf0f6,
["wifi_calling_2"] = 0xf0f6,
["wifi_calling_3"] = 0xf0f6,
["wifi_channel"] = 0xeb6a,
["wifi_find"] = 0xeb31,
["wifi_home"] = 0xf671,
["wifi_lock"] = 0xe1e1,
["wifi_notification"] = 0xf670,
["wifi_off"] = 0xe648,
["wifi_password"] = 0xeb6b,
["wifi_protected_setup"] = 0xf0fc,
["wifi_proxy"] = 0xf7a7,
["wifi_tethering"] = 0xe1e2,
["wifi_tethering_error"] = 0xead9,
["wifi_tethering_off"] = 0xf087,
["wind_power"] = 0xec0c,
["window"] = 0xf088,
["window_closed"] = 0xe77e,
["window_open"] = 0xe78c,
["window_sensor"] = 0xe2bb,
["wine_bar"] = 0xf1e8,
["woman"] = 0xe13e,
["woman_2"] = 0xf8e7,
["work"] = 0xe943,
["work_alert"] = 0xf5f7,
["work_history"] = 0xec09,
["work_off"] = 0xe942,
["work_outline"] = 0xe943,
["work_update"] = 0xf5f8,
["workflow"] = 0xea04,
["workspace_premium"] = 0xe7af,
["workspaces"] = 0xea0f,
["workspaces_outline"] = 0xea0f,
["wounds_injuries"] = 0xe13f,
["wrap_text"] = 0xe25b,
["wrist"] = 0xf69c,
["wrong_location"] = 0xef78,
["wysiwyg"] = 0xf1c3,
["yard"] = 0xf089,
["your_trips"] = 0xeb2b,
["youtube_activity"] = 0xf85a,
["youtube_searched_for"] = 0xe8fa,
["zone_person_alert"] = 0xe781,
["zone_person_idle"] = 0xe77a,
["zone_person_urgent"] = 0xe788,
["zoom_in"] = 0xe8ff,
["zoom_in_map"] = 0xeb2d,
["zoom_out"] = 0xe900,
["zoom_out_map"] = 0xe56b,
}
local bytemarkers = { { 0x7FF, 192 }, { 0xFFFF, 224 }, { 0x1FFFFF, 240 } }
---@param decimal number
local function utf8(decimal)
if decimal < 128 then
return string.char(decimal)
end
local charbytes = {}
for bytes, vals in ipairs(bytemarkers) do
if decimal <= vals[1] then
for b = bytes + 1, 2, -1 do
local mod = decimal % 64
decimal = (decimal - mod) / 64
charbytes[b] = string.char(128 + mod)
end
charbytes[1] = string.char(vals[2] + decimal)
break
end
end
return table.concat(charbytes)
end
---@param iconName string
function DiesalStyle.MaterialIcon(iconName)
if MaterialIcons.bytes[iconName] then
return utf8(MaterialIcons.bytes[iconName])
end
return ""
end
end
do -- Set Icons
---@class DiesalStyle.Icon.Coords
---@field column integer
---@field row integer
---@class DiesalStyle.Icon.File
---@field prefix { [1]: string, [2]: string, [3]: string }
---@field size { width: integer, height: integer, icon: integer }
---@class DiesalStyle.Icon
---@field name string
---@field file DiesalStyle.Icon.File
---@field coords DiesalStyle.Icon.Coords
---@class DiesalStyle.Icons : { [string]: table<string, table<string, table<integer,table<string, table<integer, table<integer, DiesalStyle.Icon>>>>>> }
DiesalStyle.Icons = DiesalStyle.Icons or {}
local Icons = DiesalStyle.Icons
---@class DiesalStyle.IconsByFileColumnRow : { [string]: DiesalStyle.Icon }
local IconsByFileColumnRow = {}
---@class DiesalStyle.IconsByName : { [string]: DiesalStyle.Icon }
local IconsByName = {}
function DiesalStyle.AddIcons(iconsToAdd)
assert(type(iconsToAdd) == "table", "iconsToAdd parameter (1) should be a table")
local prefixInfo = {
[1] = { prefix = "prefix1", count = 1, file = 1, iconSize = 1 },
[2] = { prefix = "prefix2", count = 1, file = 1, iconSize = 1 },
[3] = { prefix = "prefix3", count = 1, file = 1, iconSize = 1 },
}
---@param prefix integer
---@param key string
---@param table table
local function checkType(prefix, key, table)
assert(type(key) == "string", string.format("key %d for %s not a string.", prefixInfo[prefix].count, prefixInfo[prefix].prefix))
assert(type(table) == "table", string.format("value %d for %s is not a table.", prefixInfo[prefix].count, prefixInfo[prefix].prefix))
end
for p1, p1Table in pairs(iconsToAdd) do
checkType(1, p1, p1Table)
Icons[p1] = Icons[p1] or {}
for p2, p2Table in pairs(p1Table) do
checkType(2, p2, p2Table)
Icons[p1][p2] = Icons[p1][p2] or {}
for p3, p3Table in pairs(p2Table) do
checkType(3, p3, p3Table)
local filePrefixes = string.format("%s%s%s", p1, p2, p3)
Icons[p1][p2][p3] = Icons[p1][p2][p3] or {}
for iconSize, fileDimTable in pairs(p3Table) do
assert(type(iconSize) == "number", string.format("icon size key %d for %s is not a number.", prefixInfo[3].iconSize, filePrefixes))
filePrefixes = string.format("%s[%d]", filePrefixes, iconSize)
Icons[p1][p2][p3][iconSize] = Icons[p1][p2][p3][iconSize] or {}
for fileDimKey, iconColumns in pairs(fileDimTable) do
assert(type(fileDimKey == "string"), string.format("file dimensions key for file %d in %s is not a string.", prefixInfo[3].file, filePrefixes))
local fileDims = strsplittable("x", fileDimKey, 2)
assert(type(tonumber(fileDims[1])) == "number", string.format("could not obtain width from %s in %s", fileDimKey, filePrefixes))
assert(type(tonumber(fileDims[2])) == "number", string.format("could not obtain height from %s in %s", fileDimKey, filePrefixes))
Icons[p1][p2][p3][iconSize][fileDimKey] = Icons[p1][p2][p3][iconSize][fileDimKey] or {}
filePrefixes = string.format("%s[%s]", filePrefixes, fileDimKey)
local fileWidth = tonumber(fileDims[1]) or 0
local fileHeight = tonumber(fileDims[2]) or 0
local maxColumns = math.floor(fileWidth / iconSize)
local maxRows = math.floor(fileHeight / iconSize)
local iconsFileTable = Icons[p1][p2][p3][iconSize][fileDimKey]
local columnCount = 0
local rowCount = 0
for column, rows in pairs(iconColumns) do
columnCount = columnCount + 1
assert(type(column) == "number", string.format("column %d key in %s is not a number.", columnCount, filePrefixes))
assert(type(rows) == "table", string.format("column %d value in %s is not a table.", columnCount, filePrefixes))
local filePrefixesColumn = string.format("%s[%d]", filePrefixes, column)
iconsFileTable[column] = iconsFileTable[column] or {}
for row, icon in pairs(rows) do
rowCount = rowCount + 1
assert(type(row) == "number", string.format("row %d key in %s is not a number.", rowCount, filePrefixesColumn))
assert(type(icon) == "string", string.format("row %d value in %s is not a string.", rowCount, filePrefixesColumn))
local filePrefixesColumnRow = string.format("%s[%d]", filePrefixesColumn, row)
local iconName = icon
iconsFileTable[column][row] = {
name = iconName,
file = {
prefix = {
[1] = p1,
[2] = p2,
[3] = p3,
},
size = {
width = fileWidth,
height = fileHeight,
icon = iconSize,
},
},
coords = {
column = column,
row = row,
},
}
IconsByName[iconName] = IconsByName[iconName] or iconsFileTable[column][row]
IconsByFileColumnRow[filePrefixesColumnRow] = iconsFileTable[column][row]
end
rowCount = 1
end
prefixInfo[3].file = prefixInfo[3].file + 1
end
prefixInfo[3].iconSize = prefixInfo[3].iconSize + 1
end
prefixInfo[3].count = prefixInfo[3].count + 1
end
prefixInfo[2].count = prefixInfo[2].count + 1
end
prefixInfo[1].count = prefixInfo[1].count + 1
end
end
---@param iconTable DiesalStyle.Icon
local function CreateIconStyle(iconTable)
local fileName = string.format("%s%s%s", iconTable.file.prefix[1], iconTable.file.prefix[2], iconTable.file.prefix[3])
local iconSize = iconTable.file.size.icon
fileName = fileName .. (iconSize ~= 16 and iconSize or "")
local fileWidth = iconTable.file.size.width
local fileHeight = iconTable.file.size.height
local column = iconTable.coords.column
local row = iconTable.coords.row
return {
fileName,
{
column,
row,
iconSize,
fileWidth,
fileHeight,
},
}
end
---@param iconName string
function DiesalStyle.GetIconStyleByName(iconName)
return IconsByName[iconName] and CreateIconStyle(IconsByName[iconName]) or {}
end
-- [prefix1][prefix2][prefix3][iconSize][fileWidthxfileHeight][column][row]
-- DiesalGUIcons16x256x128.tga, Column 3, Row 4
-- [Diesal][GUI][cons][16][256x128][3][4]
---@param iconFile string
function DiesalStyle.GetIconByFileColumnRow(iconFile)
return IconsByFileColumnRow[iconFile] and CreateIconStyle(IconsByFileColumnRow[iconFile]) or {}
end
-- Camel Case File Name
local DefaultDiesalIcons = {
-- Prefix 1
Diesal = {
-- Prefix 2
Button = {
-- Prefix 3
Icons = {
-- Icon Size
[32] = {
-- WidthxHeight
["128x512"] = {
[1] = {
[1] = "background-horseshoe",
[2] = "hover-horseshoe",
[3] = "normal-horseshoe",
},
[2] = {
[1] = "background-crosshair",
[2] = "hover-crosshair",
[3] = "normal-crosshair",
},
[3] = {
[1] = "background-crossbones",
[2] = "hover-crossbones",
[3] = "normal-crossbones",
},
[4] = {
[1] = "background-tag",
[2] = "hover-tag",
[3] = "normal-tag",
},
[5] = {
[1] = "background-crossed-swords",
[2] = "hover-crossed-swords",
[3] = "normal-crossed-swords",
},
[6] = {
[1] = "background-oc",
[2] = "hover-oc",
[3] = "normal-oc",
},
},
},
},
},
-- Prefix 2
GU = {
-- Prefix 3
Icons = {
-- Icon Size
[16] = {
-- WidthxHeight
["256x128"] = {
-- Column 1
[1] = {
-- Row 1
[1] = "solid-white-arrow-up",
[4] = "outline-textured-rewind",
[5] = "outline-textured-question-mark",
[6] = "outline-textured-cirle-plus",
[7] = "outline-textured-file",
[8] = "outline-blue-folder-closed",
},
[2] = {
[1] = "solid-white-arrow-down",
[4] = "outline-textured-pause",
[5] = "outline-textured-cog",
[6] = "outline-textured-cirle-minus",
[7] = "outline-textured-folder",
[8] = "outline-blue-folder-opened",
},
[3] = {
[1] = "solid-white-arrow-right",
[4] = "outline-textured-play",
[5] = "outline-textured-reload",
[6] = "outline-textured-square-minus",
[7] = "outline-textured-folder-plus",
[8] = "outline-white-file",
},
[4] = {
[1] = "solid-white-arrow-left",
[4] = "outline-textured-fast-forward",
[5] = "outline-textured-home",
[6] = "outline-textured-square-plus",
[7] = "outline-textured-folder-minus",
[8] = "outline-multi-cluster",
},
[5] = {
[1] = "solid-white-circle",
[4] = "outline-textured-back",
[5] = "outline-textured-arrow-down",
[8] = "outline-textured-diskette",
},
[6] = {
[4] = "outline-textured-forward",
[5] = "outline-textured-arrow-up",
},
[7] = {
[5] = "outline-textured-arrow-right",
},
[8] = {
[5] = "outline-textured-arrow-left",
},
[9] = {
[5] = "outline-textured-arrow-close",
},
[10] = {
[5] = "outline-textured-check",
},
[11] = {
[5] = "outline-textured-lock-unclocked",
},
[12] = {
[5] = "outline-textured-lock-locked",
},
[13] = {
[5] = "outline-textured-lock-delete",
},
[14] = {
[4] = "outline-textured-circle",
[5] = "outline-textured-power",
},
[15] = {
[4] = "outline-textured-dropplet-down",
[5] = "outline-textured-ellipse",
},
[16] = {
[4] = "outline-textured-dropplet-square",
},
},
},
[32] = {
["256x256"] = {
[1] = {
[1] = "white-horseshoe",
[2] = "black-horseshoe",
},
[2] = {
[1] = "white-crosshair",
[2] = "black-crosshair",
},
[3] = {
[1] = "white-crossbones",
[2] = "black-crossbones",
},
[4] = {
[1] = "white-tag",
[2] = "black-tag",
},
[5] = {
[1] = "white-crossed-swords",
[2] = "black-crossed-swords",
},
[6] = {
[1] = "white-oc",
[2] = "black-oc",
},
},
},
[64] = {
["256x256"] = {
[1] = {
[1] = "marker-droplette-yellow-diamond",
},
[2] = {
[1] = "marker-droplette-green-leaf",
},
[3] = {
[1] = "marker-droplette-teal-star",
},
},
},
},
},
},
}
DiesalStyle.AddIcons(DefaultDiesalIcons)
end
-- ~~| DiesalStyle API |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--[[
Texture style table format
style.layer BACKGROUND | BORDER | ARTWORK | OVERLAY | HIGHLIGHT (texture in this layer is automatically shown when the mouse is over the containing Frame)
**FontStrings always appear on top of all textures in a given draw layer. avoid using sublayer
-- ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
style.alpha alpha [0 - 1]
style.alphaEnd alpha [0 - 1]
style.color hexColor | {Red, Green, Blue} [0-255]
style.colorEnd hexColor | {Red, Green, Blue} [0-255]
style.gradient VERTICAL | HORIZONTAL
-- ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
style.texFile texture fileName
style.texTile true | false
style.texCoord {left, right, top, bottom} [0-1] | {column,row,size,textureWidth,TextureHeight}
style.texColor hexColor | {Red,Green,Blue} [0-255]
style.texColorAlpha alpha [0 - 1]
-- ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
style.offset offset | {Left, Right, Top, Bottom}
style.width width
style.height height
]]
-- type = 'fill',
-- layer = 'BACKGROUND',
--
-- gradient = {'VERTICAL','744d00','996600'}
-- gradient_orientation = 'VERTICAL'|'HORIZONTAL ',
-- gradient_color = {colorStart,colorEnd},
--
-- image = {'texture-file', {left,right,top,bottom}, color, tiling_h, tiling_v}
-- image_file = 'texture-file'
-- image_coords = {left,right,top,bottom} | {row, coloumn, size, image width, image height }
-- image_color = "FFFFFF"
-- image_tiling = {'HORIZNONTAL','VERTICAL'}
--
-- color = 'FFFFFF',
-- alpha = 1 | {1,1}
--
-- position = 0 | {0,0,0,0}
---@alias r number
---@alias g number
---@alias b number
---@class Diesal.Style.RGB : { [1]: r, [2]: g, [3]: b }
---@alias left number
---@alias right number
---@alias top number
---@alias bottom number
---@alias column number
---@alias row number
---@alias textureWidth number
---@alias textureHeight number
---@alias hexString string
---@alias Diesal.Style.Color hexString | Diesal.Style.RGB
---@class Diesal.Style.TexCoord : { [1]: left, [2]: right, [3]: top, [4]: bottom }
---@class Diesal.Style.TexCoord2 : { [1]: column, [2]: row, [3]: size, [4]: textureWidth, [5]: textureHeight }
--[[
Missing required fields in type `Diesal.Style.Style`:
`layer`, `alpha`, `alphaEnd`, `color`, `colorEnd`, `gradient`, `gradient_alpha`, `gradient_orientation`, `gradient_color`, `name`, `debug`, `texFile`, `texTile`, `texCoord`, `texColor`, `texColorAlpha`, `type`, `offset`
]]
---@class Diesal.Style.Style
---@field layer? 'BACKGROUND' | 'BORDER' | 'ARTWORK' | 'OVERLAY' | 'HIGHLIGHT'
---@field alpha? number
---@field alphaEnd? number
---@field color? Diesal.Style.Color
---@field colorEnd? Diesal.Style.Color
---@field gradient? { [1]: 'VERTICAL' | 'HORIZONTAL', [2]: string, [3]: string }
---@field gradient_alpha? number
---@field gradient_orientation? 'VERTICAL' | 'HORIZONTAL'
---@field gradient_color? {[1]: Diesal.Style.Color, [2]: Diesal.Style.Color }
---@field image? { [1]: string, [2]: Diesal.Style.TexCoord, [3]: Diesal.Style.Color, [4]: WrapMode, [5]: WrapMode }
---@field image_file? string
---@field image_coords? Diesal.Style.TexCoord | Diesal.Style.TexCoord2
---@field image_color? hexString
---@field image_tiling? { [1]: WrapMode, [2]: WrapMode }
---@field name? string
---@field debug? boolean
---@field texCoord? Diesal.Style.TexCoord | Diesal.Style.TexCoord2
---@field texColor? Diesal.Style.Color
---@field texColorAlpha? number
---@field type "texture" | "outline" | "shadow" | "font"
---@field offset? number | { [1]: left, [2]: right, [3]: top, [4]: bottom }
---@field width? number
---@field height? number
---@field position? Diesal.Style.TexCoord
---@field clear? boolean
---@class Diesal.Style.Texture.Style : Diesal.Style.Style
---@field alpha { [1]: number, [2]: number }
---@field image { file: number|string, coords: Diesal.Style.TexCoord, color: Diesal.Style.Color, tiling: { [1]: WrapMode, [2]: WrapMode } }
---@field gradient { orientation: 'VERTICAL' | 'HORIZONTAL', color: { [1]: Diesal.Style.Color, [2]: Diesal.Style.Color } }
---@field mode string
---@class Diesal.Style.Texture : Texture
---@field style Diesal.Style.Texture.Style?
---@class Diesal.Style.Stylesheet : {[string]: Diesal.Style.Style | Diesal.Style.Texture.Style}
---@param texture Texture
---@param style Diesal.Style.Style
function DiesalStyle:StyleTexture(texture, style)
-- | Setup Texture.style |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if not texture.style or style.clear then
---@diagnostic disable-next-line: missing-fields, inject-field
texture.style = {}
end
-- debugging
texture.style.name = style.name or texture.style.name
texture.style.debug = style.debug or texture.style.debug
-- | Format Settings |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Gradient ~~~~~~~~~~~~~~~~~~~~~~~~~
if style.gradient and type(style.gradient) == "table" then
local orientation = formatOrientation(style.gradient[1])
if orientation then
texture.style.gradient = {
orientation = orientation,
color = style.gradient[2] and style.gradient[3] and { style.gradient[2], style.gradient[3] },
}
end
end
local orientation = formatOrientation(style.gradient_orientation)
if orientation then
style.gradient_orientation = orientation -- fuck you
end
if not texture.style.gradient and (style.gradient_orientation or style.gradient_alpha or style.gradient_color) then
texture.style.gradient = {}
end
-- Image ~~~~~~~~~~~~~~~~~~~~~~~~~
if style.image and type(style.image) == "table" then
local file = formatFile(style.image[1])
local coords = formatCoords(style.image[2])
if file and coords then
texture.style.image = {
file = file,
coords = coords,
color = style.image[3],
tiling = { style.image[4], style.image[5] },
}
end
end
if not texture.style.image and style.image_file then
texture.style.image = {}
end
-- | Update Settings |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
texture.style.layer = style.layer or texture.style.layer or DEFAULT_LAYER
texture.style.position = formatPosition(style.position) or texture.style.position or { 0, 0, 0, 0 }
texture.style.width = style.width or texture.style.width
texture.style.height = style.height or texture.style.height
texture.style.color = style.color or texture.style.color
texture.style.alpha = formatAlpha(style.alpha) or texture.style.alpha or { 1, 1 }
-- gradient
if texture.style.gradient then
texture.style.gradient.orientation = style.gradient_orientation or texture.style.gradient.orientation or DEFAULT_GRADIENT_ORIENTATION
texture.style.gradient.color = style.gradient_color or texture.style.gradient.color or { DEFAULT_COLOR, DEFAULT_COLOR }
end
-- image
if texture.style.image then
texture.style.image.file = formatFile(style.image_file) or texture.style.image.file
texture.style.image.coords = formatCoords(style.image_coords) or texture.style.image.coords or { 0, 1, 0, 1 }
texture.style.image.color = style.image_color or texture.style.image.color
texture.style.image.tiling = style.image_tiling or texture.style.image.tiling
end
-- | Apply Settings |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- layer
texture:SetDrawLayer(texture.style.layer, 0)
-- position
texture:ClearAllPoints() -- clear offsets
if texture.style.position[1] then
texture:SetPoint("LEFT", -texture.style.position[1], 0)
end
if texture.style.position[2] then
texture:SetPoint("RIGHT", texture.style.position[2], 0)
end
if texture.style.position[3] then
texture:SetPoint("TOP", 0, texture.style.position[3])
end
if texture.style.position[4] then
texture:SetPoint("BOTTOM", 0, -texture.style.position[4])
end
-- size
if texture.style.width then
texture:SetWidth(texture.style.width)
end
if texture.style.height then
texture:SetHeight(texture.style.height)
end
if style.debug then
print(texture:GetHeight(), texture.style.position[1], texture.style.position[2], texture.style.position[3], texture.style.position[4])
end
-- [1] Texture > [2] gradient > [3] color
if texture.style.image then -- [1] Texture
-- set mode
texture.style.mode = "image"
-- clear any old settings
setGradient(texture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1) -- clear gradient
texture:SetColorTexture(1, 1, 1, 1) -- clear color
-- apply settings
texture:SetTexCoord(texture.style.image.coords[1], texture.style.image.coords[2], texture.style.image.coords[3], texture.style.image.coords[4])
texture:SetTexture(texture.style.image.file, texture.style.image.tiling and texture.style.image.tiling[1], texture.style.image.tiling and texture.style.image.tiling[2])
texture:SetHorizTile(texture.style.image.tiling[1] and true)
texture:SetVertTile(texture.style.image.tiling[2] and true)
local r, g, b = GetBlizzColorValues(texture.style.image.color)
texture:SetVertexColor(r or 1, g or 1, b or 1, texture.style.alpha[1])
elseif texture.style.gradient then -- [2] gradient
-- set mode
texture.style.mode = "gradient"
-- clear any old settings
texture:SetTexture() -- clear image
texture:SetColorTexture(1, 1, 1, 1) -- clear color
-- apply settings
local r1, g1, b1 = GetBlizzColorValues(texture.style.gradient.color[texture.style.gradient.orientation == "HORIZONTAL" and 1 or 2])
local r2, g2, b2 = GetBlizzColorValues(texture.style.gradient.color[texture.style.gradient.orientation == "HORIZONTAL" and 2 or 1])
local a1, a2 = texture.style.alpha[texture.style.gradient.orientation == "HORIZONTAL" and 1 or 2], texture.style.alpha[texture.style.gradient.orientation == "HORIZONTAL" and 2 or 1]
setGradient(texture, texture.style.gradient.orientation, r1, g1, b1, a1, r2, g2, b2, a2)
elseif texture.style.color then -- [3] color
-- set mode
texture.style.mode = "color"
-- clear any old settings
texture:SetTexture() -- clear image
setGradient(texture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1) -- clear gradient
-- apply settings
local r, g, b = GetBlizzColorValues(texture.style.color)
setColor(texture, r, g, b, texture.style.alpha[1])
else
-- set mode
texture.style.mode = "none!"
-- clear the texture
texture:SetTexture() -- clear image
setGradient(texture, "HORIZONTAL", 0, 0, 0, 0, 0, 0, 0, 0) -- clear gradient
texture:SetColorTexture(0, 0, 0, 0) -- clear color
end
end
---@param leftTexture Diesal.Style.Texture
---@param rightTexture Diesal.Style.Texture
---@param topTexture Diesal.Style.Texture
---@param bottomTexture Diesal.Style.Texture
---@param style Diesal.Style.Style
function DiesalStyle:StyleOutline(leftTexture, rightTexture, topTexture, bottomTexture, style)
-- | Setup Texture.style |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if not leftTexture.style or style.clear then
---@diagnostic disable-next-line: missing-fields
leftTexture.style = {}
rightTexture.style = leftTexture.style
topTexture.style = leftTexture.style
bottomTexture.style = leftTexture.style
end
local texture = leftTexture
-- debugging
texture.style.name = style.name or texture.style.name
texture.style.debug = style.debug or texture.style.debug
-- | Format Settings |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if style.gradient and type(style.gradient) == "table" then
texture.style.gradient = {
orientation = style.gradient[1]:upper(),
color = style.gradient[2] and style.gradient[3] and { style.gradient[2], style.gradient[3] },
}
end
style.gradient_orientation = style.gradient_orientation and style.gradient_orientation:upper() --formatOrientation(style.gradient_orientation) -- fuck you
if not texture.style.gradient and (style.gradient_orientation or style.gradient_alpha or style.gradient_color) then
texture.style.gradient = {}
end
-- | Update Settings |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
texture.style.layer = style.layer or texture.style.layer or DEFAULT_LAYER
texture.style.position = formatPosition(style.position) or texture.style.position or { 0, 0, 0, 0 }
texture.style.width = style.width or texture.style.width
texture.style.height = style.height or texture.style.height
texture.style.color = style.color or texture.style.color
texture.style.alpha = formatAlpha(style.alpha) or texture.style.alpha or { 1, 1 }
-- gradient
if texture.style.gradient then
texture.style.gradient.orientation = style.gradient_orientation or texture.style.gradient.orientation or DEFAULT_GRADIENT_ORIENTATION
texture.style.gradient.color = style.gradient_color or texture.style.gradient.color or { DEFAULT_COLOR, DEFAULT_COLOR }
end
-- | Apply Settings |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- layer
leftTexture:SetDrawLayer(texture.style.layer, 0)
rightTexture:SetDrawLayer(texture.style.layer, 0)
topTexture:SetDrawLayer(texture.style.layer, 0)
bottomTexture:SetDrawLayer(texture.style.layer, 0)
-- position
leftTexture:ClearAllPoints()
rightTexture:ClearAllPoints()
topTexture:ClearAllPoints()
bottomTexture:ClearAllPoints()
if texture.style.position[1] then
leftTexture:SetPoint("LEFT", -texture.style.position[1], 0)
else
leftTexture:SetPoint("RIGHT", -texture.style.width, 0)
end
if texture.style.position[3] then
leftTexture:SetPoint("TOP", 0, texture.style.position[3])
end
if texture.style.position[4] then
leftTexture:SetPoint("BOTTOM", 0, -texture.style.position[4])
end
if texture.style.position[2] then
rightTexture:SetPoint("RIGHT", texture.style.position[2], 0)
else
rightTexture:SetPoint("LEFT", texture.style.width - (texture.style.position[1] + 1), 0)
end
if texture.style.position[3] then
rightTexture:SetPoint("TOP", 0, texture.style.position[3])
end
if texture.style.position[4] then
rightTexture:SetPoint("BOTTOM", 0, -texture.style.position[4])
end
if texture.style.position[1] then
topTexture:SetPoint("LEFT", -texture.style.position[1] + 1, 0)
end
if texture.style.position[2] then
topTexture:SetPoint("RIGHT", texture.style.position[2] - 1, 0)
end
if texture.style.position[3] then
topTexture:SetPoint("TOP", 0, texture.style.position[3])
else
topTexture:SetPoint("BOTTOM", 0, texture.style.height - 1)
end
if texture.style.position[1] then
bottomTexture:SetPoint("LEFT", -texture.style.position[1] + 1, 0)
end
if texture.style.position[2] then
bottomTexture:SetPoint("RIGHT", texture.style.position[2] - 1, 0)
end
if texture.style.position[4] then
bottomTexture:SetPoint("BOTTOM", 0, -texture.style.position[4])
else
bottomTexture:SetPoint("TOP", 0, -(texture.style.height + 1) + (texture.style.position[3] + 2))
end
-- size
leftTexture:SetWidth(1)
if texture.style.height then
leftTexture:SetHeight(texture.style.height)
end
rightTexture:SetWidth(1)
if texture.style.height then
rightTexture:SetHeight(texture.style.height)
end
topTexture:SetHeight(1)
if texture.style.width then
topTexture:SetWidth(texture.style.width - 2)
end
bottomTexture:SetHeight(1)
if texture.style.width then
bottomTexture:SetWidth(texture.style.width - 2)
end
-- texture
if texture.style.gradient then
-- set mode
texture.style.mode = "gradient"
-- clear any old settings
leftTexture:SetTexture() -- clear image
-- leftTexture:SetAlpha(1) -- reset alpha
rightTexture:SetTexture() -- clear image
-- rightTexture:SetAlpha(1) -- reset alpha
topTexture:SetTexture() -- clear image
-- topTexture:SetAlpha(1) -- reset alpha
bottomTexture:SetTexture() -- clear image
-- bottomTexture:SetAlpha(1) -- reset alpha
local r1, g1, b1, r2, g2, b2, a1, a2
if texture.style.gradient.orientation == "HORIZONTAL" then
-- clear settings
setGradient(leftTexture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1)
setGradient(rightTexture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1)
topTexture:SetColorTexture(1, 1, 1, 1) -- clear color
bottomTexture:SetColorTexture(1, 1, 1, 1) -- clear color
-- aply settings
r1, g1, b1 = GetBlizzColorValues(texture.style.gradient.color[1])
r2, g2, b2 = GetBlizzColorValues(texture.style.gradient.color[2])
a1, a2 = texture.style.alpha[1], texture.style.alpha[2]
setColor(leftTexture, r1, g1, b1, a1)
setColor(rightTexture, r2, g2, b2, a2)
setGradient(topTexture, "HORIZONTAL", r1, g1, b1, a1, r2, g2, b2, a2)
setGradient(bottomTexture, "HORIZONTAL", r1, g1, b1, a1, r2, g2, b2, a2)
elseif texture.style.gradient.orientation == "VERTICAL" then
-- clear settings
leftTexture:SetColorTexture(1, 1, 1, 1) -- clear color
rightTexture:SetColorTexture(1, 1, 1, 1) -- clear color
setGradient(topTexture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1)
setGradient(bottomTexture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1)
-- aply settings
r1, g1, b1 = GetBlizzColorValues(texture.style.gradient.color[2])
r2, g2, b2 = GetBlizzColorValues(texture.style.gradient.color[1])
a1, a2 = texture.style.alpha[2], texture.style.alpha[1]
setColor(topTexture, r2, g2, b2, a2)
setColor(bottomTexture, r1, g1, b1, a1)
setGradient(leftTexture, "VERTICAL", r1, g1, b1, a1, r2, g2, b2, a2)
setGradient(rightTexture, "VERTICAL", r1, g1, b1, a1, r2, g2, b2, a2)
else
texture.style.mode = "gradient: no orientation!"
-- should never be here
end
elseif texture.style.color then
-- set mode
texture.style.mode = "color"
-- clear any old settings
setGradient(leftTexture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1)
setGradient(rightTexture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1)
setGradient(topTexture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1)
setGradient(bottomTexture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1)
-- apply settings
local r, g, b = GetBlizzColorValues(texture.style.color)
setColor(leftTexture, r, g, b, texture.style.alpha[1])
setColor(rightTexture, r, g, b, texture.style.alpha[1])
setColor(topTexture, r, g, b, texture.style.alpha[1])
setColor(bottomTexture, r, g, b, texture.style.alpha[1])
else
-- set mode
texture.style.mode = "none!"
-- clear the texture
leftTexture:SetTexture() -- clear image
setGradient(leftTexture, "HORIZONTAL", 0, 0, 0, 0, 0, 0, 0, 0) -- clear gradient
leftTexture:SetColorTexture(0, 0, 0, 0) -- clear color
rightTexture:SetTexture() -- clear image
setGradient(rightTexture, "HORIZONTAL", 0, 0, 0, 0, 0, 0, 0, 0) -- clear gradient
rightTexture:SetColorTexture(0, 0, 0, 0) -- clear color
topTexture:SetTexture() -- clear image
setGradient(topTexture, "HORIZONTAL", 0, 0, 0, 0, 0, 0, 0, 0) -- clear gradient
topTexture:SetColorTexture(0, 0, 0, 0) -- clear color
bottomTexture:SetTexture() -- clear image
setGradient(bottomTexture, "HORIZONTAL", 0, 0, 0, 0, 0, 0, 0, 0) -- clear gradient
bottomTexture:SetColorTexture(0, 0, 0, 0) -- clear color
end
end
---@class Diesal.Style.ShadowStyle : Diesal.Style.Style
---@field edgeFile? string
---@field edgeSize? number
---@field red? number
---@field green? number
---@field blue? number
---@class Diesal.Style.Shadow : Frame, BackdropTemplate
---@field style Diesal.Style.ShadowStyle
---@class Diesal.Style.ShadowObject : Diesal.GUI.ObjectBase
---@field shadow Diesal.Style.Shadow
---@param object Diesal.Style.ShadowObject
---@param frame Frame
---@param style Diesal.Style.ShadowStyle
function DiesalStyle:StyleShadow(object, frame, style)
object.shadow = object.shadow or CreateFrame("Frame", nil, frame, BackdropTemplateMixin and "BackdropTemplate") --CreateFrame("Frame",nil,frame)
object.shadow:Show()
if not object.shadow.style or style.clear then
object.shadow.style = {}
end
local shadowStyle = object.shadow.style
-- ~~ Format New Settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local red, green, blue = DiesalTools.GetColor(style.color)
local offset = style.offset and type(style.offset) == "number" and { style.offset, style.offset, style.offset, style.offset } or style.offset
-- Setting ~~~~~~~~~~~~~~~~~~~~~~~ New Setting ~~~~~~~~~~~~~~~ Old Setting ~~~~~~~~~~~~~~~~~ Default ~~~~~~~~~~~~~~~~~~
shadowStyle.edgeFile = style.edgeFile or shadowStyle.edgeFile or getMedia("border", "shadow")
shadowStyle.edgeSize = style.edgeSize or shadowStyle.edgeSize or 28
shadowStyle.red = red or shadowStyle.red or 0
shadowStyle.green = green or shadowStyle.green or 0
shadowStyle.blue = blue or shadowStyle.blue or 0
shadowStyle.alpha = style.alpha or shadowStyle.alpha or 0.45
shadowStyle.offset = offset or shadowStyle.offset or { 20, 20, 20, 20 }
-- ~~ Apply Settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if shadowStyle.offset[1] then
object.shadow:SetPoint("LEFT", -shadowStyle.offset[1], 0)
end
if shadowStyle.offset[2] then
object.shadow:SetPoint("RIGHT", shadowStyle.offset[2], 0)
end
if shadowStyle.offset[3] then
object.shadow:SetPoint("TOP", 0, shadowStyle.offset[3])
end
if shadowStyle.offset[4] then
object.shadow:SetPoint("BOTTOM", 0, -shadowStyle.offset[4])
end
object.shadow:SetBackdrop({ edgeFile = shadowStyle.edgeFile, edgeSize = shadowStyle.edgeSize })
object.shadow:SetBackdropBorderColor(shadowStyle.red, shadowStyle.green, shadowStyle.blue, shadowStyle.alpha)
end
--[[ Font style table format
TODO style.offset ( offset|{ Left, Right, Top, Bottom })
TODO style.width ( width )
TODO style.height ( height )
style.font ( Path to a font file )
style.fontSize ( Size (point size) of the font to be displayed (in pixels) )
style.flags ( Additional properties specified by one or more of the following tokens: MONOCHROME, OUTLINE | THICKOUTLINE ) (comma delimitered string)
style.alpha ( alpha )
style.color ( hexColor|{ Red, Green, Blue } [0-255])
style.lineSpacing ( number - Sets the font instance's amount of spacing between lines)
]]
---@class Diesal.Style.FontStyle
---@field font string
---@field filename string
---@field fontSize number
---@field flags string
---@field alpha number
---@field color Diesal.Style.Color
---@field lineSpacing number
---@field red number
---@field green number
---@field blue number
---@class Diesal.Style.FontString : FontString
---@field style Diesal.Style.FontStyle
---@param fontInstance Diesal.Style.FontString
---@param name string
---@param style Diesal.Style.FontStyle
function DiesalStyle:StyleFont(fontInstance, name, style)
local filename, fontSize, flags = fontInstance:GetFont()
local red, green, blue, alpha = fontInstance:GetTextColor()
local lineSpacing = fontInstance:GetSpacing()
-- Fallback to DiesalFontNormal for Patch 8.1
if not filename then
filename, fontSize, flags = DiesalFontNormal:GetFont()
red, green, blue, alpha = DiesalFontNormal:GetTextColor()
lineSpacing = DiesalFontNormal:GetSpacing()
end
---@diagnostic disable-next-line: assign-type-mismatch
style.red, style.green, style.blue = DiesalTools.GetColor(style.color)
-- ~~ Set Settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
style.filename = style.filename or filename
style.fontSize = style.fontSize or fontSize
style.flags = style.flags or flags
style.red = style.red or red
style.green = style.green or green
style.blue = style.blue or blue
style.alpha = style.alpha or alpha
style.lineSpacing = style.lineSpacing or lineSpacing
-- ~~ Apply Settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fontInstance:SetFont(style.filename, style.fontSize, style.flags)
fontInstance:SetTextColor(style.red, style.green, style.blue, style.alpha)
fontInstance:SetSpacing(style.lineSpacing)
fontInstance.style = style
end
---@param object Diesal.GUI.ObjectBase
---@param name string
---@param style Diesal.Style.Style
function DiesalStyle:UpdateObjectStyle(object, name, style)
if not style or type(style) ~= "table" then
return
end
if type(name) ~= "string" then
return
end
-- ~~ Clear Texture ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if style.clear then
-- clear texture
if object.textures[name] then
DiesalStyle:ReleaseTexture(object, name)
end
-- clear OUTLINE
for i = 1, #OUTLINES do
if object.textures[name .. OUTLINES[i]] then
DiesalStyle:ReleaseTexture(object, name .. OUTLINES[i])
end
end
end
-- add texture name to style for better debugging
style.name = name
-- ~~ Get styleType ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if not style.type then
return
end
local styleType = DiesalTools.Capitalize(style.type)
if not DiesalStyle["Style" .. styleType] then
geterrorhandler()(style.type .. " is not a valid style type")
return
end
-- ~~ Get Frame ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local framename = name:match("^[ \t]*([%w%d%_]*)")
local frame = object[framename]
if not frame then
return
end
-- ~~ Style ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if styleType == "Texture" then
local texture = object.textures[name]
if not texture then
texture = newTexture()
object.textures[name] = texture
end
texture:SetParent(frame)
DiesalStyle:StyleTexture(texture, style)
return
end
if styleType == "Outline" then
local textures = {}
for i = 1, #OUTLINES do
local texture = object.textures[name .. OUTLINES[i]]
if type(texture) == "nil" then
texture = newTexture()
object.textures[name .. OUTLINES[i]] = texture
end
texture:SetParent(frame)
textures[i] = texture
end
DiesalStyle:StyleOutline(textures[1], textures[2], textures[3], textures[4], style)
return
end
if styleType == "Shadow" then
---@cast object Diesal.Style.ShadowObject
DiesalStyle:StyleShadow(object, frame, style --[[ @as Diesal.Style.ShadowStyle ]])
return
end
if styleType == "Font" then
DiesalStyle:StyleFont(frame, name, style --[[ @as Diesal.Style.FontStyle ]])
end
end
---@param object Diesal.GUI.ObjectBase
---@param name string
---@param style Diesal.Style.Style
function DiesalStyle:SetObjectStyle(object, name, style)
if not style or type(style) ~= "table" then
return
end
if type(name) ~= "string" then
return
end
-- clear texture
if object.textures[name] then
DiesalStyle:ReleaseTexture(object, name)
end
-- clear OUTLINE
for i = 1, #OUTLINES do
if object.textures[name .. OUTLINES[i]] then
DiesalStyle:ReleaseTexture(object, name .. OUTLINES[i])
end
end
-- Set object style
DiesalStyle:UpdateObjectStyle(object, name, style)
end
---@param object Diesal.GUI.ObjectBase
---@param Stylesheet Diesal.Style.Stylesheet
function DiesalStyle:UpdateObjectStylesheet(object, Stylesheet)
if not Stylesheet or type(Stylesheet) ~= "table" then
return
end
if not object.textures then
object.textures = {}
end
for name, style in pairs(Stylesheet) do
self:UpdateObjectStyle(object, name, style)
end
end
---@param object Diesal.GUI.ObjectBase
---@param Stylesheet Diesal.Style.Stylesheet
function DiesalStyle:SetObjectStylesheet(object, Stylesheet)
if not object.textures then
object.textures = {}
end
DiesalStyle:ReleaseTextures(object)
for name, style in pairs(Stylesheet) do
self:UpdateObjectStyle(object, name, style)
end
end
---@param object Diesal.GUI.ObjectBase
---@param name string
function DiesalStyle:ReleaseTexture(object, name)
if not object or not object.textures or not object.textures[name] then
error("No such texture on ojbect", 2)
return
end
releaseTexture(object.textures[name])
object.textures[name] = nil
end
---@param object Diesal.GUI.ObjectBase
function DiesalStyle:ReleaseTextures(object)
for name, texture in pairs(object.textures) do
releaseTexture(texture)
object.textures[name] = nil
end
end
---@param mediaType string
---@param name string
function DiesalStyle:GetMedia(mediaType, name)
return getMedia(mediaType, name)
end
---@param mediaType string
---@param name string
---@param mediaFile string
function DiesalStyle:AddMedia(mediaType, name, mediaFile)
addMedia(mediaType, name, mediaFile)
end