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 " )
addMedia ( " font " , " DejaVuSansMono " , " Fonts \\ DejaVuSansMono.ttf " ) -- Monospaced
addMedia ( " font " , " DejaVuSansMonoBold " , " Fonts \\ DejaVuSansMono-Bold.ttf " ) -- Monospaced
addMedia ( " font " , " FFF Intelligent Thin Condensed " , " Fonts \\ FFF Intelligent Thin Condensed.ttf " ) -- pixel fonts
addMedia ( " font " , " FiraMonoBold " , " Fonts \\ FiraMono-Bold.ttf " ) -- Monospaced
addMedia ( " font " , " FiraMonoMedium " , " Fonts \\ FiraMono-Medium.ttf " ) -- Monospaced
addMedia ( " font " , " FiraMonoRegular " , " Fonts \\ FiraMono-Regular.ttf " ) -- Monospaced
addMedia ( " font " , " FiraSans " , " Fonts \\ FiraSans-Regular.ttf " ) -- pixel fonts
addMedia ( " font " , " HackBold " , " Fonts \\ Hack-Bold.ttf " ) -- Monospaced
addMedia ( " font " , " HackRegular " , " Fonts \\ Hack-Regular.ttf " ) -- Monospaced
addMedia ( " font " , " InconsolataBold " , " Fonts \\ Inconsolata-Bold.ttf " ) -- Monospaced
addMedia ( " font " , " InconsolataRegular " , " Fonts \\ Inconsolata-Regular.ttf " ) -- Monospaced
addMedia ( " font " , " LucidiaMono " , " Fonts \\ LUCON.ttf " ) -- Monospaced
addMedia ( " font " , " MaterialIcons " , " Fonts \\ MaterialIcons-Regular.ttf " ) -- Material
addMedia ( " font " , " MaterialIconsOutlinedTTF " , " Fonts \\ MaterialIconsOutlined-Regular.ttf " ) -- Material
addMedia ( " font " , " MaterialIconsOutlined " , " Fonts \\ MaterialIconsOutlined-Regular.otf " ) -- Material
addMedia ( " font " , " MaterialIconsRound " , " Fonts \\ MaterialIconsRound-Regular.otf " ) -- Material
addMedia ( " font " , " MaterialIconsSharp " , " Fonts \\ MaterialIconsSharp-Regular.otf " ) -- Material
addMedia ( " font " , " MaterialIconsTwoTone " , " Fonts \\ MaterialIconsTwoTone-Regular.otf " ) -- Material
addMedia ( " font " , " MaterialSymbolsRounded " , " Fonts \\ MaterialSymbolsRounded.ttf " ) -- Material
addMedia ( " font " , " MonoFur " , " Fonts \\ monof55.ttf " ) -- Monospaced
addMedia ( " font " , " MonoFurItalic " , " Fonts \\ monof56.ttf " ) -- Monospaced
addMedia ( " font " , " OfficeCodeProBold " , " Fonts \\ OfficeCodePro-Bold.ttf " ) -- Monospaced
addMedia ( " font " , " OfficeCodeProMedium " , " Fonts \\ OfficeCodePro-Medium.ttf " ) -- Monospaced
addMedia ( " font " , " OfficeCodeProRegular " , " Fonts \\ OfficeCodePro-Regular.ttf " ) -- Monospaced
addMedia ( " font " , " RobotoMonoBold " , " Fonts \\ RobotoMono-Bold.ttf " ) -- Monospaced
addMedia ( " font " , " RobotoMonoMedium " , " Fonts \\ RobotoMono-Medium.ttf " ) -- Monospaced
addMedia ( " font " , " RobotoMonoRegular " , " Fonts \\ RobotoMono-Regular.ttf " ) -- Monospaced
addMedia ( " font " , " SourceCodeProBlack " , " Fonts \\ SourceCodePro-Black.ttf " ) -- Monospaced
addMedia ( " font " , " SourceCodeProBold " , " Fonts \\ SourceCodePro-Bold.ttf " ) -- Monospaced
addMedia ( " font " , " SourceCodeProMedium " , " Fonts \\ SourceCodePro-Medium.ttf " ) -- Monospaced
addMedia ( " font " , " SourceCodeProRegular " , " Fonts \\ SourceCodePro-Regular.ttf " ) -- Monospaced
addMedia ( " font " , " SourceCodeProSemibold " , " Fonts \\ SourceCodePro-Semibold.ttf " ) -- Monospaced
addMedia ( " font " , " Standard0755 " , " Fonts \\ Standard0755.ttf " ) -- pixel fonts
addMedia ( " font " , " UbuntuMonoBold " , " Fonts \\ UbuntuMono-B.ttf " ) -- Monospaced
addMedia ( " font " , " UbuntuMonoRegular " , " Fonts \\ UbuntuMono-R.ttf " ) -- Monospaced
addMedia ( " texture " , " DiesalGUIcons " , " Textures \\ DiesalGUIcons16x256x128.tga " ) -- Icon Textures
addMedia ( " texture " , " DiesalGUIcons64 " , " Textures \\ DiesalGUIcons64x256x256.tga " ) -- Icon Textures
addMedia ( " texture " , " DiesalGUIcons32 " , " Textures \\ DiesalGUIcons32x256x256.tga " ) -- Icons Textures
addMedia ( " texture " , " DiesalButtonIcons32 " , " Textures \\ DiesalButtonIcons32x128x512.tga " ) -- Icons Textures
addMedia ( " border " , " shadow " , " Textures \\ shadow.tga " ) -- Shadows
addMedia ( " border " , " shadowNoDist " , " Textures \\ shadowNoDist.tga " ) -- Shadows
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
local font = getMedia ( " font " , " calibrib " )
if font then
DiesalFontNormalOutline = CreateFont ( " DiesalFontNormalOutline " )
DiesalFontNormalOutline : SetFont ( font , 11 , " OUTLINE " )
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