dishui 0.0.47 → 0.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js +1 -2
  2. package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js.map +1 -1
  3. package/dist/components/pro/CodeEditor/themes.js +0 -25
  4. package/dist/components/pro/CodeEditor/themes.js.map +1 -1
  5. package/dist/components/pro/CodeEditor/types.d.ts +1 -1
  6. package/dist/components/pro/Flow/Flow.js +500 -483
  7. package/dist/components/pro/Flow/Flow.js.map +1 -1
  8. package/dist/components/pro/Flow/FlowCanvas.js +526 -524
  9. package/dist/components/pro/Flow/FlowCanvas.js.map +1 -1
  10. package/dist/components/pro/Flow/canvas/GridRenderer.d.ts +3 -0
  11. package/dist/components/pro/Flow/canvas/GridRenderer.js +28 -23
  12. package/dist/components/pro/Flow/canvas/GridRenderer.js.map +1 -1
  13. package/dist/components/pro/Flow/canvas/MiniMapRenderer.js +18 -17
  14. package/dist/components/pro/Flow/canvas/MiniMapRenderer.js.map +1 -1
  15. package/dist/components/pro/Flow/canvas/PixiApp.d.ts +2 -0
  16. package/dist/components/pro/Flow/canvas/PixiApp.js +14 -11
  17. package/dist/components/pro/Flow/canvas/PixiApp.js.map +1 -1
  18. package/dist/components/pro/Flow/constants.js +7 -7
  19. package/dist/components/pro/Flow/constants.js.map +1 -1
  20. package/dist/components/pro/Flow/context/FlowAIContext.d.ts +15 -0
  21. package/dist/components/pro/Flow/context/FlowAIContext.js +32 -0
  22. package/dist/components/pro/Flow/context/FlowAIContext.js.map +1 -0
  23. package/dist/components/pro/Flow/context/FlowUIContext.d.ts +4 -1
  24. package/dist/components/pro/Flow/context/FlowUIContext.js +58 -55
  25. package/dist/components/pro/Flow/context/FlowUIContext.js.map +1 -1
  26. package/dist/components/pro/Flow/edges/EdgeRenderer.js +22 -21
  27. package/dist/components/pro/Flow/edges/EdgeRenderer.js.map +1 -1
  28. package/dist/components/pro/Flow/hooks/useFlowImportExport.js +32 -32
  29. package/dist/components/pro/Flow/hooks/useFlowImportExport.js.map +1 -1
  30. package/dist/components/pro/Flow/hooks/usePixiApp.d.ts +6 -1
  31. package/dist/components/pro/Flow/hooks/usePixiApp.js +49 -30
  32. package/dist/components/pro/Flow/hooks/usePixiApp.js.map +1 -1
  33. package/dist/components/pro/Flow/index.d.ts +2 -0
  34. package/dist/components/pro/Flow/lines/FreehandTool.js +21 -20
  35. package/dist/components/pro/Flow/lines/FreehandTool.js.map +1 -1
  36. package/dist/components/pro/Flow/lines/GeometricLineTool.js +22 -18
  37. package/dist/components/pro/Flow/lines/GeometricLineTool.js.map +1 -1
  38. package/dist/components/pro/Flow/lines/LineRenderer.js +19 -18
  39. package/dist/components/pro/Flow/lines/LineRenderer.js.map +1 -1
  40. package/dist/components/pro/Flow/nodes/MediaContent.js +143 -124
  41. package/dist/components/pro/Flow/nodes/MediaContent.js.map +1 -1
  42. package/dist/components/pro/Flow/nodes/MediaOverlay.js +22 -17
  43. package/dist/components/pro/Flow/nodes/MediaOverlay.js.map +1 -1
  44. package/dist/components/pro/Flow/nodes/NodeRenderer.js +77 -76
  45. package/dist/components/pro/Flow/nodes/NodeRenderer.js.map +1 -1
  46. package/dist/components/pro/Flow/nodes/aiClient.d.ts +22 -0
  47. package/dist/components/pro/Flow/nodes/aiClient.js +107 -54
  48. package/dist/components/pro/Flow/nodes/aiClient.js.map +1 -1
  49. package/dist/components/pro/Flow/nodes/svgIcons.js +6 -6
  50. package/dist/components/pro/Flow/nodes/svgIcons.js.map +1 -1
  51. package/dist/components/pro/Flow/panels/AIPanel.d.ts +2 -0
  52. package/dist/components/pro/Flow/panels/AIPanel.js +498 -0
  53. package/dist/components/pro/Flow/panels/AIPanel.js.map +1 -0
  54. package/dist/components/pro/Flow/panels/FlowPanelGroup.js +51 -39
  55. package/dist/components/pro/Flow/panels/FlowPanelGroup.js.map +1 -1
  56. package/dist/components/pro/Flow/panels/FlowToolbar.js +91 -85
  57. package/dist/components/pro/Flow/panels/FlowToolbar.js.map +1 -1
  58. package/dist/components/pro/Flow/panels/InspectorPanel.js +372 -332
  59. package/dist/components/pro/Flow/panels/InspectorPanel.js.map +1 -1
  60. package/dist/components/pro/Flow/panels/OutlinePanel.js +28 -27
  61. package/dist/components/pro/Flow/panels/OutlinePanel.js.map +1 -1
  62. package/dist/components/pro/Flow/panels/ShapePalette.js +107 -104
  63. package/dist/components/pro/Flow/panels/ShapePalette.js.map +1 -1
  64. package/dist/components/pro/Flow/panels/toolbarIcons.d.ts +1 -0
  65. package/dist/components/pro/Flow/panels/toolbarIcons.js +25 -20
  66. package/dist/components/pro/Flow/panels/toolbarIcons.js.map +1 -1
  67. package/dist/components/pro/Flow/types.d.ts +13 -0
  68. package/dist/components/pro/Flow/types.js.map +1 -1
  69. package/dist/components/pro/Flow/utils/themeColor.d.ts +87 -0
  70. package/dist/components/pro/Flow/utils/themeColor.js +212 -0
  71. package/dist/components/pro/Flow/utils/themeColor.js.map +1 -0
  72. package/dist/contexts/AppContext.d.ts +1 -1
  73. package/dist/contexts/AppContext.js +28 -29
  74. package/dist/contexts/AppContext.js.map +1 -1
  75. package/dist/dishui.css +1 -1
  76. package/dist/favicon.svg +10 -0
  77. package/dist/flow.js +56 -51
  78. package/dist/styles/themeStyles.js +6 -11
  79. package/dist/styles/themeStyles.js.map +1 -1
  80. package/dist/utils/themes.js +3 -23
  81. package/dist/utils/themes.js.map +1 -1
  82. package/package.json +17 -18
@@ -1 +1 @@
1
- {"version":3,"file":"svgIcons.js","names":[],"sources":["../../../../../src/components/pro/Flow/nodes/svgIcons.ts"],"sourcesContent":["/**\n * SVG icon registry for the Flow \"SVG stamp\" nodes.\n *\n * Two icon styles coexist:\n * - 'lang' (language/framework) icons: authentic brand logos from devicon\n * (MIT-licensed, https://devicons.github.io/devicon/) on the 128x128 grid.\n * They are mono silhouettes (`filled`) tinted by the node color, and each\n * declares a `brandColor` used as the default tint — so they come in\n * pre-colored, yet stay fully recolorable (solid or gradient). Detail\n * sub-paths filled pure `#fff` (e.g. Godot's eyes, Vue's inner V) keep\n * their white instead of following the tint.\n * - everything else: stroke-based outline paths (Tabler Icons, MIT-licensed)\n * on the 24x24 grid that inherit their stroke color from the wrapping `<g>`\n * produced by `buildSvgMarkup`. The three EE-symbol icons Tabler lacks\n * (transistor, op-amp, crystal) are hand-drawn in the same outline style.\n *\n * `getSvgIcon(id)` returns the entry; `buildSvgMarkup(id, color, gradient?)`\n * produces a full standalone SVG string (used to rasterize to a PixiJS\n * texture / palette preview).\n */\n\nimport { buildSvgGradientDef } from '../utils/gradient';\nimport type { GradientDirection } from '../types';\n\nexport type SvgIconCategory =\n | 'lang'\n | 'comm'\n | 'logistics'\n | 'factory'\n | 'arrow'\n | 'c4'\n | 'circuit'\n | 'player';\n\nexport interface SvgIconDef {\n id: string;\n /** Display label (also the default node label). */\n label: string;\n category: SvgIconCategory;\n /** Inner markup of the icon SVG (paths, no stroke/fill color attrs). */\n body: string;\n /** Default aspect ratio hint (w/h); defaults to 1. */\n ratio?: number;\n /** SVG viewBox; defaults to '0 0 24 24' (Tabler outline grid). */\n viewBox?: string;\n /**\n * Official brand color used as the default tint when a node is created.\n * The icon still recolors freely (solid or gradient) afterwards.\n */\n brandColor?: string;\n /**\n * When true, the body is rendered as a filled silhouette (brand logos from\n * devicon). Otherwise it is stroked as an outline (Tabler-style icons).\n */\n filled?: boolean;\n /**\n * When true, the body already carries its own per-path colors (multi-color\n * brand logos from devicon). It is rendered verbatim and does NOT follow the\n * per-node color; a default fill is only applied to paths lacking one.\n */\n brand?: boolean;\n}\n\nexport const SVG_ICON_CATEGORIES: { id: SvgIconCategory; label: string }[] = [\n { id: 'lang', label: '语言/框架' },\n { id: 'comm', label: '通讯' },\n { id: 'logistics', label: '物流' },\n { id: 'factory', label: '工厂' },\n { id: 'arrow', label: '箭头' },\n { id: 'c4', label: 'C4 架构' },\n { id: 'circuit', label: '电路' },\n { id: 'player', label: '播放器' },\n];\n\n/* eslint-disable max-len */\nconst ICONS: SvgIconDef[] = [\n /* ─── Languages / frameworks (devicon, MIT) ─────────────────── */\n { id: 'python', label: 'Python', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#FFD845', body: `<path d=\"M49.33 62h29.159C86.606 62 93 55.132 93 46.981V19.183c0-7.912-6.632-13.856-14.555-15.176-5.014-.835-10.195-1.215-15.187-1.191-4.99.023-9.612.448-13.805 1.191C37.098 6.188 35 10.758 35 19.183V30h29v4H23.776c-8.484 0-15.914 5.108-18.237 14.811-2.681 11.12-2.8 17.919 0 29.53C7.614 86.983 12.569 93 21.054 93H31V79.952C31 70.315 39.428 62 49.33 62zm-1.838-39.11c-3.026 0-5.478-2.479-5.478-5.545 0-3.079 2.451-5.581 5.478-5.581 3.015 0 5.479 2.502 5.479 5.581-.001 3.066-2.465 5.545-5.479 5.545zm74.789 25.921C120.183 40.363 116.178 34 107.682 34H97v12.981C97 57.031 88.206 65 78.489 65H49.33C41.342 65 35 72.326 35 80.326v27.8c0 7.91 6.745 12.564 14.462 14.834 9.242 2.717 17.994 3.208 29.051 0C85.862 120.831 93 116.549 93 108.126V97H64v-4h43.682c8.484 0 11.647-5.776 14.599-14.66 3.047-9.145 2.916-17.799 0-29.529zm-41.955 55.606c3.027 0 5.479 2.479 5.479 5.547 0 3.076-2.451 5.579-5.479 5.579-3.015 0-5.478-2.502-5.478-5.579 0-3.068 2.463-5.547 5.478-5.547z\"/>` },\n { id: 'fastapi', label: 'FastAPI', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#049688', body: `<path d=\"M56.813 127.586c-1.903-.227-3.899-.52-4.434-.652a48.078 48.078 0 00-2.375-.5 36.042 36.042 0 01-2.703-.633c-4.145-1.188-4.442-1.285-7.567-2.563-2.875-1.172-8.172-3.91-9.984-5.156-.496-.344-.96-.621-1.031-.621-.07 0-1.23-.816-2.578-1.813-8.57-6.343-15.004-14.043-19.653-23.527-.8-1.629-1.453-3.074-1.453-3.21 0-.134-.144-.505-.32-.817-.363-.649-.88-2.047-1.297-3.492a20.047 20.047 0 00-.625-1.813c-.195-.46-.352-1.02-.352-1.246 0-.227-.195-.965-.433-1.645-.238-.675-.43-1.472-.43-1.77 0-.296-.187-1.32-.418-2.276C.598 73.492 0 67.379 0 63.953c0-3.422.598-9.535 1.16-11.894.23-.957.418-2 .418-2.32 0-.321.145-.95.32-1.4.18-.448.41-1.253.516-1.788.11-.535.36-1.457.563-2.055l.59-1.726c.433-1.293.835-2.387 1.027-2.813.11-.238.539-1.21.957-2.16.676-1.535 2.125-4.43 2.972-5.945.309-.555.426-.739 2.098-3.352 2.649-4.148 7.176-9.309 11.39-12.988 1.485-1.297 6.446-5.063 6.669-5.063.062 0 .53-.281 1.043-.625 1.347-.902 2.668-1.668 4.39-2.531a53.06 53.06 0 001.836-.953c.285-.164.82-.41 3.567-1.64.605-.27 1.257-.516 3.136-1.173.414-.144 1.246-.449 1.84-.672.598-.222 1.301-.406 1.563-.406.258 0 .937-.18 1.508-.402.57-.223 1.605-.477 2.304-.563.696-.082 1.621-.277 2.055-.43.43-.148 1.61-.34 2.621-.425a72.572 72.572 0 003.941-.465c2.688-.394 8.532-.394 11.192 0a75.02 75.02 0 003.781.445c.953.079 2.168.278 2.703.442.535.16 1.461.36 2.055.433.594.079 1.594.325 2.222.551.63.23 1.344.414 1.59.414s.754.137 1.125.309c.375.168 1.168.449 1.766.625.594.18 1.613.535 2.27.797.652.261 1.527.605 1.945.761.77.29 6.46 3.137 7.234 3.622 6.281 3.917 9.512 6.476 13.856 10.964 5.238 5.414 8.715 10.57 12.254 18.16.25.536.632 1.329.851 1.758.215.434.395.942.395 1.13 0 .19.18.76.402 1.269.602 1.383 1.117 2.957 1.36 4.16.12.59.343 1.32.495 1.621.153.3.332 1.063.403 1.688.07.624.277 1.648.453 2.269 1.02 3.531 1.527 13.934.91 18.535-.183 1.367-.39 3.02-.46 3.672-.118 1.117-.708 4.004-1.212 5.945l-.52 2.055c-.98 3.957-3.402 9.594-6.359 14.809-1.172 2.07-5.101 7.668-5.843 8.324-.067.058-.399.45-.735.863-.336.418-1.414 1.586-2.39 2.594-4.301 4.441-7.77 7.187-13.86 10.969-.722.449-6.847 3.441-7.992 3.906-.594.238-1.586.64-2.203.89-.613.247-1.297.454-1.512.458-.215.003-.781.195-1.258.425-.476.23-1.082.422-1.351.426-.266.004-1.043.192-1.727.418-.683.23-1.633.477-2.11.55-.476.075-1.495.278-2.269.45-.773.172-3.11.508-5.187.746a59.06 59.06 0 01-13.945-.031zm4.703-12.5c.3-.234.609-.7.691-1.027.18-.723 29.234-58.97 29.781-59.7.461-.617.504-1.605.082-1.953-.222-.187-3.004-.246-10.43-.234-5.57.012-10.253.016-10.406.012-.226-.008-.273-3.73-.25-19.672.016-10.817-.035-19.766-.113-19.89-.078-.126-.383-.227-.68-.227-.418 0-.613.18-.87.808-.485 1.168-1.825 3.82-8.348 16.485a3554.569 3554.569 0 00-4.055 7.89c-1.156 2.262-2.98 5.813-4.047 7.89a8751.248 8751.248 0 00-8.598 16.759c-4.933 9.636-5.53 10.785-5.742 11.039-.41.496-.633 1.64-.402 2.07.21.394.629.41 11.043.394 5.953-.007 10.863.024 10.914.07.137.141.086 37.31-.055 38.196-.093.582-.031.89.235 1.156.46.461.586.457 1.25-.066zm0 0\"/>` },\n { id: 'flask', label: 'Flask', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#000000', body: `<path d=\"M44.44 100.63c-4.23-3.33-8.74-6.52-11.83-11.01-6.49-7.92-11.49-17.1-14.9-26.74-2.07-6.27-2.77-12.99-5.44-19.02-2.78-4.38.48-9.16 5.27-10.55 2.13-.41 5.89-2.43 1.36-.98-4.06 2.98-4.45-2.71-.29-3.07 2.84-.38 3.89-2.7 2.92-4.8-3.05-1.99 7.4-4.18 2.14-7.15-5.48-5.91 7.66-7.05 4.42-.33-.77 5.16 9.18-.95 6.87 5.01 2.35 2.86 8.8.65 8.63 4.67 3.42.24 4.6 3.11 7.8 3.33 3.33 1.5 9.36 2.69 10.49 6.44-3.3 2.61-10.95-5.4-11.31 1.84 1 10.69.74 21.7 4.65 31.88 1.85 6.16 6.33 11.01 10.38 15.81 3.88 4.7 9.12 8.01 14.48 10.8 4.69 2.21 9.75 3.68 14.87 4.6 2.07-1.59 5.74-7.48 8.97-5 .16 2.8-6.42 5.84-.31 5.54 3.59-1.08 6.08 2.77 9.04-.71 2.72 3.23 11.32-2.06 9.38 4.53-2.62 1.69-6.44.67-9.07 3-4.33-2.16-7.77 1.93-12.56 1.42-5.32.95-10.73 1.34-16.13 1.34-8.85-.7-17.89-.99-26.3-4.07-4.74-1.38-9.37-4.08-13.53-6.78zm7.47 3.24c4.63 2 9.16 4.11 14.23 4.75 8.05 1.12 16.37 2.84 24.45 1.27-3.66-1.65-7.44.64-11.08-1.18-4.37.94-9.06-.24-13.5-.82-5.05-2.25-10.5-3.8-15.23-6.72-5.91-2.16 3.06 2.77 4.65 3.17 3.69 2.1-4.06-1.08-5.16-1.95-3.09-1.74-3.49-1.37-.31.39.64.37 1.28.77 1.95 1.09zm-8.81-6.23c4.49 1.66-.02-3.16-2.07-2.88-.91-1.58-3.48-2.58-1.67-3.43-3.26 1.13-3.42-4.3-4.95-3.53-3.45-1.09-1.34-4.95-5.45-7.32-.37-2.5-4.08-4.66-5.26-8.43-.52-1.93-4.19-7.46-1.94-2.31 1.92 4.96 5.29 9.21 8.1 13.45 2.18 4.04 4.76 8.26 8.72 10.78 1.34 1.3 2.63 3.27 4.52 3.67zM30.17 83.45c.16-.68.82 1.46 0 0zm18.3 16.18c1-.44-1.43-.56 0 0zm2.44.89c-.25-1.23-1.11.69 0 0zm3.05 1.27c1.45-1.38-2.24-.87 0 0zm5.22 2.91c.89-1.3-2.82-.49 0 0zm-10.03-6.99c2.25-1.46-2.91-.02 0 0zm2.29 1.14c-.07-.77-.82.34 0 0zm11.43 7.13c1.84 1.16 10.73 2.54 5.16.48-.93.2-10.33-2.66-5.16-.48zM44.72 91.85c-.18-.77-2.85-.85 0 0zm5.32 3.1c1.39-.96-2.87-.74 0 0zm4.48 2.75c1.98-.75-3.23-.75 0 0zm-11.97-8.21c2.16 1.65 8.7.21 3.3-.99-2.45-1.31-7.99-2.2-4.22.79l.92.2zm15 9.16c.9-1.53-3.77-.88 0 0zm-4.56-3.63c5.27 1.49-4.43-3.34-1.3-.55l.7.32.6.23zm9.14 5.28c4.99.05-4.51-.68 0 0zm-21.5-13.7c-.19-.93-1.23.08 0 0zm29.94 18.44c.14-1.68-1.62 1.25 0 0zM49.15 91.82c-.3-.88-1.56-.04 0 0zm-8.04-5.8c2.86-.17-3.93-1.26 0 0zm-9.54-6.16c-.36-1.38-3.12-2.47 0 0zM56.6 95.74c-.52-.6-.25.13 0 0zm15.58 9.56c-.05-.91-.85.35 0 0zM55.22 94.32c.28-1.18-2.44-.36 0 0zm-11.6-7.36c2.13-.23-3.42-1.44 0 0zm19.63 12.2c3.32-1.32-3.24-.64 0 0zm-10.21-6.93c3.83.49-4.56-2.61-.84-.28l.84.28zm13.31 8.19c3.58-2.14 2.4 5.01 6.07.6 3.62-2.64-3.13 3.27 1.33.47 3.23-2.16 7.99 1.02 11 2.06 2.16-.11 4.27 1.87 6.49.67 4.27-1.15-8.36-1.71-5.05-3.75-3.91 1.14-6.8-1.36-8.72-3.86-4.39-1.01-9.46-3.25-11.65-7.14-.89-1.46 1.29.21-.77-2.18-2.64-2.35-3.96-5.02-5.73-7.88-2.12-1.13-2.37-4.46-2.58-.11.02-2.74-2.56-4.59-3.19-3.82-.01-2.64 2.76-1.32.82-3.27-.42-2.74-1.79-5.59-2.2-8.68-.64-1.49-.09-4.68-2.19-1.31-.76 3.57-.25-4.38.94-1.76 1.56-2.67-.56-2.36-.65-1.99 1.02-2.26.64-5.46-.27-4.24.54-2.39.86-8.8-.81-7.66 1.01-2.5 1.92-11.44-2.47-8.03-1.78.03-4.85.64-6.31 1.37 4.56 2.51-.46.91-2.32.51-.24 2.33-2.08 1.32-4.38 1.34 3.67.45-1.79 3.75-3.89 2.47-2.74 1.31 2.36 4.57.05 5.58.28 1.52-4.19-.55-3.84 2.96-2.65-1.12-.36 4.16.96 2.38 4.51 1.22 3.18 4.01 3.29 6.65-.74 1.54-3.63-3.62-.64-3.38-2.36-3.83-2.61-1.38-4.56.39-.45.13 4.99 2.53 1.57 3.72 3.01.47 3.1 3.1 3.71 4.76 1.81 1.88 1.44-2.08 3.6.18-1.37-2.02-7.25-5.68-2.52-4.51-.03-2-.03-.86-3.67.6-3.63 1.44-2.61-1.51 6.42 1.73 3.11.9-.39 1.12-2.6 2.73.21 2.34 2.3.85 3.97-2.46 1.86.59 2.01 4.42 2.72 3.7 5.86.76 2.76 1.83 1.74 2.76 1.58.73 2.68 1.14.71 1.18-.57 3.34.72 2.56 2.69 3.6 4.07 2.3 1.04-3.29-7.04.66-2.43 4.16 3.75 1.56 5.32-2.17 4.72 2.36-.19 3.12 3.19 6.07 3.07 2.69 1.28 4.52 6.2-.12 4.15-1.61-1.45-7.31-3.24-2.65-.48 4.3 1.99 7.71 3.18 11.86 5.68 2.96 2.12 4.25 4.54 5.37 5.02-2.49 1.19-7.51-.95-3.78-1.61-2.33-.42-4.94-1.6-2.71 1.3 1.89 1.58 6.71 1.42 7.58 1.59-.73 1.61-1.99 1.74.03 1.86-2.25 1.22.72 1.41.93 2.1zm-4.6-13c-1.37-1.43-1.72-4.11-.24-1.78.75.3 2.43 4.38.24 1.78zm14.99 9.52c.85-.06.02.65 0 0zmM59.59 83.91c-.06-2.17.49 1.67 0 0zM58.1 81.9c-1.73-3.32 2.17.95 0 0zM40.04 69.44c1.01-.27.5 1.73 0 0zm14.37 7.79c.62-2.33.73 1.96 0 0zm-10.15-7.06c-.71-1.29 1.5 1.21 0 0zm8.71 2.79c-1.63-3.65 1.16-2 .36.6l-.36-.6zM37.95 62.95c-.73-1.2-1.93-4.72-1.55-5.79.35 1.75 3.72 7.53 1.65 2.39-2.28-4.3 2.73 1.4 3.25 2.47.24 1.07-1.41-.29-.29 2.21-2.04-2.85-1.2 1.58-3.06-1.28zm-4.64-3.2c.19-2.79 1.06 1.91 0 0zm2.08.72c1-2.11 1.69 2.93 0 0zm-5.02-3.89c-1.73-1.72-2.98-3.3.08-1.07 1.18.05-2.62-3.6.28-1.16 3.06.56 1.51 5.01-.36 2.23zm2.64-.07c1-.99.53.98 0 0zm1.62.52c-1.52-2.85 1.85 1.2 0 0zm-3.22-3.08c-5.02-4.47 6.31 2.34.82.83l-.82-.83zm14.39 8.36c-2.18-1.3-.58-9.18.16-3.79 2.11-.68-.12 2.78 1.46 2.75-.24 2.18-.95 2.97-1.62 1.04zm5.33 3.15c.21-2.38.45 1.62 0 0zm-.93-.92c.24-1.01.03 1.2 0 0zM32.39 52.48c-3.23-4.45 9.38 4.51 2.07 1.13-.77-.21-1.69-.28-2.07-1.13zm10.26 5.43c-.31-3.75.68.62 0 0zm7.78 5c.6-2.14.05 1.41 0 0zM32.89 50.78c1.92-.41 7.95 3.37 2.41 1.08-.62-.69-1.93-.38-2.41-1.08zm16.47 8.21c.2-3.84 1.15-2.29.01.55l-.01-.55zm-15.05-9.55c.78-1.15-2.08-5.18.41-1.45 1.08.85 3.11 1.43 1.31 1.79 2.84 2.5-.68.68-1.72-.34zm14.24 8.35c.54-4.37.47 2.56 0 0zM32.68 45.41c.6-.26.32.79 0 0zm3.71 2.21c.96-2.01 1.77 2.23 0 0zm10.47 5.82c0-.77.2 1.12 0 0zm-.6-1.34c-1.45-3.59 1.35 1.9 0 0zm-.89-2.35c-.25-1.48.83 1.86 0 0zm1.45-2.36c-1-1.76 1.26-7.75 1.51-4.03-1.05 2.89-.3 4.51.43.63 1.36-3.06-.29 6.02-1.94 3.4zm1.49-8.91c.44-.53.1.65 0 0zM45.82 87.6c-.59-.52.07.33 0 0zm5.13 2.6c2.86.74 2.84-.44.26-.79-1.39-1.29-5.77-2.66-1.85-.16.27.65 1.09.63 1.59.95zm-10.14-6.74c1.57 1.18 5.93 3.32 2.24.45 1.24-1.44-2.38-2.21-1.18-3.18-3.06-1.87-2.41-1.7-.27-1.64-3.67-1.64.53-1.52.33-2.36-1.42-.28-7.03-2.5-3.73.18-3.36-1.71-.8.64-1.82.39-3.44-.94 3.06 2.62-.54 1.73 1.97 1.56 5.3 4 .83 1.65-.57.85 3.21 2.14 4.14 2.78zm5.37 3.09c6.53 2.1-3.2-2.58 0 0zm27.5 16.65c.08-1.3-.9 1.11 0 0zm2.82 1.19c1.51-1.46.06 2.33 2.5-.36.03-1.92-.07-3.06-2.8-.72-.75.42-1.09 2.19.3 1.08zM31.65 76.22c-.47-1.82-3.25-1.81 0 0zm3.01 1.98c-1.12-1.86-4-1.68 0 0zm17.17 10.35c1.68 1.49 7.7 1.09 2.03.18-.83-1.24-5.32-.94-2.03-.18zm23.6 14.57c2.57-2.16-2.5.97 0 0zm5.36 3.69c.02-.69-1.11.3 0 0zm.01-.97c2.86-3.03-2.77.18 0 0zM24.22 70.01c-2.43-3.47-1.51-5.03-3.86-7.87-.45-2.17-4.03-7.09-1.85-1.88 1.99 3.05 2.58 7.77 5.71 9.75zm55.68 34.87c5.26-3.4-2.15-1.48 0 0zm4.01 1.57c2.64-2.26-1.66-.47 0 0zM30.75 72.38c.76-1.12-1.94-.14 0 0zm52.33 32.99c2.55-1.64-.59-1.39-.46.15l.46-.15zM48.5 83.58c-.09-1.11-1.35.09 0 0zm2.14 1.23c-.69-1.38-1.05.21 0 0zm36.53 21.67c3.27-2.36-1.98-.45-.68.45l.68-.45zm-1.26-.6c2.67-2.23-2.8.99 0 0zm6.39 4.25c1.79-1.19-2.17-.38 0 0zM32.39 71.57c2.39.54 9.56 5.89 5.33.37-2.17-.64-.87-5.94-3.08-5 1.48 2.48 1.22 3.53-1.9 1.97-3.91-1.91-2.2.94-1.43 1.73-1.04.25 1.39.91 1.08.93zm-10.9-8.61c.43-1.77-3.95-9.75-2.07-4 .68 1.21.61 3.49 2.07 4zM41.5 75.3c-1.23-1.03-.06-.15 0 0zm3.03.71c0-1.88-3.35-.77 0 0zm26.3 16.57c-.5-1.28-1.98-.02 0 0zm1.26.93c-.18-.72-.72.14 0 0zm10.43 6.56c1-.74-1.25-.09 0 0zM26.93 64.35c2.87-1.11-3.07-.79 0 0zm41.59 26.2c-.04-1.86-1.83.46 0 0zM25.8 61.71c1.84-.62-1.71-.41 0 0zm5.34 2.59c-.03-.61-.56.23 0 0zm65.22 39.99c2.37-.48 7.77 1.21 8.64-.63-2.88-.07-9.95-2.03-10.28.46l.63.1 1.01.07zM32.84 64.73c.05-1.88-1.46-.07 0 0zm-14.05-9.75c-.64-3.58-2.43-.54 0 0zm3.35.84c.04-1.15-3.07-1.03 0 0zm1.91.94c-.55-.44-.43.57 0 0zm12.06 7.73c.57-.52-1.35-.38 0 0zm-13.33-9.85c-.33-2.71-3.88-.4 0 0zm-6.87-4.46c-.1-1.25-.67.47 0 0zm1.02-.77c-.17-1.48-.88.19 0 0zm5.65 3.37c2.39-.94-4.35-1.94-.49-.18l.49.18zm75.59 46.69c1.53-1.4-1.94-.43 0 0zm9.13 4.74c.61-1.81-1.54.23 0 0zM23.15 49.82c.26-1.75-1.89.35 0 0zm-8.03-5.38c-.43-2.47-.37-6.82 3.76-5.35-5.51 1.1 3.82 6.85 2.64 2.31 2.32.11 4.53-1.37 3.32.88 4.57-.5 7.73-4.46 12.14-3.91 3.44-.46 7.19-.8 10.89-2.18 3.04-.22 5.97-3.5 4.31-5.44-4.15-.35-8.5.17-13.08 1.08-5.08 1.06-9.7 3.06-14.83 3.93-5 .67 1 1.85-.43 2.11-2.61.9 3.11 1.52-.34 2.47-2.13-.41-4.35-1.14-3.44-3.38-4.79.62-9 2.61-5.21 7.48h.27zm11.54-5.88c1.12-4.14 6.01 3.4 1.84.55-.5-.38-1.32-.68-1.84-.55zm.22-2.01c1.62-1.2.86.68 0 0zm2.06.04c.15-1.9 4.71 1.01.75.68l-.75-.68zm2.81-1.14c1.03-1.2.3 1.07 0 0zm.72-.48c1.71-2.06 9.69-1.31 3.85-.2-1.56-1.18-2.76.7-3.85.2zm10.42-1.6c-.26-5.62 5.18 1.99 0 0zm2.96-.02c1.08-2.83 4.2-1.14.5-.57.08.3-.11 1.46-.5.57zM21.99 48.37c3.23-1.98-3.43-1.72 0 0zm2.39.66c1.13-1.2-2.46-.49 0 0zm-7.04-4.99c1.85-1.42-2.18-.54 0 0zm95.35 59.65c.05-1.65-1.41.74 0 0zM103 97.08c.28-1.9-1.24.16 0 0zm12.36 7.25c2.58.01 7.82-.8 2.2-.8-.88.13-5.13.11-2.2.8zM26.48 47.87c2.09-.14 3.27-2.3-.41-2.18-5.69-.59 5.02 1.95-.73 1.22-.77.51 1.09 1.1 1.14.96zm1.84.93c-.22-1.34-.65.71 0 0zm2.18-5.82c.9-1.12-1.26-.3 0 0zm-6.95-11.6c3.73-1.27 8.82-2.69 10.58.62-1.79-2.15-.72-4.28.97-1.12 2.39 3.19 3.59-1.45 2.03-2.52 1.77 2.2 3.79 3.24 1.19.14 2.83-3.4-5.66.45-7.59.41-.92.41-9.58 2.2-7.18 2.47zm2.19-4.18c2.13-1.6 7.35.96 4-1.59-.33-.3-7.35 1.93-4 1.59zm7.75.32c2.49.06-1.07-3.34 1.89-1.8-.49-1.59-3.45-1.89-4.9-2.52-.82 1.45 1.66 4.34 3.01 4.32zm-6.39-7.04c.86-1.16-1.51.6 0 0zm3.16.76c4.01-.53-1.02-1.72-.81-.04l.81.04zm-5.91-4.62c-2.82-3.69 5.31.62 2.44-3.24-2.41-1.92-4.73 2.16-2.44 3.24zm36.21 19.5c1.29-2.29-5.34-3.09-.87-.81.42.14.32.97.87.81z\"/>` },\n { id: 'dotnetcore', label: '.NET Core', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#623697', body: `<g><path d=\"M61.195 0h4.953c12.918.535 25.688 4.89 36.043 12.676 9.809 7.289 17.473 17.437 21.727 28.906 2.441 6.387 3.664 13.18 4.082 19.992v4.211c-.414 11.293-3.664 22.52-9.73 32.082-6.801 10.895-16.922 19.73-28.727 24.828A64.399 64.399 0 0165.082 128h-2.144c-11.735-.191-23.41-3.66-33.297-9.992-11.196-7.113-20.114-17.785-25.028-30.117C1.891 81.19.441 74.02 0 66.812v-4.957c.504-14.39 5.953-28.609 15.41-39.496C23.168 13.31 33.5 6.48 44.887 2.937 50.172 1.27 55.676.41 61.195 0M25.191 37.523c-.03 12.153-.011 24.305-.011 36.454 1.43.011 2.86.011 4.293.011-.075-10.433.101-20.863-.106-31.293.48.907.918 1.84 1.465 2.707C37.035 54.91 43.105 64.5 49.309 74c1.738-.023 3.476-.023 5.214.004-.003-12.16-.007-24.32.004-36.48a308.076 308.076 0 00-4.25-.012c.075 10.32-.136 20.64.125 30.949-6.507-10.352-13.101-20.645-19.695-30.945a370.85 370.85 0 00-5.516.007m38.844-.011c-.129 12.16-.004 24.32-.047 36.476 6.469-.015 12.938.024 19.41-.02a83.36 83.36 0 01.024-3.952c-5.012-.016-10.027.007-15.043-.02-.074-4.21-.004-8.426-.04-12.637 4.395-.078 8.79.012 13.18-.047-.011-1.277-.011-2.554-.019-3.832-4.387.141-8.773-.054-13.164.012.012-4.023.02-8.05.02-12.078 4.699 0 9.398-.02 14.093.012-.008-1.301 0-2.606.016-3.906-6.145-.016-12.29-.008-18.43-.008m22.602.054c.004 1.266.004 2.528.008 3.79 3.488-.04 6.972.109 10.46.035-.023 10.863.004 21.718-.011 32.574 1.46.043 2.93.035 4.39-.09-.12-5.992.118-11.988-.156-17.977.067-2.699-.07-5.394.117-8.09.106-2.14-.277-4.277-.035-6.417 3.516.047 7.035.015 10.55.015a59.774 59.774 0 01.075-3.832c-8.469-.105-16.937-.094-25.398-.008M13.55 69.094c-1.977.91-2.106 4.023-.149 5.027 1.72 1.18 4.305-.371 4.227-2.41.133-2.004-2.29-3.688-4.078-2.617m29.23 15.289c-4.277 3.469-4.226 11.195.5 14.25 2.668 1.695 6.102 1.344 8.922.215.012-.621.027-1.239.05-1.86-2.671 1.395-6.41 1.68-8.675-.61-2.965-3.237-2.297-9.269 1.613-11.476 2.211-1.164 4.907-.824 7.086.239-.007-.66-.004-1.32 0-1.98-3.097-1.099-6.922-1.04-9.496 1.222m17.207 2.71c-1.89.22-3.758 1.22-4.633 2.966-1.253 2.496-1.109 5.867.864 7.96 2.035 2.297 5.945 2.32 8.18.297 2.425-2.308 2.699-6.468.757-9.164-1.148-1.629-3.273-2.183-5.168-2.058m17.887 2.722c-1.66 2.883-1.332 7.25 1.598 9.211 2.183 1.22 4.933.832 7.074-.308-.004-.617.004-1.235.031-1.848-1.687 1.07-3.937 1.856-5.812.777-1.309-.722-1.704-2.257-1.914-3.625 2.875-.039 5.746-.082 8.625-.074-.075-1.828-.118-3.894-1.45-5.308-2.199-2.43-6.644-1.657-8.152 1.175m-8.414-2.336v12.008c.652 0 1.312 0 1.973.004.023-2.195-.04-4.394.023-6.594.016-1.27.527-2.558 1.484-3.414.801-.605 1.883-.27 2.801-.246-.012-.636-.02-1.27-.023-1.902-1.793-.398-3.336.652-4.242 2.117-.02-.633-.04-1.266-.051-1.894-.656-.024-1.313-.051-1.965-.079zm0 0\"/><path d=\"M58.758 89.223c1.652-.805 4.023-.41 4.945 1.3 1.05 1.887 1.027 4.383-.137 6.211-1.52 2.286-5.527 1.786-6.523-.742-1.008-2.258-.617-5.484 1.715-6.77zm0 0M79.04 92.414c.046-1.574 1.144-3.137 2.726-3.48.976-.164 2.097.007 2.773.793.672.714.813 1.714.98 2.64-2.16.012-4.32-.031-6.48.047zm0 0\"/></g>` },\n { id: 'java', label: 'Java', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#EA2D2E', body: `<path d=\"M47.617 98.12c-19.192 5.362 11.677 16.439 36.115 5.969-4.003-1.556-6.874-3.351-6.874-3.351-10.897 2.06-15.952 2.222-25.844 1.092-8.164-.935-3.397-3.71-3.397-3.71zm33.189-10.46c-14.444 2.779-22.787 2.69-33.354 1.6-8.171-.845-2.822-4.805-2.822-4.805-21.137 7.016 11.767 14.977 41.309 6.336-3.14-1.106-5.133-3.131-5.133-3.131zm11.319-60.575c.001 0-42.731 10.669-22.323 34.187 6.024 6.935-1.58 13.17-1.58 13.17s15.289-7.891 8.269-17.777c-6.559-9.215-11.587-13.793 15.634-29.58zm9.998 81.144s3.529 2.91-3.888 5.159c-14.102 4.272-58.706 5.56-71.095.171-4.45-1.938 3.899-4.625 6.526-5.192 2.739-.593 4.303-.485 4.303-.485-4.952-3.487-32.013 6.85-13.742 9.815 49.821 8.076 90.817-3.637 77.896-9.468zM85 77.896c2.395-1.634 5.703-3.053 5.703-3.053s-9.424 1.685-18.813 2.474c-11.494.964-23.823 1.154-30.012.326-14.652-1.959 8.033-7.348 8.033-7.348s-8.812-.596-19.644 4.644C17.455 81.134 61.958 83.958 85 77.896zm5.609 15.145c-.108.29-.468.616-.468.616 31.273-8.221 19.775-28.979 4.822-23.725-1.312.464-2 1.543-2 1.543s.829-.334 2.678-.72c7.559-1.575 18.389 10.119-5.032 22.286zM64.181 70.069c-4.614-10.429-20.26-19.553.007-35.559C89.459 14.563 76.492 1.587 76.492 1.587c5.23 20.608-18.451 26.833-26.999 39.667-5.821 8.745 2.857 18.142 14.688 28.815zm27.274 51.748c-19.187 3.612-42.854 3.191-56.887.874 0 0 2.874 2.38 17.646 3.331 22.476 1.437 57-.8 57.816-11.436.001 0-1.57 4.032-18.575 7.231z\"/>` },\n { id: 'spring', label: 'Spring', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#77BC1F', body: `<path d=\"M116.452 6.643a59.104 59.104 0 01-6.837 12.136A64.249 64.249 0 0064.205-.026C28.984-.026 0 28.982 0 64.242a64.316 64.316 0 0019.945 46.562l2.368 2.1a64.22 64.22 0 0041.358 15.122c33.487 0 61.637-26.24 64.021-59.683 1.751-16.371-3.051-37.077-11.24-61.7zM29.067 111.17a5.5 5.5 0 01-4.269 2.034c-3.018 0-5.487-2.484-5.487-5.502 0-3.017 2.485-5.501 5.487-5.501 1.25 0 2.485.433 3.452 1.234 2.351 1.9 2.718 5.384.817 7.735zm87.119-19.238c-15.843 21.122-49.68 14.003-71.376 15.02 0 0-3.852.234-7.721.867 0 0 1.45-.617 3.335-1.334 15.226-5.301 22.43-6.335 31.685-11.086 17.427-8.869 34.654-28.274 38.24-48.463-6.637 19.422-26.75 36.11-45.077 42.895-12.557 4.635-35.238 9.136-35.238 9.136l-.917-.484c-15.442-7.518-15.91-40.977 12.157-51.78 12.291-4.735 24.048-2.134 37.323-5.302 14.175-3.367 30.568-14.004 37.238-27.874 7.471 22.19 16.46 56.932.35 78.405z\"/>` },\n { id: 'php', label: 'PHP', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#777BB4', body: `<path d=\"M64 30.332C28.654 30.332 0 45.407 0 64s28.654 33.668 64 33.668c35.345 0 64-15.075 64-33.668S99.346 30.332 64 30.332zm-5.982 9.81h7.293v.003l-1.745 8.968h6.496c4.087 0 6.908.714 8.458 2.139 1.553 1.427 2.017 3.737 1.398 6.93l-3.053 15.7h-7.408l2.902-14.929c.33-1.698.208-2.855-.365-3.473-.573-.617-1.793-.925-3.658-.925h-5.828L58.752 73.88h-7.291l6.557-33.738zM26.73 49.114h14.133c4.252 0 7.355 1.116 9.305 3.348 1.95 2.232 2.536 5.346 1.758 9.346-.32 1.649-.863 3.154-1.625 4.52-.763 1.364-1.76 2.613-2.99 3.745-1.468 1.373-3.098 2.353-4.891 2.936-1.794.585-4.08.875-6.858.875h-6.294l-1.745 8.97h-7.35l6.557-33.74zm57.366 0h14.13c4.252 0 7.353 1.116 9.303 3.348h.002c1.95 2.232 2.538 5.346 1.76 9.346-.32 1.649-.861 3.154-1.623 4.52-.763 1.364-1.76 2.613-2.992 3.745-1.467 1.373-3.098 2.353-4.893 2.936-1.794.585-4.077.875-6.855.875h-6.295l-1.744 8.97h-7.35l6.557-33.74zm-51.051 5.325-2.742 14.12h4.468c2.963 0 5.172-.556 6.622-1.673 1.45-1.116 2.428-2.981 2.937-5.592.485-2.507.264-4.279-.666-5.309-.93-1.032-2.79-1.547-5.584-1.547h-5.035zm57.363 0-2.744 14.12h4.47c2.965 0 5.17-.556 6.622-1.673 1.449-1.116 2.427-2.981 2.935-5.592.487-2.507.266-4.279-.664-5.309-.93-1.032-2.792-1.547-5.584-1.547h-5.035z\"/>` },\n { id: 'laravel', label: 'Laravel', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#F0513F', body: `<path d=\"M27.271.11c-.2.078-5.82 3.28-12.487 7.112-8.078 4.644-12.227 7.09-12.449 7.32-.19.225-.34.482-.438.76-.167.564-.179 82.985-.01 83.578.061.23.26.568.44.754.436.46 48.664 28.19 49.25 28.324.272.065.577.054.88-.03.658-.165 48.76-27.834 49.188-28.286.175-.195.375-.532.44-.761.084-.273.115-4.58.115-13.655v-13.26l11.726-6.735c11.056-6.357 11.733-6.755 12.017-7.191l.29-.47V43.287c0-15.548.03-14.673-.585-15.235-.165-.146-5.798-3.433-12.53-7.31L100.89 13.71h-1.359l-11.963 6.87c-6.586 3.788-12.184 7.027-12.457 7.203-.272.18-.597.512-.73.753l-.242.417-.054 13.455-.048 13.46-9.879 5.69c-5.434 3.124-9.957 5.71-10.053 5.734-.175.049-.187-1.232-.187-25.966V15.293l-.26-.447c-.326-.545 1.136.324-13.544-8.114C27.803-.348 28.098-.2 27.27.11zm11.317 10.307c5.15 2.955 9.364 5.4 9.364 5.43 0 .031-4.516 2.641-10.035 5.813l-10.041 5.765-10.023-5.764c-5.507-3.173-10.02-5.783-10.02-5.814 0-.03 4.505-2.64 10.013-5.805l9.999-5.752.69.376c3.357 1.907 6.708 3.824 10.053 5.751zm71.668 13.261c5.422 3.122 9.908 5.702 9.95 5.744.114.103-19.774 11.535-20.046 11.523-.272-.008-19.915-11.335-19.907-11.473.01-.157 19.773-11.527 19.973-11.496.091.022 4.607 2.59 10.03 5.702zM16.3 25.328l9.558 5.503.055 27.247.05 27.252.233.368c.122.194.352.459.52.581.158.115 5.477 3.146 11.818 6.724l11.52 6.506v11.527c0 6.326-.043 11.516-.097 11.516-.041 0-10-5.699-22.124-12.676L5.793 97.201l-.03-38.966-.019-38.954.49.271c.283.15 4.807 2.748 10.065 5.775zm33.754 19.18v25.109l-.387.253c-.525.332-19.667 11.335-19.732 11.335-.03 0-.054-11.336-.054-25.193l.012-25.182 10-5.752c5.499-3.165 10.034-5.733 10.088-5.714.039.024.073 11.34.073 25.144zm38.15-5.775 10.023 5.763V55.92c0 10.838-.011 11.42-.176 11.357-.107-.041-4.642-2.64-10.083-5.774l-9.91-5.69v-11.42c0-6.287.032-11.424.062-11.424.043 0 4.577 2.592 10.084 5.764zm34.164 5.587c0 6.254-.042 11.412-.084 11.462-.072.115-19.896 11.538-20.022 11.538-.031 0-.062-5.135-.062-11.423v-11.42l10-5.756c5.507-3.16 10.042-5.752 10.084-5.752.053 0 .084 5.105.084 11.351zM95.993 70.933 52.005 96.04 32.056 84.693S76 59.277 76.176 59.343zm2.215 14.827-.034 11.442-22.028 12.676c-12.12 6.976-22.082 12.675-22.132 12.675-.053 0-.095-4.658-.095-11.516V99.51l22.08-12.592c12.132-6.923 22.101-12.59 22.154-12.602.043 0 .062 5.148.054 11.443z\"/>` },\n { id: 'godot', label: 'Godot', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#478CBF', body: `<path d=\"M114.906 84.145s-.172-1.04-.27-1.028l-18.823 1.817a3.062 3.062 0 00-2.77 2.84l-.516 7.413-14.566 1.04-.988-6.72a3.089 3.089 0 00-3.04-2.62H54.067a3.089 3.089 0 00-3.039 2.62l-.988 6.72-14.566-1.04-.516-7.414a3.058 3.058 0 00-2.77-2.84l-18.835-1.816c-.094-.012-.168 1.028-.266 1.028l-.024 4.074 15.954 2.574.52 7.477a3.084 3.084 0 002.843 2.847l20.059 1.434c.078.004.152.008.226.008a3.087 3.087 0 003.031-2.621l1.02-6.915h14.57l1.02 6.915a3.088 3.088 0 003.254 2.613l20.062-1.434a3.084 3.084 0 002.844-2.847l.52-7.477 15.945-2.586zm0 0\" fill=\"#fff\"/><path d=\"M13.086 53.422v30.723c.059 0 .113.003.168.007L32.09 85.97a2.027 2.027 0 011.828 1.875l.582 8.316 16.426 1.172 1.133-7.672a2.03 2.03 0 012.007-1.734h19.868a2.03 2.03 0 012.007 1.734l1.133 7.672 16.43-1.172.578-8.316a2.027 2.027 0 011.828-1.875l18.828-1.817c.055-.004.11-.007.168-.007V81.69h.008V53.42c2.652-3.335 5.16-7.019 7.086-10.116-2.941-5.008-6.543-9.48-10.395-13.625a101.543 101.543 0 00-10.316 6.004c-1.64-1.633-3.484-2.965-5.3-4.36-1.782-1.43-3.79-2.48-5.696-3.703.566-4.223.848-8.379.96-12.719-4.913-2.476-10.155-4.113-15.456-5.293-2.117 3.559-4.055 7.41-5.738 11.176-2-.332-4.008-.457-6.02-.48V20.3c-.016 0-.027.004-.039.004s-.023-.004-.04-.004v.004c-2.01.023-4.019.148-6.019.48-1.683-3.765-3.62-7.617-5.738-11.176-5.3 1.18-10.543 2.817-15.457 5.293.113 4.34.395 8.496.961 12.72-1.906 1.222-3.914 2.273-5.695 3.702-1.813 1.395-3.66 2.727-5.301 4.36a101.543 101.543 0 00-10.316-6.004C12.543 33.824 8.94 38.297 6 43.305c2.313 3.629 4.793 7.273 7.086 10.117zm0 0\"/><path d=\"M98.008 89.84l-.582 8.36a2.024 2.024 0 01-1.88 1.878l-20.062 1.434c-.046.004-.097.004-.144.004-.996 0-1.86-.73-2.004-1.73l-1.152-7.806H55.816l-1.152 7.805a2.026 2.026 0 01-2.148 1.727l-20.063-1.434a2.024 2.024 0 01-1.879-1.879l-.582-8.36-16.937-1.632c.008 1.82.03 3.816.03 4.211 0 17.887 22.692 26.484 50.88 26.582h.07c28.188-.098 50.871-8.695 50.871-26.582 0-.402.024-2.39.031-4.211zm0 0\"/><path d=\"M48.652 65.895c0 6.27-5.082 11.351-11.351 11.351-6.266 0-11.348-5.082-11.348-11.351 0-6.266 5.082-11.344 11.348-11.344 6.27 0 11.351 5.078 11.351 11.344\" fill=\"#fff\"/><path d=\"M45.922 66.566a7.531 7.531 0 01-7.535 7.532 7.534 7.534 0 01-7.535-7.532 7.534 7.534 0 017.535-7.53 7.531 7.531 0 017.535 7.53\"/><path d=\"M64 78.277c-2.02 0-3.652-1.488-3.652-3.32v-10.45c0-1.831 1.632-3.32 3.652-3.32 2.016 0 3.656 1.489 3.656 3.32v10.45c0 1.832-1.64 3.32-3.656 3.32m15.348-12.382c0 6.27 5.082 11.351 11.351 11.351 6.266 0 11.348-5.082 11.348-11.351 0-6.266-5.082-11.344-11.348-11.344-6.27 0-11.351 5.078-11.351 11.344\" fill=\"#fff\"/><path d=\"M82.078 66.566a7.53 7.53 0 007.531 7.532 7.531 7.531 0 100-15.063 7.53 7.53 0 00-7.53 7.531\"/>` },\n { id: 'unity', label: 'Unity', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#000000', body: `<path d=\"m63.991 128 51.702-29.855-19.817-11.461-20.26 11.704a1.151 1.151 0 0 1-1.125-.009 1.145 1.145 0 0 1-.568-.975V69.608c0-.819.424-1.56 1.133-1.968L99.13 53.737a1.119 1.119 0 0 1 1.124.009c.352.195.572.564.576.966V78.11l19.83 11.454V29.855L63.99 62.566Zm0 0\"/><path d=\"m52.397 98.401-20.27-11.718-19.832 11.46L63.991 128V62.566L7.34 29.854V89.56l19.825-11.45V54.714c.009-.401.225-.77.572-.966a1.13 1.13 0 0 1 1.13-.009L52.953 67.64a2.275 2.275 0 0 1 1.133 1.97v27.8a1.156 1.156 0 0 1-.565.98 1.131 1.131 0 0 1-1.124.012\"/><path d=\"M68.959 0v22.9L89.22 34.597c.348.203.555.576.555.984 0 .403-.212.772-.555.975L65.137 50.468a2.302 2.302 0 0 1-2.27 0L38.791 36.556a1.122 1.122 0 0 1-.56-.975 1.127 1.127 0 0 1 .56-.984L59.048 22.9V0L7.339 29.855l56.652 32.711 56.665-32.71Zm0 0\"/>` },\n { id: 'redis', label: 'Redis', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#D82C20', body: `<path d=\"M6.2 52.7c6.7 3.2 43.7 18.1 49.5 20.9 5.8 2.8 10 2.8 17.4-1 7.4-3.9 42.2-18.1 48.9-21.6 3.4-1.8 4.9-3.2 4.9-4.4V34.1c0-1.3-1.7-2.4-5-3.6-6.5-2.4-41.1-16.1-47.7-18.6-6.6-2.4-9.3-2.3-17.1.5C49.3 15.2 12.6 29.6 6 32.2c-3.2 1.3-5 2.4-5 3.7H.8v12.7c.2 1.2 2.1 2.5 5.4 4.1zm60.4 1.8l-20.3-8.4 29.1-4.5-8.8 12.9zm44.1-20l-17.2 6.8-1.9.7-17.2-6.8 19.1-7.5 17.2 6.8zM60.1 22l-2.8-5.2 8.8 3.4 8.3-2.7-2.2 5.4 8.4 3.2-10.9 1.1-2.4 5.9-3.9-6.5-12.6-1.1 9.3-3.5zm-21.7 7.3c8.6 0 15.6 2.7 15.6 6s-7 6-15.6 6-15.6-2.7-15.6-6 7-6 15.6-6zM122 59.8c-6.7 3.5-41.4 17.8-48.8 21.6-7.4 3.9-11.5 3.8-17.3 1-5.8-2.8-43-17.7-49.6-20.9C2.9 59.9 1 58.6 1 57.3V70c0 1.3 1.9 2.6 5.2 4.2 6.7 3.2 43.7 18.1 49.5 20.9 5.8 2.8 10 2.8 17.4-1 7.4-3.9 42.2-18.1 48.9-21.6 3.4-1.8 4.9-3.2 4.9-4.4V55.6c0 1.1-1.6 2.5-4.9 4.2zm0 20.7c-6.7 3.5-41.4 17.8-48.8 21.6-7.4 3.9-11.5 3.8-17.3 1-5.8-2.8-43-17.7-49.6-20.9C2.9 80.7 1 79.3 1 78v12.7c0 1.3 1.9 2.6 5.2 4.2 6.7 3.2 43.7 18.1 49.5 20.9 5.8 2.8 10 2.8 17.4-1 7.4-3.9 42.2-18.1 48.9-21.6 3.4-1.8 4.9-3.2 4.9-4.4V76.3c0 1.2-1.6 2.5-4.9 4.2z\"/>` },\n { id: 'postgres', label: 'PostgreSQL', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#336791', body: `<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M123.258 76.784c-.45-2.918-2.901-4.829-5.752-4.958-1.032-.047-2.08.061-3.109.192-1.243.158-2.471.438-3.711.623-.857.128-1.726.187-2.582.275l-.021-.111c1.598-3.018 3.263-6.003 4.775-9.064 1.159-2.348 2.151-4.781 3.176-7.194 1.696-3.998 3.051-8.12 4.173-12.309 1.075-4.011 1.995-8.066 2.284-12.227.116-1.662.196-3.331.187-4.995-.008-1.327-.151-2.656-.284-3.979-.15-1.516-.608-2.953-1.242-4.336-.836-1.822-2.132-3.317-3.496-4.737-1.092-1.137-2.293-2.173-3.484-3.208-1.698-1.477-3.607-2.656-5.59-3.703a32.18 32.18 0 00-7.09-2.75c-1.493-.381-3.02-.664-4.532-.966-.544-.11-1.089-.337-1.633-.337H85.086c-.37 0-.737.191-1.11.233-2.452.273-4.875.735-7.228 1.464-.88.273-1.684.101-2.52.024-.641-.059-1.271-.231-1.912-.263-2.442-.122-4.887-.301-7.328-.275-2.339.024-4.654.409-6.918 1.052-1.895.538-3.749 1.195-5.447 2.191-.727.426-1.303.346-2.055.129-2.527-.729-5.072-1.414-7.639-1.989-1.6-.358-3.245-.536-4.879-.707a57.214 57.214 0 00-4.718-.294c-1.538-.033-3.087-.032-4.618.104a30.16 30.16 0 00-7.158 1.513 23.813 23.813 0 00-7.086 3.865c-2.167 1.715-3.905 3.809-5.303 6.2-1.473 2.523-2.483 5.224-3.111 8.061-.34 1.537-.555 3.117-.788 4.678-.073.486.732.972-.268 1.456v6.794c1 .452.208.903.266 1.356.139 1.089.262 2.187.446 3.268.291 1.711.636 3.417.988 5.117a324.86 324.86 0 001.546 7.111c.396 1.72.847 3.43 1.319 5.131.721 2.598 1.431 5.201 2.246 7.77.757 2.387 1.624 4.74 2.484 7.093 1.191 3.255 2.617 6.405 4.327 9.424 1.479 2.614 3.169 5.062 5.436 7.076 1.494 1.327 3.157 2.347 5.093 2.857 1.521.4 3.067.448 4.624.129a10.979 10.979 0 004.824-2.311c.163-.134.342-.236.535.01.735.931 1.719 1.552 2.748 2.089 2.777 1.448 5.803 1.882 8.877 2.059.744.043 1.496-.064 2.246-.085 1.461-.04 2.881-.325 4.278-.729.732-.212 1.447-.481 2.192-.732.039.793.089 1.557.112 2.321l.104 4.166c.019.634.044 1.27.103 1.901.151 1.627.299 3.255.493 4.877.135 1.118.275 2.245.538 3.336a38.176 38.176 0 002.158 6.428 13.81 13.81 0 003.9 5.185c2.22 1.836 4.822 2.619 7.632 2.764 1.162.061 2.357.004 3.501-.204a49.01 49.01 0 005.387-1.275c3.591-1.084 6.695-2.956 9.014-5.981 1.32-1.724 2.404-3.589 3.1-5.648.574-1.701 1.115-3.419 1.545-5.16.34-1.372.508-2.787.715-4.188.137-.927.219-1.863.305-2.797.14-1.517.283-3.033.384-4.553.07-1.058.067-2.121.109-3.181.013-.323.065-.644.095-.966.028-.298.178-.401.482-.396 1.071.016 2.144.044 3.212-.004 1.197-.054 2.405-.105 3.583-.303a56.542 56.542 0 004.99-1.067c1.943-.508 3.725-1.418 5.44-2.455 1.998-1.207 3.819-2.623 5.297-4.447 1.285-1.591 1.894-3.43 1.584-5.438zm-3.412.982c-.066.915-.485 1.699-1.093 2.369-2.869 3.163-6.468 5.082-10.585 6.027-1.564.358-3.178.544-4.779.692a32.093 32.093 0 01-4.114.097c-1.006-.038-2.004-.268-3.032-.416-.103.94-.201 1.919-.32 2.896l-.479 3.745c-.145 1.187-.258 2.378-.407 3.564-.146 1.151-.328 2.298-.481 3.449-.143 1.072-.248 2.149-.407 3.219-.245 1.64-.479 3.284-.799 4.911-.384 1.945-.973 3.829-1.934 5.583-1.172 2.141-2.834 3.772-4.949 4.98-2.18 1.246-4.563 1.894-6.979 2.436-1.71.384-3.472.447-5.204.291-3.004-.272-5.568-1.557-7.506-3.886-1.85-2.223-3.102-4.771-3.55-7.655a63.102 63.102 0 01-.491-4.136 108.067 108.067 0 01-.299-4.62 250.203 250.203 0 01-.197-5.871c-.053-2.406-.07-4.812-.104-7.218l-.006-.092c-1.224.734-2.427 1.538-3.703 2.2a12.392 12.392 0 01-4.798 1.353c-1.318.1-2.653.191-3.965.086-2.151-.173-4.3-.51-6.226-1.569-.781-.43-1.596-.953-2.134-1.64-1.29-1.646-.672-3.726 1.273-4.727 1.344-.693 2.811-.982 4.268-1.319a44.368 44.368 0 003.761-1.029c1.222-.4 1.993-1.391 2.754-2.363l1.206-1.551c-.503-.053-.977-.107-1.451-.151-1.439-.136-2.812-.532-4.125-1.114-1.124-.497-1.141-.551-1.965.343-1.376 1.494-2.714 3.023-4.062 4.542-.992 1.117-1.978 2.241-2.965 3.361-.978 1.108-1.894 2.279-2.947 3.31-1.564 1.531-3.449 2.452-5.698 2.348-1.443-.066-2.764-.572-3.952-1.399-2.452-1.708-4.104-4.097-5.608-6.606-1.927-3.215-3.406-6.64-4.672-10.159-.876-2.432-1.756-4.866-2.521-7.333-.831-2.681-1.56-5.396-2.277-8.11a157.373 157.373 0 01-1.482-6.182 216.117 216.117 0 01-1.464-7.079c-.298-1.599-.471-3.221-.712-4.831-.325-2.17-.385-4.36-.267-6.539.105-1.963.387-3.921.667-5.871.388-2.698 1.277-5.244 2.556-7.648.783-1.473 1.755-2.812 2.879-4.056 1.845-2.042 4.078-3.518 6.562-4.626 1.736-.774 3.57-1.24 5.439-1.604 2.774-.54 5.573-.519 8.373-.461 1.224.025 2.443.248 3.666.369 2.633.262 5.214.816 7.762 1.5 1.857.498 3.676 1.143 5.518 1.703.185.056.456.051.607-.048 2.496-1.629 5.224-2.704 8.125-3.319 1.101-.233 2.237-.335 3.363-.407 1.369-.087 2.749-.167 4.115-.088 1.642.094 3.276.336 4.908.56.792.108 1.565.383 2.359.458.38.036.783-.242 1.185-.335 2.049-.473 4.089-1 6.156-1.374 1.539-.278 3.111-.409 4.676-.499 1.745-.1 3.503-.173 5.247-.089a36.66 36.66 0 016.555.923c2.677.623 5.245 1.528 7.686 2.784 1.824.938 3.558 2.026 5.119 3.364 1.023.878 2.07 1.745 2.994 2.723 1.14 1.206 2.303 2.413 3.018 3.958.538 1.165.922 2.371 1.028 3.647.132 1.586.292 3.178.277 4.766-.014 1.519-.221 3.037-.368 4.552-.334 3.454-1.085 6.833-1.997 10.167a116.972 116.972 0 01-2.589 8.17c-.879 2.481-1.893 4.917-2.918 7.343a80.07 80.07 0 01-2.458 5.303c-1.677 3.286-3.421 6.538-5.438 9.633-.348.535-.678 1.083-1.018 1.629.88.594 1.877.803 2.881.911.955.104 1.929.166 2.883.095 1.527-.113 3.049-.331 4.567-.544 1.504-.21 2.978-.638 4.522-.525 1.542.112 2.645 1.284 2.54 2.729zm-22.013-3.353c-.655-.846-1.323-1.682-1.964-2.538-1.006-1.344-1.729-2.845-2.455-4.353-.688-1.429-1.532-2.782-2.257-4.195-1.265-2.465-2.553-4.922-3.718-7.435-1.465-3.157-2.62-6.426-2.984-9.923-.154-1.48-.193-2.958.106-4.424.479-2.341 1.702-4.172 3.758-5.428 1.907-1.165 4.032-1.541 6.209-1.659 1.351-.073 2.708-.013 4.11-.013l-.047-.237c-.872-1.823-1.687-3.677-2.641-5.457-1.346-2.512-3.068-4.777-4.986-6.877-1.421-1.555-2.96-2.998-4.646-4.273-1.658-1.255-3.405-2.376-5.269-3.293-2.223-1.093-4.538-1.938-6.967-2.477-2.334-.518-4.683-.835-7.077-.861-2.042-.022-4.071.07-6.06.531-3.002.695-5.748 1.931-8.137 3.933a21.143 21.143 0 00-3.517 3.77c-1.196 1.643-2.161 3.417-2.986 5.277-1.132 2.552-1.909 5.208-2.44 7.938-.266 1.361-.474 2.734-.686 4.106-.074.48-.08.971-.123 1.521.369-.192.635-.34.907-.472l.885-.397c2.993-1.369 6.094-2.25 9.427-2.149 1.416.043 2.771.323 4.03.943 2.415 1.191 3.828 3.216 4.442 5.779.424 1.769.714 3.573.996 5.372.221 1.405.447 2.825.473 4.242.037 2.071-.068 4.146-.181 6.216a17.386 17.386 0 01-1.08 5.146c-1.12 2.993-2.368 5.937-3.534 8.913-.385.983-.681 2.001-1.045 3.082.562 0 1.018-.004 1.474.002.178.003.36.008.532.049 1.34.316 2.502.923 3.455 1.954 1.271 1.372 1.938 2.973 1.972 4.826.019 1.027-.089 2.057-.084 3.084.021 4.786.057 9.572.097 14.357.007.782.046 1.565.102 2.346.117 1.635.235 3.271.395 4.902.112 1.157.268 2.312.451 3.461.259 1.628 1 3.077 1.841 4.462.724 1.191 1.665 2.203 2.905 2.901 2.107 1.186 4.376 1.285 6.663.848 1.545-.295 3.062-.769 4.562-1.258a10.128 10.128 0 003.937-2.354c1.051-1.019 1.797-2.261 2.3-3.632.976-2.659 1.28-5.459 1.684-8.237.151-1.04.282-2.083.42-3.125.157-1.186.316-2.371.468-3.556.112-.883.214-1.768.322-2.651.154-1.268.317-2.535.464-3.804.113-.981.209-1.966.309-2.949.129-1.256.268-2.512.379-3.77.086-.955.051-1.927.22-2.864.311-1.718 1.123-3.18 2.646-4.125.637-.395 1.356-.655 2.063-.989l-.12-.186zm-57.597-7.052a17.526 17.526 0 01-1.354-5.622c-.128-1.825.089-3.643.276-5.46.182-1.76.333-3.528.386-5.296.088-2.906-.108-5.808-.247-8.712-.084-1.729.117-3.479.271-5.212.139-1.561.312-3.126.607-4.664.495-2.581 1.152-5.125 2.086-7.591.887-2.338 1.906-4.615 3.345-6.665.986-1.406 2.105-2.72 3.18-4.094l-.319-.113c-3.498-1.111-7.053-1.979-10.709-2.358-1.729-.179-3.464-.284-5.198-.387-.532-.032-1.072.04-1.606.091-1.322.126-2.66.176-3.961.424-2.214.421-4.338 1.129-6.305 2.282-1.766 1.035-3.249 2.373-4.491 3.978-1.372 1.772-2.295 3.776-2.958 5.913-.783 2.521-1.156 5.115-1.257 7.733-.088 2.295-.132 4.603.264 6.889.295 1.702.492 3.422.817 5.117.443 2.311.918 4.617 1.467 6.904.785 3.274 1.569 6.553 2.499 9.787.89 3.099 1.894 6.17 2.982 9.204.89 2.476 1.919 4.906 3.003 7.304.706 1.562 1.561 3.065 2.457 4.528.953 1.553 2.037 3.027 3.508 4.154 1.856 1.423 3.293 1.644 5.179.083.808-.669 1.491-1.495 2.194-2.282 1.117-1.25 2.195-2.534 3.307-3.788 1.416-1.598 2.85-3.179 4.273-4.769.301-.336.59-.682.883-1.022l-.484-.425a17.695 17.695 0 01-4.095-5.931zm53.688-47.569a61.488 61.488 0 013.309 4.204c2 2.809 3.598 5.842 4.775 9.087.521 1.43.937 2.874.751 4.439-.129 1.096-.118 2.208-.215 3.31-.081.917-.226 1.829-.345 2.743-.178 1.378-.436 2.752-.513 4.136-.073 1.317.003 2.648.086 3.968.084 1.341.265 2.676.388 4.015.139 1.518.326 3.036.369 4.557.035 1.249-.076 2.506-.185 3.753-.13 1.502-.511 2.956-1.079 4.351-.399.982-.876 1.934-1.327 2.917l.181.192.275.213.277-.496a93.621 93.621 0 006.222-11.493 186.333 186.333 0 003.287-7.766c1.624-4.064 2.909-8.242 3.903-12.503.446-1.913.787-3.855 1.09-5.797.236-1.518.433-3.054.477-4.586.047-1.625-.043-3.263-.193-4.884-.112-1.224-.414-2.456-1.181-3.451-1.233-1.602-2.564-3.134-4.201-4.346-1.378-1.021-2.751-2.068-4.23-2.927-2.345-1.36-4.883-2.266-7.535-2.883-2.588-.603-5.21-.863-7.849-.918-1.556-.033-3.119.134-4.672.28-1.407.132-2.805.357-4.222.543 1.52.855 3.019 1.615 4.433 2.511 2.973 1.883 5.637 4.149 7.924 6.831zM55.299 72.514c.961-3.073 2.27-6.007 3.538-8.959 1.028-2.394 1.59-4.916 1.777-7.506.093-1.277.067-2.57.004-3.851a44.628 44.628 0 00-.392-4.259c-.266-1.801-.569-3.603-.995-5.371-.462-1.913-1.627-3.245-3.623-3.736-1.216-.299-2.424-.287-3.653-.093-3.002.473-5.75 1.579-8.31 3.199-.515.326-.798.589-.709 1.328.188 1.565.229 3.155.222 4.735-.01 2.236-.105 4.472-.19 6.707-.028.728-.133 1.452-.211 2.177-.12 1.11-.351 2.219-.344 3.327.007 1.142.124 2.311.401 3.417.88 3.507 2.744 6.377 5.799 8.402 1.879 1.245 3.958 1.873 6.24 1.992.155-.524.293-1.019.446-1.509zm-3.586-30.087c-.402-.844-.172-1.543.76-1.867.227-.08.461-.165.697-.188.324-.032.654-.008.982-.008 1.182.006 2.319.171 3.295.923.626.482.794 1.122.389 1.779-.575.932-1.452 1.4-2.529 1.49-1.697.141-2.888-.65-3.594-2.129zm47.04-.308c.136-1.124.245-2.251.384-3.375.056-.452-.182-.574-.561-.585-1.192-.033-2.384-.075-3.576-.097-1.344-.024-2.652.192-3.896.703-1.38.568-2.431 1.478-2.86 2.98a9.042 9.042 0 00-.293 3.41 20.11 20.11 0 001.193 5.176c.834 2.221 1.707 4.441 2.75 6.569 1.413 2.881 3.012 5.67 4.513 8.507.401.757.738 1.547 1.156 2.431a13.783 13.783 0 001.351-5.622c.041-1.61-.088-3.227-.182-4.838-.059-.986-.198-1.966-.294-2.95-.134-1.371-.337-2.741-.368-4.115-.031-1.397.068-2.802.188-4.197.113-1.338.334-2.665.495-3.997zm-2.689-1.082c-.443 1.223-1.39 1.913-2.618 2.116-1.145.188-2.148-.235-2.894-1.148-.531-.65-.328-1.42.468-1.859.914-.506 1.919-.634 3.104-.711.322.059.807.108 1.268.24.669.189.916.692.672 1.362zm-35.422 37.66c-.655-.535-1.521-.566-2.144.021-.773.73-1.453 1.565-2.133 2.388-.785.951-1.521 1.94-2.534 2.677-1.474 1.071-3.192 1.515-4.919 1.935-1.373.334-2.752.644-4.129.965l-.017.178c.409.189.805.425 1.231.56 2.1.665 4.236.996 6.455.808 1.602-.136 3.128-.485 4.574-1.171 1.99-.943 3.521-2.437 4.823-4.175.218-.29.317-.719.343-1.093.089-1.321-.582-2.303-1.55-3.093zm51.751.526c-1.69.181-3.382.373-5.077.47-.818.047-1.648-.109-2.474-.176-1.385-.112-2.737-.42-3.908-1.16-.678-.427-1.241-.475-1.961-.233-1.028.346-1.867.872-2.115 1.986-.169.753-.23 1.533-.298 2.304-.013.136.157.386.287.42.793.209 1.59.456 2.401.529.996.09 2.01.061 3.013.011 1.083-.054 2.173-.124 3.24-.304 2.515-.422 4.948-1.11 7.109-2.536.779-.515 1.551-1.041 2.325-1.562l-.064-.11c-.826.123-1.648.273-2.478.361z\"/>` },\n { id: 'mysql', label: 'MySQL', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#00618A', body: `<path d=\"M117.688 98.242c-6.973-.191-12.297.461-16.852 2.379-1.293.547-3.355.559-3.566 2.18.711.746.82 1.859 1.387 2.777 1.086 1.754 2.922 4.113 4.559 5.352 1.789 1.348 3.633 2.793 5.551 3.961 3.414 2.082 7.223 3.27 10.504 5.352 1.938 1.23 3.859 2.777 5.75 4.164.934.684 1.563 1.75 2.773 2.18v-.195c-.637-.812-.801-1.93-1.387-2.777l-2.578-2.578c-2.52-3.344-5.719-6.281-9.117-8.719-2.711-1.949-8.781-4.578-9.91-7.73l-.199-.199c1.922-.219 4.172-.914 5.949-1.391 2.98-.797 5.645-.59 8.719-1.387l4.164-1.187v-.793c-1.555-1.594-2.664-3.707-4.359-5.152-4.441-3.781-9.285-7.555-14.273-10.703-2.766-1.746-6.184-2.883-9.117-4.363-.988-.496-2.719-.758-3.371-1.586-1.539-1.961-2.379-4.449-3.566-6.738-2.488-4.793-4.93-10.023-7.137-15.066-1.504-3.437-2.484-6.828-4.359-9.91-9-14.797-18.687-23.73-33.695-32.508-3.195-1.867-7.039-2.605-11.102-3.57l-6.543-.395c-1.332-.555-2.715-2.184-3.965-2.977C16.977 3.52 4.223-3.312.539 5.672-1.785 11.34 4.016 16.871 6.09 19.746c1.457 2.012 3.32 4.273 4.359 6.539.688 1.492.805 2.984 1.391 4.559 1.438 3.883 2.695 8.109 4.559 11.695.941 1.816 1.98 3.727 3.172 5.352.727.996 1.98 1.438 2.18 2.973-1.227 1.715-1.297 4.375-1.984 6.543-3.098 9.77-1.926 21.91 2.578 29.137 1.383 2.223 4.641 6.98 9.117 5.156 3.918-1.598 3.043-6.539 4.164-10.902.254-.988.098-1.715.594-2.379v.199l3.57 7.133c2.641 4.254 7.324 8.699 11.297 11.699 2.059 1.555 3.68 4.242 6.344 5.152v-.199h-.199c-.516-.805-1.324-1.137-1.98-1.781-1.551-1.523-3.277-3.414-4.559-5.156-3.613-4.902-6.805-10.27-9.711-15.855-1.391-2.668-2.598-5.609-3.77-8.324-.453-1.047-.445-2.633-1.387-3.172-1.281 1.988-3.172 3.598-4.164 5.945-1.582 3.754-1.789 8.336-2.375 13.082-.348.125-.195.039-.398.199-2.762-.668-3.73-3.508-4.758-5.949-2.594-6.164-3.078-16.09-.793-23.191.59-1.836 3.262-7.617 2.18-9.316-.516-1.691-2.219-2.672-3.172-3.965-1.18-1.598-2.355-3.703-3.172-5.551-2.125-4.805-3.113-10.203-5.352-15.062-1.07-2.324-2.875-4.676-4.359-6.738-1.645-2.289-3.484-3.977-4.758-6.742-.453-.984-1.066-2.559-.398-3.566.215-.684.516-.969 1.191-1.191 1.148-.887 4.352.297 5.547.793 3.18 1.32 5.832 2.578 8.527 4.363 1.289.855 2.598 2.512 4.16 2.973h1.785c2.789.641 5.914.195 8.523.988 4.609 1.402 8.738 3.582 12.488 5.949 11.422 7.215 20.766 17.48 27.156 29.734 1.027 1.973 1.473 3.852 2.379 5.945 1.824 4.219 4.125 8.559 5.941 12.688 1.816 4.113 3.582 8.27 6.148 11.695 1.348 1.801 6.551 2.766 8.918 3.766 1.66.699 4.379 1.43 5.949 2.379 3 1.809 5.906 3.965 8.723 5.945 1.402.992 5.73 3.168 5.945 4.957zm-88.605-75.52c-1.453-.027-2.48.156-3.566.395v.199h.195c.695 1.422 1.918 2.34 2.777 3.566l1.98 4.164.199-.195c1.227-.867 1.789-2.25 1.781-4.363-.492-.52-.562-1.164-.992-1.785-.562-.824-1.66-1.289-2.375-1.98zm0 0\"/>` },\n { id: 'hadoop', label: 'Hadoop', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#F0BE00', body: `<path d=\"M64.525 16.049c-6.041 1.48-7.819 2.534-9.826 9.537 2.552-5.13 4.485-7.018 9.826-9.537zm15.536.373c-3.958.078-8.163 1.269-13.018 3.312-2.678 1.127-4.668 2.461-6.4 4.063-1.655 1.53-3.062 3.304-4.606 5.361-.895.064-1.695.19-2.506.514-.895.358-1.797.937-2.877 1.89a65.486 65.486 0 0 0-2.213 2.043v.002a77.012 77.012 0 0 0-1.941 1.956c-5.05.81-9.169 1.705-12.854 3.132-3.769 1.46-7.092 3.47-10.505 6.496a27.637 27.637 0 0 0-3.659 3.926 28.919 28.919 0 0 0-2.695 4.285c-.686.76-1.373 1.527-2.117 2.198-.722.649-1.492 1.197-2.354 1.529-.5.193-.708.305-.73.297-.016-.008-.062-.185-.076-.242 1.228-1.181 1.429-2.906 1.543-4.623a6.2 6.2 0 0 1 .445.623c.163.253.332.512.533.765l.84 1.06.295-1.322c.248-1.108.433-2.585.145-3.865-.187-.827-.58-1.558-1.247-2.082.062-.16.13-.342.188-.488.211-.54.427-1.094.611-1.617l.366-1.035-1.084.187c-1.443.25-4.544 1.955-6.727 4.22-.81.842-1.507 1.77-1.965 2.747-.476 1.015-.69 2.079-.506 3.142.16.927.633 1.834 1.473 2.692.153.618.295 1.172.447 1.656.174.554.362 1.047.596 1.533.635 1.322 1.648 2.13 2.82 2.506.95.305 2.003.317 3.033.088a27.084 27.084 0 0 0-.4 3.686c-.064 1.725-.002 3.63.188 5.841a30.255 30.255 0 0 0 .43 3.063l-.575 1.564-.893 2.426-1.962 1.945-1.833 1.815c-.05.05-.256.248-.443.428-1.237 1.19-1.482 1.428-1.13 3.523a12.794 12.794 0 0 0 1.296 3.84 13.836 13.836 0 0 0 2.469 3.332c1.306 1.309 3.444 2.934 5.683 3.785 1.277.485 2.592.72 3.827.526-.064.192-.114.378-.184.572a21.548 21.548 0 0 1-.652 1.603c-1.52 3.331.041 5.071 2.468 6.178 1.212.552 2.653.929 3.993 1.277.273.071.547.141.892.235 1.587.429 4.327 1.216 6.83 1.375 2.733.173 5.199-.39 5.86-2.844.261-.972.413-1.717.474-2.445.057-.671.03-1.358-.047-2.194.77-1.7 1.116-2.23 1.682-3.058l.287-.424c.61-.906.896-1.548 1-2.272.1-.698.017-1.393-.11-2.457-.01-.095-.036-.278-.06-.459 1.6.206 3.18.33 4.748.34a40.63 40.63 0 0 0 2.375-.066c-.22.114-.371.204-.61.326l-.296.152c-2.11 1.085-2.198 3.141-1.537 5.256.596 1.907 1.821 3.853 2.59 5.037 1.616 2.492 3.16 4.6 5.03 5.746 1.96 1.202 4.2 1.344 7.09-.22 1.472-.796 1.935-1.61 2.56-2.703.197-.346.417-.723.662-1.094.577-.37 2.058-1.584 3.578-2.84.495-.409 1.027-.842 1.584-1.295.392.287.865.487 1.435.623.744.178 1.63.26 2.692.336.794.058 3.387.055 5.06.055.517 0 .945 0 1.203.002 1.728.01 3.124-.08 4.178-.678 1.124-.637 1.789-1.765 1.934-3.787.064-.899.075-1.453-.05-2.02-.115-.524-.35-1.012-.734-1.705l-.07-2.63-.074-2.784c-.03-1.093-.15-1.98-.371-2.853-.22-.869-.535-1.705-.955-2.705-.285-.678-.516-1.3-.742-1.91v-.004c-.361-.974-.723-1.924-1.221-2.938.033-.196.068-.407.1-.633l.964.93 1.42 1.367c1.084 1.044 2.075 1.993 3.239 2.68 1.202.71 2.555 1.122 4.306 1.039 1.835-.087 3.796-.859 5.412-2.05 1.563-1.154 2.818-2.71 3.342-4.433l.453-1.494c.122-.4.246-.802.367-1.203 2.572.437 5.328.586 7.995.307 2.573-.27 5.059-.925 7.203-2.069 3.15-1.681 5.514-4.16 7.213-7.101 1.897-3.287 2.96-7.158 3.363-11.143.324-3.196.147-7.543-.518-11.734-.592-3.736-1.575-7.36-2.937-9.969a3.948 3.948 0 0 0-.73-.951c-.678-.668-1.68-1.298-2.716-1.654-1.097-.378-2.255-.455-3.173.025a2.619 2.619 0 0 0-.657.486c-.595.604-1.097 1.335-1.6 2.069-.559.817-1.12 1.638-1.792 2.213-.785.67-1.769 1.074-2.694 1.445a18.186 18.186 0 0 0-1.375-2.71c-.628-1.004-1.344-1.945-2.132-2.884a11.813 11.813 0 0 0-1.948-1.857c-.68-.518-1.375-.956-2.185-1.463-2.173-1.36-4.022-2.982-5.908-4.637-.858-.752-1.724-1.512-2.57-2.21-4.493-3.705-8.683-5.5-13.165-5.782a20.34 20.34 0 0 0-1.681-.035zm-20.34.062c-3.047.734-3.627 1.298-4.541 4.284 1.458-2.187 2.297-2.898 4.54-4.284zm21.164 2.47c4.385.018 8.407 1.654 12.879 5.413 2.198 1.848 4.117 3.642 6.345 5.237a8.038 8.038 0 0 0-2.425.576c1.12-.214 2.417-.002 3.58.21.326.212.661.419 1.006.622 1.572.927 2.465 1.437 3.529 2.92a31.597 31.597 0 0 1 2.888 4.857c-.54-.193-.995-.356-1.4-.477a3.018 3.018 0 0 0-2.84.176l-.064.032c-.87.423-2.22.906-3.121 1.052.46.16 1.477.22 1.957.03.064-.026.13-.047.197-.063a3.01 3.01 0 0 0-.4 1.24 3 3 0 0 0 .32 1.674c0 .002.002.002.004.004.08.19.192.363.314.49-.265-.275-.477-.77-.44-1.16.062-.637.576-1.12 1.2-1.123a1.244 1.244 0 0 1 1.13 1.766c-.622.106-1.244.29-1.886.525v-.002h-.002c-.412.152-.83.328-1.263.516 2.011-.307 3.825-.36 5.789-.102.13.62.26 1.274.38 1.942-.243.019-.487.04-.73.058l-.059.004c-.929-.742-1.962-.618-3.377-.295-4.3.98-3.29 3.394-5.269 7.03 2.054-2.512 1.903-5.137 5.25-5.93.78-.185 1.31-.417 1.838-.338-.95.478-1.772 1.271-2.098 2.191-.919 2.595-.348 4.78-1.357 7.203 1.25-2.166 1.325-4.279 2.443-6.558.402-.819 1.892-2.13 2.807-2.15l.754-.016c.22 1.442.353 2.875.267 4.062-.156 2.168-.717 5.383-1.054 6.614 1.132-1.456 1.647-4.539 2.144-6.71.518-2.26.39-4.972-.064-7.4-.623-3.331 2.808-2.79 4.8-4.36 1.465-1.154 2.472-2.998 3.815-4.304 1.332-1.295 3.427.61 3.951 1.875 2.271 5.495 3.307 14.14 2.707 19.678-.673 6.215-3.676 12.998-9.158 16.058-6.988 3.9-15.227 1.52-22.17-.82-1.482-.499-2.514-1.228-3.816-2.049.354 1.597.516 3.288.044 4.883-.749 2.53-1.959 6.672 1.477 7.436 1.308.29 1.902.247 3.748-.705-1.494.337-2.248.256-3.275.066-.931-.171-1.424-.764-1.684-1.46.325.234.856.36 1.762.58 2.547.613 4.974-.611 5.449-2.378.277-1.032.228-1.574.814-2.98.527.162 1.073.31 1.631.445l-.945 3.088c-.819 2.67-4.008 4.823-6.824 4.773-2.604-.046-4.254-1.676-6.051-3.275a1419.44 1419.44 0 0 0-3.611-3.2c-3.24-1.021-5.837-2.216-8.844-4.443 2.14 2.515 3.592 3.907 6.576 5.159-.434 4.427-1.973 7.655-3.285 11.892-.593 1.916-5.281 9.593-6.58 10.342-.926.533-6.727 5.42-7.818 6.064-.813 1.08-1.527 2.571-2.749 3.217-3.723 1.97-6.117-1.802-8.12-4.986-.913-1.45-3.445-5.628-1.237-6.799 2.088-1.106 3.258-1.896 5.389-3.295.313.57.849 1.122 1.199 1.692l-.232-1.87c-.14-1.129-.135-2.047-.045-3.183l.26-3.3c-.321 1.117-.962 2.234-1.282 3.353-.128.447-.234.81-.295 1.144a37.646 37.646 0 0 1-14.308.186 89.26 89.26 0 0 0-.989-4.938c-.094 1.481-.033 5.575-.04 7.867-.007 1.777-.08 2.386-.997 3.897-.857 1.415-1.221 1.735-2.422 4.125.1 1.508.102 2.506-.298 3.937-.667 2.38-7.39.537-9.163.051-2.183-.598-6.697-1.487-5.562-4.398 1-2.562 1.633-5.263 2.121-8.848-4-5.763-7.722-13.662-8.436-20.66-.554-5.434-.222-8.78.954-12.104 1.863-5.266 4.47-9.825 8.652-13.496 5.642-4.95 10.916-6.938 19.174-8.195-1.986 2.223-3.95 4.573-6.092 7.094-2.168 2.552-3.456 5.129-4.832 7.92-1.902 3.854-1.86 5.32.66 8.705 2.172 2.916 3.345 4.23 4.293 7.084-.783 1.614-1.069 2.978-1.332 5.183 2.66 2.907 4.636 4.898 7.219 5.512 2.533.602 4.648.486 6.914-.672 5.033-2.573 9.69-5.896 15.367-6.033 2.627-6.458 2.363-11.854 1.102-18.102-.862-4.267-1.207-8.308-1.475-12.658-1.065 4.48-1.264 8.42-.475 12.883.953 5.378 1.693 11.319-.957 16.045-5.133.393-9.534 3.517-14.162 5.914-1.86.964-3.794 1.057-5.853.492-1.911-.525-3.201-1.79-5.26-4.164-.032-2.384.505-3.484 1.6-5.643 1.758-3.466 3.701-6.693 5.832-10.105-2.61 3.149-5.082 5.78-7.135 8.945-.785-2.236-1.907-3.37-3.766-5.888-1.816-2.46-2.006-3.536-.648-6.381 1.365-2.86 2.524-5.374 4.847-7.883 4.015-4.335 7.692-9.16 12.082-13.43 2.384-2.318 3.352-2.237 6.514-2.717 2.858-.433 5.648-.979 8.563-1.656-2.82.263-5.545.358-8.29.426l-.083.002c2.7-3.448 4.265-5.368 8.65-7.273 4.723-2.052 8.693-3.304 12.375-3.465.296-.013.59-.02.883-.018zm2.873 14.894c-5.874 1.47-6.976 3.936-6.22 7.728.643-2.853 1.788-5.601 6.22-7.728zm-17.403.322c-2.377.269-4.75.515-7.128.74-1.997.19-2.319.157-3.735 1.557-2.153 2.129-4.245 9.433-4.914 12.355 1.053-2.427 3.689-9.217 5.71-10.945.558-.478.947-.771 1.366-.984-1.446 2.425-1.341 3.03-.834 6.279.432-3.303 1.574-4.58 3.45-7.045a49.516 49.516 0 0 0 6.085-1.957zm54.54.277c-1.362 2.758-3.463 5.064-6.317 6.477-1.531.757-2.509.494-4.219.332 1.74.499 2.84 1.126 4.547.517 3.478-1.24 5.155-4.035 5.989-7.326zm-12.157 4.45c.12.252.237.507.352.767-.095.07-.187.145-.272.223a3.065 3.065 0 0 0-.662-.975c.19-.007.383-.011.582-.016zm-17.394 2.132c-1.916.886-4.145.67-5.787 1.78-1.448.977-3.446 4.075-4.916 5.388 1.065-.413 2.09-1.128 3.035-1.883a3.94 3.94 0 0 0 1.53 3.088 1.691 1.691 0 0 1-.38-.502 1.652 1.652 0 0 1 1.498-2.363 1.66 1.66 0 0 1 1.49.942c.038.077.066.158.09.238a10.45 10.45 0 0 0-2.11 2.064v.002h-.001a8.889 8.889 0 0 0-1.281 2.342c2.8-3.32 6.862-5.825 10.68-6.896-1.068-.016-2.333.184-3.62.607a3.939 3.939 0 0 0-2.574-3.277c.853-.456 1.692-.936 2.346-1.53zM7.043 44.48C1.958 48.064.689 49.691 1.375 56.943c.504-5.706 1.614-8.168 5.668-12.463zm-4.314 2.157C.159 48.43-.174 49.17.064 52.283c.56-2.568 1.081-3.538 2.665-5.646zm9.494 1.039c-.373.802-.638 1.408-.819 2.033-.784 2.71.354 5.13-2.105 7.094 1.156 2.332 1.102 3.261 3.79 2.183 1.038-.415 1.894-.998 2.657-1.687a49.902 49.902 0 0 0-1.172 3.412c-1.923.816-4.452 1.336-5.42-.686-.47-.98-.735-1.943-1.078-3.183-3.167-3.281 1.568-7.613 4.147-9.166zm.656 1.467c.655.381.828 1.074.9 2.007-.39-.39-.703-.657-1.209-.6a7.53 7.53 0 0 1 .309-1.407zm72.516.394c.114.078.23.151.351.217a1.931 1.931 0 0 1-.351-.217zm6.785 17.035c-.695.118-1.94.373-2.635.49-1.855.314-2.073.76-2.361 2.586-.136.86-.324 1.927-.46 2.788.364-.973.803-2.104 1.227-3.032.449-.98.7-1.073 1.653-1.591.675-.368 1.9-.873 2.576-1.24zM15.006 79.38c1.458 5.041 3.94 9.994 6.691 14.158v.074c-.172.716-.37 1.413-.789 1.973-1.967 2.632-6.971-1.23-8.42-2.709-1.583-1.617-2.644-3.533-2.896-5.328-.184-1.31-.006-1.341.908-2.268l3.695-3.74.81-2.16zm66.166 3.295c.301.977.538 1.946.976 2.984.732 1.734 1.089 2.807 1.141 4.668l.168 5.889c.628 1.1.727 1.334.615 2.59-.227 2.564-1.083 2.734-3.336 2.695-1.023-.018-5.097-.038-6.13-.127-1.461-.126-2.28-.255-2.727-.588 2.295-1.685 6.195-8.64 6.955-11.035.803-2.53 1.683-4.738 2.338-7.076z\"/>` },\n { id: 'ruby', label: 'Ruby', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#D91404', body: `<path d=\"m35.971 111.33 81.958 11.188c-9.374-15.606-18.507-30.813-27.713-46.144Zm89.71-86.383L93.513 73.339c-.462.696-1.061 1.248-.41 2.321 8.016 13.237 15.969 26.513 23.942 39.777 1.258 2.095 2.53 4.182 4.157 6.192l4.834-96.58zM16.252 66.22c.375.355 1.311.562 1.747.347 7.689-3.779 15.427-7.474 22.948-11.564 2.453-1.333 4.339-3.723 6.452-5.661 6.997-6.417 13.983-12.847 20.966-19.278.427-.395.933-.777 1.188-1.275 2.508-4.902 4.973-9.829 7.525-14.898-3.043-1.144-5.928-2.263-8.849-3.281-.396-.138-1.02.136-1.449.375-6.761 3.777-13.649 7.353-20.195 11.472-3.275 2.061-5.943 5.098-8.843 7.743-4.674 4.266-9.342 8.542-13.948 12.882a24.011 24.011 0 0 0-3.288 3.854c-3.15 4.587-6.206 9.24-9.402 14.025 1.786 1.847 3.41 3.613 5.148 5.259zm28.102-6.271-11.556 48.823 54.3-34.987zm76.631-34.846-46.15 7.71 15.662 38.096zM44.996 56.644l41.892 13.6c-5.25-12.79-10.32-25.133-15.495-37.737ZM16.831 75.643 2.169 110.691l27.925-.825Zm13.593 26.096.346-.076c3.353-13.941 6.754-27.786 10.177-42.272L18.544 71.035c3.819 9.926 7.891 20.397 11.88 30.704zm84.927-78.897c-4.459-1.181-8.918-2.366-13.379-3.539-6.412-1.686-12.829-3.351-19.237-5.052-.801-.213-1.38-.352-1.851.613-2.265 4.64-4.6 9.245-6.901 13.868-.071.143-.056.328-.111.687l41.47-6.285zM89.482 12.288l36.343 10.054-6.005-17.11-30.285 6.715ZM33.505 114.007c-4.501-.519-9.122-.042-13.687.037-3.75.063-7.5.206-11.25.323-.386.012-.771.09-1.156.506 31.003 2.866 62.005 5.732 93.007 8.6l.063-.414-29.815-4.07c-12.384-1.691-24.747-3.551-37.162-4.982ZM2.782 99.994c3.995-9.27 7.973-18.546 11.984-27.809.401-.929.37-1.56-.415-2.308-1.678-1.597-3.237-3.318-5.071-5.226-2.479 12.24-4.897 24.177-7.317 36.113l.271.127c.185-.297.411-.578.548-.897zm78.74-90.153c6.737-1.738 13.572-3.097 20.367-4.613.44-.099.87-.244 1.303-.368l-.067-.332-29.194 3.928c2.741 1.197 4.853 2.091 7.591 1.385z\"/>` },\n { id: 'rails', label: 'Rails', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#CC0000', body: `<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M109.682 14.737c-12.206-6.023-24.708-6.636-37.508-2.111-11.779 4.164-21.175 11.615-28.16 21.763C32.195 51.561 23.61 70.298 18.799 90.652c-2.464 10.417-4.06 21.466-3.631 32.224.035.873.165 1.124.251 3.124h60.366c-.173-2-.287-1.416-.437-1.797a153.86 153.86 0 01-7.428-25.198c-2.498-12.251-3.806-24.729-1.226-37.093 3.611-17.313 13.48-29.805 30.117-36.283 9.424-3.667 18.369-2.624 26.214 4.262.072.063.22.025.412.056l2.565-3.883c-4.94-4.703-10.368-8.389-16.32-11.327zM3.336 94.394c-.46 3.923-.89 7.596-1.34 11.451l11.132 1.336 2.039-11.893-11.831-.894zm21.85-34.186l-10.471-4.097-3.384 9.607 10.671 3.42c1.08-3.031 2.096-5.882 3.184-8.93zm49.419 53.659c3.575.266 7.157.449 11.103.679-1.433-2.979-2.706-5.673-4.039-8.335-.146-.289-.639-.568-.974-.573-3.033-.044-6.068-.025-9.291-.025.726 2.628 1.357 5.053 2.096 7.443.111.361.707.782 1.105.811zM42.933 31.103l-7.955-5.268-6.359 7.105 8.178 5.496 6.136-7.333zm25.334 53.369c-.013.321.276.832.558.959 2.865 1.288 5.76 2.515 8.912 3.873-.131-2.492-.219-4.575-.368-6.654-.027-.374-.203-.912-.48-1.066-2.631-1.456-5.299-2.847-8.216-4.395-.159 2.665-.321 4.972-.406 7.283zM65.91 12.3l-5.446-6.181-7.499 3.898 5.455 6.644 7.49-4.361zm3.415 49.176c-.163.374.052 1.167.373 1.456 2.175 1.962 4.424 3.84 6.926 5.981.573-2.4 1.113-4.539 1.571-6.693.081-.383-.032-1.016-.298-1.23-1.946-1.569-3.955-3.063-6.037-4.651-.915 1.815-1.802 3.443-2.535 5.137zm12.45-52.424c2.78.075 5.563.042 8.499.042-.293-2.044-.433-3.593-.782-5.092-.104-.446-.775-1.04-1.228-1.078-2.787-.226-5.585-.313-8.651-.459.409 2.063.721 3.881 1.162 5.668.093.379.647.909 1 .919zm3.385 35.675c.142-.266.178-.749.029-.981-1.366-2.137-2.785-4.241-4.254-6.455l-4.76 4.372 6.582 7.294c.884-1.539 1.675-2.868 2.403-4.23zM90.295 30.2l2.843 5.281c4.449-2.438 4.875-3.32 3.3-6.834L90.295 30.2zm21.287-16.273c1.851 1.142 3.806 2.115 5.792 3.185l1.33-2.07c-2.422-1.771-4.76-3.484-7.413-5.426-.104 1.104-.259 1.875-.219 2.637.032.581.129 1.44.51 1.674zM109 30.646c2 .217 5 .424 7 .643v-2.718c-2-.438-5-.872-7-1.323v3.398z\"/>` },\n { id: 'sqlite', label: 'SQLite', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#003B57', body: `<path d=\"M69.5 99.176c-.059-.73-.094-1.2-.094-1.2S67.2 83.087 64.57 78.642c-.414-.707.043-3.594 1.207-7.88.68 1.169 3.54 6.192 4.118 7.81.648 1.824.78 2.347.78 2.347s-1.57-8.082-4.144-12.797a162.286 162.286 0 012.004-6.265c.973 1.71 3.313 5.859 3.828 7.3.102.293.192.543.27.774.023-.137.05-.274.074-.414-.59-2.504-1.75-6.86-3.336-10.082 3.52-18.328 15.531-42.824 27.84-53.754H16.9c-5.387 0-9.789 4.406-9.789 9.789v88.57c0 5.383 4.406 9.789 9.79 9.789h52.897a118.657 118.657 0 01-.297-14.652\"/><path d=\"M65.777 70.762c.68 1.168 3.54 6.188 4.117 7.809.649 1.824.781 2.347.781 2.347s-1.57-8.082-4.144-12.797a164.535 164.535 0 012.004-6.27c.887 1.567 2.922 5.169 3.652 6.872l.082-.961c-.648-2.496-1.633-5.766-2.898-8.328 3.242-16.871 13.68-38.97 24.926-50.898H16.899a6.94 6.94 0 00-6.934 6.933v82.11c17.527-6.731 38.664-12.88 56.855-12.614-.672-2.605-1.441-4.96-2.25-6.324-.414-.707.043-3.597 1.207-7.879\"/><path d=\"M115.95 2.781c-5.5-4.906-12.164-2.933-18.734 2.899a44.347 44.347 0 00-2.914 2.859c-11.25 11.926-21.684 34.023-24.926 50.895 1.262 2.563 2.25 5.832 2.894 8.328.168.64.32 1.242.442 1.754.285 1.207.437 1.996.437 1.996s-.101-.383-.515-1.582c.078-.23-.168-.484-.27-.773-.043-.125-.105-.274-.172-.434-.734-1.703-2.765-5.305-3.656-6.867-.762 2.25-1.437 4.36-2.004 6.265 2.578 4.715 4.149 12.797 4.149 12.797s-.137-.523-.782-2.347c-.578-1.621-3.441-6.64-4.117-7.809-1.164 4.281-1.625 7.172-1.207 7.80.809 1.362 1.574 3.722 2.25 6.323 1.524 5.867 2.586 13.012 2.586 13.012s.031.469.094 1.2a118.653 118.653 0 00.297 14.651c.504 6.11 1.453 11.363 2.664 14.172l.828-.449c-1.781-5.535-2.504-12.793-2.188-21.156.48-12.793 3.422-28.215 8.856-44.289 9.191-24.27 21.938-43.738 33.602-53.035-10.633 9.602-25.023 40.684-29.332 52.195-4.82 12.891-8.238 24.984-10.301 36.574 3.55-10.863 15.047-15.53 15.047-15.53s5.637-6.958 12.227-16.888c-3.95.903-10.43 2.442-12.598 3.352-3.2 1.344-4.067 1.8-4.067 1.8s10.371-6.312 19.27-9.171c12.234-19.27 25.562-46.648 12.141-58.621\"/>` },\n { id: 'k8s', label: 'Kubernetes', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#326CE5', body: `<path d=\"M63.556 1.911a8.51 8.44 0 0 0-3.26.826L15.794 24a8.51 8.44 0 0 0-4.603 5.725L.214 77.484a8.51 8.44 0 0 0 1.154 6.47 8.51 8.44 0 0 0 .485.673l30.799 38.297a8.51 8.44 0 0 0 6.654 3.175l49.393-.011a8.51 8.44 0 0 0 6.654-3.17l30.79-38.303a8.51 8.44 0 0 0 1.644-7.14l-10.996-47.76a8.51 8.44 0 0 0-4.604-5.727L67.681 2.738a8.51 8.44 0 0 0-4.125-.827Zm.44 16.252c1.47 0 2.664 1.327 2.664 2.961 0 .232.014.544.006.758-.034.943-.24 1.662-.364 2.531-.224 1.858-.417 3.4-.3 4.832.105.717.522 1 .869 1.332a63.624 63.624 0 0 0 .062 1.19c8.468.751 16.335 4.625 22.112 10.682l1.011-.723c.343.021 1.1.124 1.618-.176 1.19-.802 2.276-1.915 3.59-3.25.601-.638 1.044-1.245 1.76-1.861.162-.14.409-.328.59-.473 1.278-1.018 3.057-.912 3.974.238.917 1.15.622 2.908-.655 3.928-.18.145-.416.346-.588.473-.758.56-1.456.846-2.212 1.29-1.593.984-2.913 1.8-3.961 2.784-.494.53-.457 1.03-.5 1.508-.148.136-.67.598-.946.848a34.478 34.478 0 0 1 4.99 11.537 34.398 34.398 0 0 1 .56 12.435l1.073.313c.194.274.592.94 1.15 1.156 1.372.431 2.914.59 4.776.785.875.073 1.628.03 2.555.205.222.042.545.13.773.182 1.57.379 2.578 1.822 2.254 3.244-.324 1.422-1.857 2.286-3.437 1.946l-.04-.006c-.016-.004-.033-.012-.05-.016-.221-.048-.497-.098-.69-.148-.91-.245-1.57-.61-2.388-.922-1.763-.632-3.224-1.16-4.647-1.366-.72-.058-1.09.287-1.49.551a39.835 39.835 0 0 0-1.139-.199c-2.552 8.02-7.985 14.966-15.353 19.317.127.306.342.958.443 1.074-.17.449-.421.88-.205 1.572.517 1.34 1.354 2.652 2.363 4.229.488.728.988 1.288 1.428 2.122.105.2.244.507.346.717.685 1.465.183 3.151-1.131 3.785-1.326.639-2.974-.037-3.684-1.51-.1-.208-.244-.485-.33-.683-.377-.864-.507-1.604-.773-2.44-.604-1.772-1.102-3.24-1.827-4.48-.406-.6-.903-.676-1.359-.824-.085-.146-.4-.724-.57-1.024a34.56 34.56 0 0 1-4.57 1.377 34.413 34.413 0 0 1-20.01-1.44l-.604 1.09c-.449.12-.882.244-1.148.561-.97 1.157-1.356 3.016-2.061 4.786-.265.836-.393 1.577-.77 2.441-.086.196-.229.468-.33.676v.008l-.006.006c-.71 1.468-2.352 2.139-3.675 1.502-1.315-.633-1.818-2.32-1.133-3.785.102-.211.236-.517.342-.717.44-.834.94-1.398 1.427-2.127 1.008-1.578 1.895-2.994 2.413-4.334.13-.446-.063-1.057-.237-1.508l.483-1.159c-7.09-4.2-12.688-10.897-15.36-19.181l-1.162.199c-.31-.174-.937-.586-1.531-.539-1.422.206-2.88.733-4.643 1.365-.82.314-1.48.672-2.39.916-.193.052-.47.105-.69.154-.017.004-.034.014-.05.018l-.04.004c-1.58.341-3.112-.523-3.437-1.945-.325-1.422.684-2.865 2.254-3.245l.039-.011.021-.006c.224-.052.51-.125.713-.164.927-.175 1.68-.132 2.555-.205 1.862-.195 3.405-.354 4.775-.785.434-.18.85-.775 1.145-1.155l1.115-.326c-1.25-8.655.864-17.15 5.434-24.027l-.852-.762c-.055-.333-.127-1.101-.537-1.537-1.047-.983-2.366-1.8-3.959-2.783-.756-.445-1.449-.733-2.209-1.293-.16-.12-.376-.3-.55-.444l-.042-.027c-1.278-1.019-1.571-2.778-.654-3.928.516-.647 1.304-.967 2.123-.94a3.168 3.168 0 0 1 1.854.702c.182.143.431.333.593.473.715.614 1.15 1.221 1.752 1.859 1.314 1.334 2.4 2.442 3.592 3.244.626.364 1.107.218 1.582.154.153.113.667.483.961.684a34.262 34.262 0 0 1 17.404-9.943 34.663 34.663 0 0 1 4.815-.74l.062-1.128c.355-.344.753-.837.866-1.377.116-1.43-.073-2.974-.297-4.832-.124-.869-.329-1.588-.364-2.53-.007-.194.004-.462.006-.684 0-.025-.006-.05-.006-.075 0-1.634 1.193-2.959 2.663-2.959zm-3.334 20.66a28.076 28.076 0 0 0-2.84.489 27.438 27.438 0 0 0-13.215 7.201l11.457 8.121.021-.011a2.334 2.334 0 0 0 1.383.449 2.348 2.348 0 0 0 2.346-2.248l.057-.028zm6.675 0 .791 13.95.012.006a2.35 2.35 0 0 0 3.733 1.793l.04.017 11.383-8.07a27.668 27.668 0 0 0-15.959-7.695ZM40.452 51.73a27.432 27.432 0 0 0-3.892 17.365l13.408-3.87.012-.046a2.348 2.348 0 0 0 1.217-.803 2.345 2.345 0 0 0-.295-3.232l.01-.057zm47.014.008-10.402 9.308.006.03a2.329 2.329 0 0 0-.746 1.246 2.35 2.35 0 0 0 1.668 2.789l.011.056L91.48 69.05a27.703 27.703 0 0 0-.58-8.931 27.774 27.774 0 0 0-3.434-8.381ZM61.853 61.81l-2.67 3.324.957 4.153 3.857 1.857 3.848-1.85.957-4.154-2.664-3.33zm13.736 11.395a2.333 2.333 0 0 0-.898.232 2.351 2.351 0 0 0-1.139 3.045l-.017.023L78.92 89.51a27.466 27.466 0 0 0 11.102-13.95l-13.871-2.344-.021.028a2.276 2.276 0 0 0-.542-.04zm-23.293.056a2.378 2.378 0 0 0-.46.04l-.024-.028-13.75 2.332a27.58 27.58 0 0 0 11.07 13.854l5.326-12.873-.039-.053a2.326 2.326 0 0 0 .131-1.446 2.349 2.349 0 0 0-2.254-1.826zm11.616 5.64a2.351 2.351 0 0 0-1.987 1.241h-.012l-6.761 12.225a27.542 27.542 0 0 0 15.031.773 28.056 28.056 0 0 0 2.71-.756l-6.78-12.248h-.051a2.337 2.337 0 0 0-1.053-1.002 2.32 2.32 0 0 0-1.097-.232z\"/>` },\n { id: 'cpp', label: 'C++', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#004482', body: `<path d=\"M63.443 0c-1.782 0-3.564.39-4.916 1.172L11.594 28.27C8.89 29.828 6.68 33.66 6.68 36.78v54.197c0 1.562.55 3.298 1.441 4.841l-.002.002c.89 1.543 2.123 2.89 3.475 3.672l46.931 27.094c2.703 1.562 7.13 1.562 9.832 0h.002l46.934-27.094c1.352-.78 2.582-2.129 3.473-3.672.89-1.543 1.441-3.28 1.441-4.843V36.779c0-1.557-.55-3.295-1.441-4.838v-.002c-.891-1.545-2.121-2.893-3.473-3.67L68.359 1.173C67.008.39 65.226 0 63.443 0zm.002 26.033c13.465 0 26.02 7.246 32.77 18.91l-16.38 9.479c-3.372-5.836-9.66-9.467-16.39-9.467-10.432 0-18.922 8.49-18.922 18.924S53.013 82.8 63.445 82.8c6.735 0 13.015-3.625 16.395-9.465l16.375 9.477c-6.746 11.662-19.305 18.91-32.77 18.91-20.867 0-37.843-16.977-37.843-37.844s16.976-37.844 37.843-37.844v-.002zM92.881 57.57h4.201v4.207h4.203v4.203h-4.203v4.207h-4.201V65.98h-4.207v-4.203h4.207V57.57zm15.765 0h4.208v4.207h4.203v4.203h-4.203v4.207h-4.208V65.98h-4.205v-4.203h4.205V57.57z\"/>` },\n { id: 'c', label: 'C', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#A9BACD', body: `<path d=\"M125 50c-4-32-24-50-62-50C29 0 3 24 3 64c0 39 24 64 64 64 32 0 55-19 58-50H87c-2 11-8 20-20 20-21 0-24-16-24-33 0-23 8-35 22-35 13 0 20 7 22 20z\" />` },\n { id: 'csharp', label: 'C#', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#68217A', body: `<path d=\"M117.5 33.5l.3-.2c-.6-1.1-1.5-2.1-2.4-2.6L67.1 2.9c-.8-.5-1.9-.7-3.1-.7-1.2 0-2.3.3-3.1.7l-48 27.9c-1.7 1-2.9 3.5-2.9 5.4v55.7c0 1.1.2 2.3.9 3.4l-.2.1c.5.8 1.2 1.5 1.9 1.9l48.2 27.9c.8.5 1.9.7 3.1.7 1.2 0 2.3-.3 3.1-.7l48-27.9c1.7-1 2.9-3.5 2.9-5.4V36.1c.1-.8 0-1.7-.4-2.6zm-53.5 70c-21.8 0-39.5-17.7-39.5-39.5S42.2 24.5 64 24.5c14.7 0 27.5 8.1 34.3 20l-13 7.5C81.1 44.5 73.1 39.5 64 39.5c-13.5 0-24.5 11-24.5 24.5s11 24.5 24.5 24.5c9.1 0 17.1-5 21.3-12.4l12.9 7.6c-6.8 11.8-19.6 19.8-34.2 19.8zM115 62h-3.2l-.9 4h4.1v5h-5l-1.2 6h-4.9l1.2-6h-3.8l-1.2 6h-4.8l1.2-6H94v-5h3.5l.9-4H94v-5h5.3l1.2-6h4.9l-1.2 6h3.8l1.2-6h4.8l-1.2 6h2.2v5zm-12.7 4h3.8l.9-4h-3.8z\"/>` },\n { id: 'lisp', label: 'Lisp', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#5881D8', body: `<path d=\"M61.659 64.898a265.825 265.825 0 00-1.867 4.12c-2.322 5.241-4.894 11.62-5.834 15.706-.337 1.455-.546 3.258-.542 5.258 0 .79.043 1.622.11 2.469a30.74 30.74 0 0010.533 1.87 30.796 30.796 0 009.642-1.566 18.09 18.09 0 01-2.011-2.12c-4.11-5.221-6.403-12.872-10.031-25.737M46.485 38.96c-7.85 5.51-12.986 14.6-13.005 24.9.019 10.145 5.001 19.116 12.653 24.65 1.877-7.789 6.582-14.92 13.637-29.214a114.691 114.691 0 00-1.43-3.72c-1.955-4.884-4.776-10.556-7.294-13.124-1.283-1.342-2.84-2.502-4.561-3.492\"/><path d=\"M90.697 98.798c-4.05-.506-7.392-1.116-10.317-2.144a36.708 36.708 0 01-16.32 3.807c-20.293 0-36.742-16.383-36.745-36.602 0-10.97 4.852-20.805 12.528-27.512-2.053-.495-4.194-.783-6.38-.779-10.782.101-22.162 6.044-26.9 22.095-.443 2.337-.337 4.103-.337 6.197 0 31.818 25.895 57.613 57.835 57.613 19.561 0 36.841-9.682 47.305-24.489-5.66 1.405-11.103 2.077-15.763 2.091-1.747 0-3.387-.093-4.906-.277\"/><path d=\"M79.829 87.634c.357.176 1.167.464 2.293.783 7.579-5.542 12.504-14.469 12.523-24.558h-.003c-.028-16.82-13.693-30.43-30.582-30.462a30.765 30.765 0 00-9.602 1.554c6.21 7.05 9.196 17.127 12.084 28.148l.005.013c.005.009.924 3.06 2.501 7.11 1.566 4.042 3.797 9.048 6.23 12.696 1.597 2.444 3.354 4.2 4.551 4.716\"/><path d=\"M17.057 30.311c5.463-3.408 11.04-4.637 15.908-4.593 6.722.02 12.008 2.096 14.544 3.516.612.352 1.194.73 1.764 1.12a36.714 36.714 0 0114.786-3.096c20.295.003 36.747 16.386 36.75 36.601-.003 10.192-4.188 19.408-10.934 26.044a45.3 45.3 0 005.225.29c6.406.004 13.329-1.404 18.52-5.753 3.384-2.84 6.22-6.998 7.792-13.233.307-2.408.484-4.856.484-7.347 0-31.817-25.892-57.614-57.835-57.614-19.372 0-36.508 9.5-47.004 24.065z\"/>` },\n { id: 'haskell', label: 'Haskell', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#5E5187', body: `<path d=\"M0 110.2L30.1 65 0 19.9h22.6L52.7 65l-30.1 45.1H0z\"/><path d=\"M30.1 110.2L60.2 65 30.1 19.9h22.6l60.2 90.3H90.4L71.5 81.9l-18.8 28.2H30.1z\"/><path d=\"M102.9 83.8l-10-15.1H128v15.1h-25.1zM87.8 61.3l-10-15.1H128v15.1H87.8z\"/>` },\n { id: 'spark', label: 'Spark', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#E15919', body: `<path d=\"M57.646.004c-2.269.064-4.51 1.143-6.384 3.223-1.03 1.146-1.905 2.51-2.63 3.855-1.89 3.54-2.262 7.547-2.962 11.43l-3.852 21.81c-.148.856-.532 1.21-1.3 1.455l-28.268 8.98c-2.06.673-4.125 1.543-5.947 2.7-5.558 3.53-6.38 9.338-2.207 14.438 1.842 2.256 4.216 3.843 6.85 4.996l17.603 7.843c.147.08.304.132.463.162l3.717 2.682s-3.7 40.948 3.246 43.781c-.061-.01-.41-.082-.41-.082s.704.761 2.603.537c1.454.27 1.262.226.074-.01 2.583-.334 7.337-2.497 15.578-10.784a47.396 47.396 0 0 0 1.776-1.676l17.8-19.217 4.163 1.465c.15.207.367.34.714.443l19.823 6.031c2.709.836 5.389 1.448 8.277 1.026 5.156-.755 8.951-5 8.9-10.192-.02-2.28-.82-4.339-1.87-6.324l-13.128-24.898c-.418-.787-.405-1.296.196-2l22.054-25.922c1.428-1.703 2.717-3.529 3.465-5.645 1.643-4.67-.482-8.382-5.33-9.289-2.229-.398-4.427-.188-6.6.385l-31.597 8.395c-.93.25-1.39.075-1.895-.772l-12.9-21.434c-.975-1.615-2.14-3.194-3.477-4.527C62.212.89 59.915-.059 57.646.004zm.944 19.736c.51.358.768.727 1.01 1.125l13.88 23.13c.382.628.725.85 1.485.648l24.443-6.497 5.885-1.54c-.087.493-.302.79-.537 1.068l-20.16 23.672c-.57.688-.623 1.17-.194 1.976l12.743 24.16.585 1.237-.015.02-22.727-6.264-.006-.018-4.298-1.205-25.493 28.256 4.663-37.15-4.184-1.82.008-.007-23.674-9.4c.454-.413.86-.585 1.285-.717l28.777-9.096c.676-.21 1.061-.47 1.125-1.242l.403-2.355 3.875-21.807 1.12-6.174z\"/>` },\n { id: 'rabbitmq', label: 'RabbitMQ', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#FF6600', body: `<path d=\"M119.517 51.188H79.291a3.641 3.641 0 0 1-3.64-3.642V5.62A5.605 5.605 0 0 0 70.028 0H55.66a5.606 5.606 0 0 0-5.627 5.62v41.646a3.913 3.913 0 0 1-3.92 3.925l-13.188.047c-2.176 0-3.972-1.75-3.926-3.926l.094-41.687A5.606 5.606 0 0 0 23.467 0H9.1a5.61 5.61 0 0 0-5.626 5.625V122.99c0 2.737 2.22 5.01 5.01 5.01h111.033a5.014 5.014 0 0 0 5.008-5.011V56.195a4.975 4.975 0 0 0-5.008-5.007zM100.66 95.242a6.545 6.545 0 0 1-6.525 6.524H82.791a6.545 6.545 0 0 1-6.523-6.524V83.9a6.545 6.545 0 0 1 6.523-6.524h11.343a6.545 6.545 0 0 1 6.525 6.523zm0 0\"/>` },\n { id: 'javascript', label: 'JavaScript', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#F0DB4F', body: `<path d=\"M2 1v125h125V1H2zm66.119 106.513c-1.845 3.749-5.367 6.212-9.448 7.401-6.271 1.44-12.269.619-16.731-2.059-2.986-1.832-5.318-4.652-6.901-7.901l9.52-5.83c.083.035.333.487.667 1.071 1.214 2.034 2.261 3.474 4.319 4.485 2.022.69 6.461 1.131 8.175-2.427 1.047-1.81.714-7.628.714-14.065C58.433 78.073 58.48 68 58.48 58h11.709c0 11 .06 21.418 0 32.152.025 6.58.596 12.446-2.07 17.361zm48.574-3.308c-4.07 13.922-26.762 14.374-35.83 5.176-1.916-2.165-3.117-3.296-4.26-5.795 4.819-2.772 4.819-2.772 9.508-5.485 2.547 3.915 4.902 6.068 9.139 6.949 5.748.702 11.531-1.273 10.234-7.378-1.333-4.986-11.77-6.199-18.873-11.531-7.211-4.843-8.901-16.611-2.975-23.335 1.975-2.487 5.343-4.343 8.877-5.235l3.688-.477c7.081-.143 11.507 1.727 14.756 5.355.904.916 1.642 1.904 3.022 4.045-3.772 2.404-3.76 2.381-9.163 5.879-1.154-2.486-3.069-4.046-5.093-4.724-3.142-.952-7.104.083-7.926 3.403-.285 1.023-.226 1.975.227 3.665 1.273 2.903 5.545 4.165 9.377 5.926 11.031 4.474 14.756 9.271 15.672 14.981.882 4.916-.213 8.105-.38 8.581z\"/>` },\n { id: 'typescript', label: 'TypeScript', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#007ACC', body: `<rect x=\"2\" y=\"2\" width=\"124\" height=\"124\" rx=\"2\"/><text x=\"64\" y=\"92\" text-anchor=\"middle\" fill=\"#fff\" font-family=\"Arial,Helvetica,sans-serif\" font-size=\"58\" font-weight=\"700\">TS</text>` },\n { id: 'react', label: 'React', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#61DAFB', body: `<g><circle cx=\"64\" cy=\"64\" r=\"11.4\"/><path d=\"M107.3 45.2c-2.2-.8-4.5-1.6-6.9-2.3.6-2.4 1.1-4.8 1.5-7.1 2.1-13.2-.2-22.5-6.6-26.1-1.9-1.1-4-1.6-6.4-1.6-7 0-15.9 5.2-24.9 13.9-9-8.7-17.9-13.9-24.9-13.9-2.4 0-4.5.5-6.4 1.6-6.4 3.7-8.7 13-6.6 26.1.4 2.3.9 4.7 1.5 7.1-2.4.7-4.7 1.4-6.9 2.3C8.2 50 1.4 56.6 1.4 64s6.9 14 19.3 18.8c2.2.8 4.5 1.6 6.9 2.3-.6 2.4-1.1 4.8-1.5 7.1-2.1 13.2.2 22.5 6.6 26.1 1.9 1.1 4 1.6 6.4 1.6 7.1 0 16-5.2 24.9-13.9 9 8.7 17.9 13.9 24.9 13.9 2.4 0 4.5-.5 6.4-1.6 6.4-3.7 8.7-13 6.6-26.1-.4-2.3-.9-4.7-1.5-7.1 2.4-.7 4.7-1.4 6.9-2.3 12.5-4.8 19.3-11.4 19.3-18.8s-6.8-14-19.3-18.8zM92.5 14.7c4.1 2.4 5.5 9.8 3.8 20.3-.3 2.1-.8 4.3-1.4 6.6-5.2-1.2-10.7-2-16.5-2.5-3.4-4.8-6.9-9.1-10.4-13 7.4-7.3 14.9-12.3 21-12.3 1.3 0 2.5.3 3.5.9zM81.3 74c-1.8 3.2-3.9 6.4-6.1 9.6-3.7.3-7.4.4-11.2.4-3.9 0-7.6-.1-11.2-.4-2.2-3.2-4.2-6.4-6-9.6-1.9-3.3-3.7-6.7-5.3-10 1.6-3.3 3.4-6.7 5.3-10 1.8-3.2 3.9-6.4 6.1-9.6 3.7-.3 7.4-.4 11.2-.4 3.9 0 7.6.1 11.2.4 2.2 3.2 4.2 6.4 6 9.6 1.9 3.3 3.7 6.7 5.3 10-1.7 3.3-3.4 6.6-5.3 10zm8.3-3.3c1.5 3.5 2.7 6.9 3.8 10.3-3.4.8-7 1.4-10.8 1.9 1.2-1.9 2.5-3.9 3.6-6 1.2-2.1 2.3-4.2 3.4-6.2zM64 97.8c-2.4-2.6-4.7-5.4-6.9-8.3 2.3.1 4.6.2 6.9.2 2.3 0 4.6-.1 6.9-.2-2.2 2.9-4.5 5.7-6.9 8.3zm-18.6-15c-3.8-.5-7.4-1.1-10.8-1.9 1.1-3.3 2.3-6.8 3.8-10.3 1.1 2 2.2 4.1 3.4 6.1 1.2 2.2 2.4 4.1 3.6 6.1zm-7-25.5c-1.5-3.5-2.7-6.9-3.8-10.3 3.4-.8 7-1.4 10.8-1.9-1.2 1.9-2.5 3.9-3.6 6-1.2 2.1-2.3 4.2-3.4 6.2zM64 30.2c2.4 2.6 4.7 5.4 6.9 8.3-2.3-.1-4.6-.2-6.9-.2-2.3 0-4.6.1-6.9.2 2.2-2.9 4.5-5.7 6.9-8.3zm22.2 21l-3.6-6c3.8.5 7.4 1.1 10.8 1.9-1.1 3.3-2.3 6.8-3.8 10.3-1.1-2.1-2.2-4.2-3.4-6.2zM31.7 35c-1.7-10.5-.3-17.9 3.8-20.3 1-.6 2.2-.9 3.5-.9 6 0 13.5 4.9 21 12.3-3.5 3.8-7 8.2-10.4 13-5.8.5-11.3 1.4-16.5 2.5-.6-2.3-1-4.5-1.4-6.6zM7 64c0-4.7 5.7-9.7 15.7-13.4 2-.8 4.2-1.5 6.4-2.1 1.6 5 3.6 10.3 6 15.6-2.4 5.3-4.5 10.5-6 15.5C15.3 75.6 7 69.6 7 64zm28.5 49.3c-4.1-2.4-5.5-9.8-3.8-20.3.3-2.1.8-4.3 1.4-6.6 5.2 1.2 10.7 2 16.5 2.5 3.4 4.8 6.9 9.1 10.4 13-7.4 7.3-14.9 12.3-21 12.3-1.3 0-2.5-.3-3.5-.9zM96.3 93c1.7 10.5.3 17.9-3.8 20.3-1 .6-2.2.9-3.5.9-6 0-13.5-4.9-21-12.3 3.5-3.8 7-8.2 10.4-13 5.8-.5 11.3-1.4 16.5-2.5.6 2.3 1 4.5 1.4 6.6zm9-15.6c-2 .8-4.2 1.5-6.4 2.1-1.6-5-3.6-10.3-6-15.6 2.4-5.3 4.5-10.5 6-15.5 13.8 4 22.1 10 22.1 15.6 0 4.7-5.8 9.7-15.7 13.4z\"/></g>` },\n { id: 'vuejs', label: 'Vue.js', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#41B883', body: `<path d=\"M25.997 9.393l23.002.009L64.035 34.36 79.018 9.404 102 9.398 64.15 75.053z\" fill=\"#fff\"/><path d=\"M.91 9.569l25.067-.172 38.15 65.659L101.98 9.401l25.11.026-62.966 108.06z\"/>` },\n { id: 'nodejs', label: 'Node.js', category: 'lang', ratio: 0.92, brandColor: '#5FA04E', body: `<path d=\"M12 2.2l8.5 4.9v9.8l-8.5 4.9-8.5-4.9V7.1z\" /><path d=\"M8.8 15V9l6.4 6V9\" />` },\n { id: 'go', label: 'Go', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#00ACD7', body: `<g fill-rule=\"evenodd\"><path d=\"M11.156 54.829c-.243 0-.303-.122-.182-.303l1.273-1.637c.12-.182.424-.303.666-.303H34.55c.243 0 .303.182.182.364l-1.03 1.576c-.121.181-.424.363-.606.363zM2.004 60.404c-.242 0-.303-.12-.182-.303l1.273-1.636c.121-.182.424-.303.667-.303h27.636c.242 0 .364.182.303.364l-.485 1.454c-.06.243-.303.364-.545.364zM16.67 65.98c-.242 0-.302-.182-.181-.364l.848-1.515c.122-.182.364-.363.607-.363h12.12c.243 0 .364.181.364.424l-.12 1.454c0 .243-.243.425-.425.425zM79.58 53.738c-3.819.97-6.425 1.697-10.182 2.666-.91.243-.97.303-1.758-.606-.909-1.03-1.576-1.697-2.848-2.303-3.819-1.878-7.516-1.333-10.97.91-4.121 2.666-6.242 6.605-6.182 11.514.06 4.849 3.394 8.849 8.182 9.516 4.121.545 7.576-.91 10.303-4 .545-.667 1.03-1.394 1.636-2.243H56.064c-1.272 0-1.575-.788-1.151-1.818.788-1.879 2.242-5.03 3.09-6.606.183-.364.607-.97 1.516-.97h22.06c-.12 1.637-.12 3.273-.363 4.91-.667 4.363-2.303 8.363-4.97 11.878-4.364 5.758-10.06 9.333-17.273 10.303-5.939.788-11.454-.364-16.302-4-4.485-3.394-7.03-7.879-7.697-13.454-.788-6.606 1.151-12.546 5.151-17.758 4.303-5.636 10-9.212 16.97-10.485 5.697-1.03 11.151-.363 16.06 2.97 3.212 2.121 5.515 5.03 7.03 8.545.364.546.122.849-.606 1.03z\"/><path d=\"M99.64 87.253c-5.515-.122-10.546-1.697-14.788-5.334-3.576-3.09-5.818-7.03-6.545-11.697-1.091-6.848.787-12.909 4.909-18.302 4.424-5.819 9.757-8.849 16.97-10.122 6.181-1.09 12-.484 17.272 3.091 4.788 3.273 7.757 7.697 8.545 13.515 1.03 8.182-1.333 14.849-6.97 20.546-4 4.06-8.909 6.606-14.545 7.757-1.636.303-3.273.364-4.848.546zm14.424-24.485c-.06-.788-.06-1.394-.182-2-1.09-6-6.606-9.394-12.363-8.06-5.637 1.272-9.273 4.848-10.606 10.545-1.091 4.727 1.212 9.515 5.575 11.454 3.334 1.455 6.667 1.273 9.879-.363 4.788-2.485 7.394-6.364 7.697-11.576z\" fill-rule=\"nonzero\"/></g>` },\n { id: 'golang', label: 'Golang', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#6AD7E5', body: `<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M21.1 68.7c.2 3.5 3.7 1.9 5.3.8 1.5-1.1 2-.2 2.1-2.3.1-1.4.2-2.7.2-4.1-2.3-.2-4.8.3-6.7 1.7-.9.7-2.8 3-.9 3.9\"/><path fill=\"#231F20\" d=\"M23 71.2c-.7 0-2-.3-2.2-2.3-.6-.4-.8-.9-.8-1.2-.1-1.2 1.2-2.6 1.9-3.1 1.6-1.2 3.7-1.8 5.9-1.8h1.3v.3c.1 1.1 0 2.2-.1 3.2 0 .3 0 .6-.1.9-.1 1.5-.4 1.7-1.1 2-.3.1-.6.2-1.1.6-.5.3-2.2 1.4-3.7 1.4zm4.8-7.8c-2.1 0-4 .6-5.5 1.7-.7.5-1.7 1.7-1.6 2.5 0 .3.2.6.6.8l.2.1v.2c.1 1.6.9 1.8 1.5 1.8 1 0 2.4-.7 3.3-1.3.6-.4 1-.5 1.3-.6.5-.2.6-.2.7-1.4 0-.3 0-.6.1-.9.1-.9.1-1.9.1-2.8-.3-.1-.5-.1-.7-.1z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M21.1 68.7c.5-.2 1.1-.3 1.4-.8\"/><path fill=\"#231F20\" d=\"M21.1 69c-.1 0-.3-.1-.3-.2-.1-.2 0-.4.2-.4.1 0 .2-.1.2-.1.4-.2.8-.3 1-.6.1-.1.3-.2.5-.1.1.1.2.3.1.5-.4.5-.9.7-1.3.8l-.2.1h-.2z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M29.3 26.4c-13.6-3.8-3.5-21.1 7.4-14l-7.4 14z\"/><path fill=\"#231F20\" d=\"M29.5 26.8l-.3-.1c-7-2-6.9-7-6.7-8.5.5-3.8 4.1-7.8 8.9-7.8 1.9 0 3.7.6 5.5 1.8l.3.2-7.7 14.4zm1.9-15.7c-4.5 0-7.8 3.7-8.3 7.2-.5 3.6 1.7 6.4 6 7.7l7.1-13.5c-1.5-.9-3.1-1.4-4.8-1.4z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M89.6 11.1c10.7-7.5 20.5 9.5 8 13.8l-8-13.8z\"/><path fill=\"#231F20\" d=\"M97.5 25.3L89.2 11l.3-.2c1.9-1.3 3.8-2 5.7-2 4.6 0 7.9 3.8 8.6 7.5.3 1.5.6 6.6-6 8.8l-.3.2zm-7.4-14l7.7 13.3c3.9-1.4 5.9-4.4 5.3-8-.6-3.4-3.7-6.9-7.9-6.9-1.7-.1-3.4.4-5.1 1.6z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M92 112.3c2.7 1.7 7.7 6.8 3.6 9.3-3.9 3.6-6.1-4-9.6-5 1.5-2 3.4-3.9 6-4.3\"/><path fill=\"#231F20\" d=\"M93.5 122.9c-1.6 0-3-1.6-4.2-3.1-1.1-1.2-2.2-2.5-3.4-2.9l-.5-.1.3-.4c1.2-1.7 3.2-3.9 6.2-4.4h.1l.1.1c1.7 1.1 5.4 4.2 5.3 7.1 0 1.1-.6 2-1.7 2.7-.7.7-1.4 1-2.2 1zm-7-6.5c1.2.5 2.2 1.8 3.2 2.9 1.2 1.5 2.4 2.8 3.7 2.8.6 0 1.2-.3 1.8-.9h.1c.9-.6 1.4-1.3 1.4-2.2 0-2.3-2.9-5.2-4.9-6.5-1.8.5-3.6 1.7-5.3 3.9zm9.1 5.5c-.1 0-.2-.1-.3-.2-.2-.4-.4-.9-.5-1.3-.3-.8-.6-1.6-1.2-2.2-.1-.1-.1-.3 0-.5.1-.1.3-.1.5 0 .7.7 1.1 1.6 1.4 2.5l.5 1.2c.1.2 0 .4-.1.5h-.3z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M43.2 118.1c-3.2.5-5 3.4-7.7 4.9-2.5 1.5-3.5-.5-3.7-.9-.4-.2-.4.2-1-.4-2.3-3.7 2.4-6.4 4.9-8.2 3.5-.8 5.7 2.2 7.5 4.6\"/><path fill=\"#231F20\" d=\"M33.8 123.8c-1.3 0-2-1.1-2.2-1.5h-.1c-.3 0-.5-.1-.9-.5v-.1c-2.2-3.5 1.6-6.2 4.1-8l.9-.6h.2c.4-.1.7-.1 1.1-.1 3 0 4.9 2.6 6.5 4.7l.5.7-.6.1c-1.9.3-3.3 1.5-4.7 2.7-.9.8-1.8 1.5-2.8 2.1-.8.3-1.4.5-2 .5zm-2.2-2.1c.1 0 .2 0 .4.1h.1l.1.1c.2.3.7 1.2 1.7 1.2.5 0 1-.2 1.5-.5 1-.5 1.9-1.3 2.7-2 1.3-1.1 2.7-2.3 4.5-2.8-1.5-2-3.3-4.2-5.8-4.2-.3 0-.6 0-.9.1l-.8.6c-2.6 1.8-5.8 4.1-3.9 7.1.1.2.2.3.4.3zm.2.7c-.2 0-.4-.2-.3-.4.1-1 .6-1.7 1.1-2.5.3-.4.5-.8.7-1.2.1-.2.3-.2.4-.2.2.1.2.3.2.4-.2.5-.5.9-.8 1.3-.5.7-.9 1.3-1 2.1 0 .4-.1.5-.3.5z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#231F20\" d=\"M29.9 21.7c-1.8-.9-3.1-2.2-2-4.3 1-1.9 2.9-1.7 4.7-.8l-2.7 5.1zm64.9-1.8c1.8-.9 3.1-2.2 2-4.3-1-1.9-2.9-1.7-4.7-.8l2.7 5.1z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M107.1 68.2c-.2 3.5-3.7 1.9-5.3.8-1.5-1.1-2-.2-2.1-2.3-.1-1.4-.2-2.7-.2-4.1 2.3-.2 4.8.3 6.7 1.7 1 .8 2.8 3 .9 3.9\"/><path fill=\"#231F20\" d=\"M105.3 70.7c-1.5 0-3.2-1.1-3.7-1.4-.5-.3-.8-.5-1.1-.6-.8-.3-1-.5-1.1-2 0-.3 0-.6-.1-.9-.1-1-.2-2.1-.1-3.2v-.3h1.3c2.2 0 4.3.6 5.9 1.8.7.5 2 1.9 1.9 3.1 0 .4-.2.9-.8 1.2-.2 2-1.5 2.3-2.2 2.3zM99.8 63c0 .9 0 1.9.1 2.8 0 .3 0 .6.1.9.1 1.2.2 1.2.7 1.4.3.1.7.3 1.3.6.9.6 2.3 1.3 3.3 1.3.6 0 1.4-.2 1.5-1.8V68l.2-.1c.4-.2.6-.4.6-.8.1-.8-.9-2-1.6-2.5-1.5-1.1-3.5-1.7-5.5-1.7-.2.1-.4.1-.7.1z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M107.1 68.2c-.5-.2-1.1-.3-1.4-.8\"/><path fill=\"#231F20\" d=\"M107.1 68.6h-.1l-.2-.1c-.5-.2-1-.3-1.3-.8-.1-.1-.1-.4.1-.5.1-.1.4-.1.5.1.2.3.6.4 1 .6.1 0 .2.1.2.1.2.1.3.3.2.4-.1.1-.3.2-.4.2z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M62.8 4c13.6 0 26.3 1.9 33 15 6 14.6 3.8 30.4 4.8 45.9.8 13.3 2.5 28.6-3.6 40.9-6.5 12.9-22.7 16.2-36 15.7-10.5-.4-23.1-3.8-29.1-13.4-6.9-11.2-3.7-27.9-3.2-40.4.6-14.8-4-29.7.9-44.1C34.5 8.5 48.1 5.1 62.8 4\"/><path fill=\"#231F20\" d=\"M63.3 121.9h-2.5c-4.1-.1-10.3-.8-16.4-3.3-5.9-2.4-10.2-5.8-13-10.3-5.6-9.1-4.6-21.6-3.7-32.7.2-2.8.4-5.4.5-7.9.2-5.2-.2-10.6-.7-15.7-.8-9.4-1.6-19.1 1.5-28.5 2.4-7 6.7-12 13.2-15.2 5.1-2.5 11.4-3.9 20.4-4.6C76 3.6 89.3 5.5 96 18.8c4.4 10.7 4.4 22.2 4.5 33.3 0 4.2 0 8.5.3 12.7.1 1.3.2 2.6.2 3.9.8 12.2 1.7 26-3.9 37.2-2.8 5.7-7.7 9.9-14.4 12.6-5.4 2.2-12.2 3.4-19.4 3.4zM62.8 4.3c-14.1 1.1-27.9 4.2-33 19.4-3.1 9.3-2.3 18.9-1.5 28.2.4 5.2.9 10.5.7 15.8-.1 2.5-.3 5.1-.5 7.9-.9 11-1.9 23.4 3.6 32.3 2.3 3.7 9.7 12.5 28.8 13.2h2.5c22.1 0 30.3-9.8 33.3-15.6 5.5-11 4.6-24.8 3.9-36.9-.1-1.3-.2-2.6-.2-3.9-.2-4.2-.3-8.5-.3-12.7-.1-11-.1-22.5-4.4-33.1C92.7 13 88.2 9 82 6.7c-6.4-2.1-13.6-2.4-19.2-2.4z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#fff\" d=\"M65.2 22.2c2.4 14.2 25.6 10.4 22.3-3.9-3-12.8-23.1-9.2-22.3 3.9\"/><path fill=\"#231F20\" d=\"M76.2 31.5c-4.5 0-10.2-2.4-11.4-9.2-.2-3.2.8-6.1 2.9-8.3 2.3-2.5 5.8-3.9 9.4-3.9 4.2 0 9.2 2.2 10.6 8.3.8 3.4.2 6.4-1.7 8.8-2.1 2.6-5.8 4.3-9.8 4.3zm-10.7-9.3c.5 2.8 1.8 5 3.9 6.6 1.8 1.4 4.3 2.1 6.8 2.1 3.7 0 7.3-1.6 9.3-4.1 1.8-2.2 2.3-5.1 1.6-8.3-1.3-5.7-6-7.7-10-7.7-3.4 0-6.7 1.4-8.9 3.7-1.9 2-2.9 4.7-2.7 7.7z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#fff\" d=\"M37.5 24.5c3.2 12.3 22.9 9.2 22.2-3.2-.9-14.8-25.3-12-22.2 3.2\"/><path fill=\"#231F20\" d=\"M48 32.7c-4.3 0-9.3-2.1-10.9-8.1-.7-3.5 0-6.7 2-9.1 2.2-2.7 5.8-4.3 9.7-4.3 5.2 0 10.7 3.1 11.1 10.1.2 2.9-.7 5.5-2.7 7.6-2.1 2.3-5.6 3.8-9.2 3.8zm.8-20.8c-3.7 0-7.1 1.5-9.2 4-1.9 2.3-2.5 5.2-1.8 8.5C39.2 30 44 32 48 32c3.4 0 6.7-1.3 8.8-3.6 1.8-1.9 2.7-4.4 2.5-7.1-.2-4.3-3.1-9.4-10.5-9.4z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#fff\" d=\"M68 39.2c0 1.8.4 3.9.1 5.9-.5.9-1.4 1-2.2 1.3-1.1-.2-2-.9-2.5-1.9-.3-2.2.1-4.4.2-6.6l4.4 1.3z\"/><path fill=\"#231F20\" d=\"M65.9 46.8c-1.3-.2-2.3-1-2.8-2.1-.2-1.6-.1-3.1 0-4.6.1-.7.1-1.4.1-2.1v-.4l5.1 1.6v.2c0 .6.1 1.2.1 1.9.1 1.3.2 2.7 0 4v.1c-.4.8-1.1 1-1.8 1.3-.2-.1-.4 0-.7.1zm-2.2-2.4c.4.9 1.2 1.5 2.1 1.7.2-.1.4-.1.5-.2.6-.2 1.1-.4 1.4-.9.2-1.2.1-2.5 0-3.8 0-.6-.1-1.2-.1-1.7l-3.8-1.2c0 .6-.1 1.2-.1 1.7-.1 1.6-.2 3 0 4.4z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#231F20\" d=\"M46.3 22.5c0 2-1.5 3.6-3.3 3.6-1.8 0-3.3-1.6-3.3-3.6s1.5-3.6 3.3-3.6c1.8 0 3.3 1.6 3.3 3.6\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#fff\" d=\"M45.2 23.3c0 .5-.4.9-.8.9s-.8-.4-.8-.9.4-.9.8-.9c.5 0 .8.4.8.9\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#231F20\" d=\"M74.2 21.6c0 2-1.5 3.6-3.3 3.6-1.8 0-3.3-1.6-3.3-3.6s1.5-3.6 3.3-3.6c1.8 0 3.3 1.6 3.3 3.6\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#fff\" d=\"M73.2 22.4c0 .5-.3.9-.8.9-.4 0-.8-.4-.8-.9s.3-.9.8-.9c.4 0 .8.4.8.9M58.4 39c-1.5 3.5.8 10.6 4.8 5.4-.3-2.2.1-4.4.2-6.6l-5 1.2z\"/><path fill=\"#231F20\" d=\"M60.5 46.6c-.7 0-1.4-.4-1.9-1.2-1.1-1.6-1.3-4.6-.5-6.5l.1-.2 5.5-1.4v.4l-.1 2.2c-.1 1.5-.2 2.9 0 4.4v.1l-.1.1c-1 1.4-2 2.1-3 2.1zm-1.8-7.3c-.6 1.7-.4 4.4.5 5.7.4.6.8.9 1.3.9.7 0 1.5-.6 2.3-1.6-.2-1.5-.1-3 .1-4.4l.1-1.7-4.3 1.1z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M58.9 32.2c-2.7.2-4.9 3.5-3.5 6 1.9 3.4 6-.3 8.6 0 3 .1 5.4 3.2 7.8.6 2.7-2.9-1.2-5.7-4.1-7l-8.8.4z\"/><path fill=\"#231F20\" d=\"M69.7 40.2c-.9 0-1.8-.4-2.7-.8-.9-.4-1.9-.8-3-.8h-.3c-.8 0-1.7.3-2.7.7-1.1.4-2.2.7-3.2.7-1.2 0-2.1-.5-2.7-1.6-.7-1.2-.6-2.6.1-3.9.8-1.5 2.2-2.4 3.7-2.6l8.9-.4h.1c2.2.9 4.7 2.6 5.2 4.6.2 1-.1 2-.9 2.9-.8.9-1.6 1.2-2.5 1.2zM64.1 38c1.1 0 2.2.5 3.2.9.9.4 1.7.7 2.5.7.7 0 1.3-.3 1.9-.9.7-.7.9-1.5.8-2.3-.4-1.7-2.8-3.3-4.7-4.1l-8.7.4c-1.3.1-2.5 1-3.2 2.2-.6 1.1-.6 2.3-.1 3.3.5.9 1.1 1.3 2.1 1.3.9 0 1.9-.4 2.9-.7 1.1-.4 2-.7 3-.7 0-.2.1-.2.3-.1z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#231F20\" d=\"M58.6 32.1c-.2-4.7 8.8-5.3 9.8-1.4 1.1 4-9.4 4.9-9.8 1.4\"/>` },\n { id: 'rust', label: 'Rust', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#000000', body: `<path d=\"M62.96.242c-.232.135-1.203 1.528-2.16 3.097-2.4 3.94-2.426 3.942-5.65.55-2.098-2.208-2.605-2.612-3.28-2.607-.44.002-.995.152-1.235.332-.24.18-.916 1.612-1.504 3.183-1.346 3.6-1.41 3.715-2.156 3.86-.46.086-1.343-.407-3.463-1.929-1.565-1.125-3.1-2.045-3.411-2.045-1.291 0-1.655.706-2.27 4.4-.78 4.697-.754 4.681-4.988 2.758-1.71-.776-3.33-1.41-3.603-1.41-.274 0-.792.293-1.15.652-.652.652-.653.655-.475 4.246l.178 3.595-.68.364c-.602.322-1.017.283-3.684-.348-3.48-.822-4.216-.8-4.92.15l-.516.693.692 2.964c.38 1.63.745 3.2.814 3.487.067.287-.05.746-.26 1.02-.348.448-.717.49-3.94.44-5.452-.086-5.761.382-3.51 5.3.718 1.56 1.305 2.98 1.305 3.15 0 .898-.717 1.224-3.794 1.727-1.722.28-3.218.51-3.326.51-.107 0-.43.235-.717.522-.937.936-.671 1.816 1.453 4.814 2.646 3.735 2.642 3.75-1.73 5.421-4.971 1.902-5.072 2.37-1.287 5.96 3.525 3.344 3.53 3.295-.461 5.804C.208 62.8.162 62.846.085 63.876c-.093 1.253-.071 1.275 3.538 3.48 3.57 2.18 3.57 2.246.067 5.56C-.078 76.48.038 77 5.013 78.877c4.347 1.64 4.353 1.66 1.702 5.394-1.502 2.117-1.981 3-1.981 3.653 0 1.223.637 1.535 4.44 2.174 3.206.54 3.92.857 3.92 1.741 0 .182-.588 1.612-1.307 3.177-2.236 4.87-1.981 5.275 3.31 5.275 4.93 0 4.799-.15 3.737 4.294-.8 3.35-.813 3.992-.088 4.715.554.556 1.6.494 4.87-.289 2.499-.596 2.937-.637 3.516-.328l.66.354-.177 3.594c-.178 3.593-.177 3.595.475 4.248.358.36.884.652 1.165.652.282 0 1.903-.63 3.604-1.404 4.22-1.916 4.194-1.932 4.973 2.75.617 3.711.977 4.4 2.294 4.4.327 0 1.83-.88 3.34-1.958 2.654-1.893 3.342-2.19 4.049-1.74.182.115.89 1.67 1.572 3.455 1.003 2.625 1.37 3.31 1.929 3.576 1.062.51 1.72.1 4.218-2.62 3.016-3.286 3.14-3.27 5.602.72 2.72 4.406 3.424 4.396 6.212-.089 2.402-3.864 2.374-3.862 5.621-.47 2.157 2.25 2.616 2.61 3.343 2.61.464 0 1.019-.175 1.23-.388.214-.213.92-1.786 1.568-3.496.649-1.71 1.321-3.2 1.495-3.31.687-.436 1.398-.13 4.048 1.752 1.56 1.108 3.028 1.96 3.377 1.96 1.296 0 1.764-.92 2.302-4.535.46-3.082.554-3.378 1.16-3.685.596-.302.954-.2 3.75 1.07 1.701.77 3.323 1.402 3.604 1.402.282 0 .816-.302 1.184-.672l.672-.67-.184-3.448c-.177-3.29-.16-3.468.364-3.943.54-.488.596-.486 3.615.204 3.656.835 4.338.857 5.025.17.671-.67.664-.818-.254-4.69-1.03-4.346-1.168-4.19 3.78-4.19 3.374 0 3.75-.049 4.18-.523.718-.793.547-1.702-.896-4.779-.729-1.55-1.32-2.96-1.315-3.135.024-.914.743-1.227 4.065-1.767 2.033-.329 3.553-.71 3.829-.96.923-.833.584-1.918-1.523-4.873-2.642-3.703-2.63-3.738 1.599-5.297 5.064-1.866 5.209-2.488 1.419-6.09-3.51-3.335-3.512-3.317.333-5.677 4.648-2.853 4.655-3.496.082-6.335-3.933-2.44-3.93-2.406-.405-5.753 3.78-3.593 3.678-4.063-1.295-5.965-4.388-1.679-4.402-1.72-1.735-5.38 1.588-2.18 1.982-2.903 1.982-3.65 0-1.306-.586-1.598-4.436-2.22-3.216-.52-3.924-.835-3.924-1.75 0-.174.588-1.574 1.307-3.113 1.406-3.013 1.604-4.22.808-4.94-.428-.387-1-.443-4.067-.392-3.208.054-3.618.008-4.063-.439-.486-.488-.48-.557.278-3.725.931-3.88.935-3.975.17-4.694-.777-.73-1.262-.718-4.826.121-2.597.612-3.027.653-3.617.337l-.67-.36.185-3.582.186-3.58-.67-.67c-.369-.37-.891-.67-1.163-.67-.27 0-1.884.64-3.583 1.421-2.838 1.306-3.143 1.393-3.757 1.072-.612-.32-.714-.637-1.237-3.829-.603-3.693-.977-4.412-2.288-4.412-.311 0-1.853.925-3.426 2.055-2.584 1.856-2.93 2.032-3.574 1.807-.533-.186-.843-.59-1.221-1.599-.28-.742-.817-2.172-1.194-3.177-.762-2.028-1.187-2.482-2.328-2.482-.637 0-1.213.458-3.28 2.604-3.25 3.375-3.261 3.374-5.65-.545C66.073 1.78 65.075.382 64.81.24c-.597-.32-1.3-.32-1.85.002m2.96 11.798c2.83 2.014 1.326 6.75-2.144 6.75-3.368 0-5.064-4.057-2.66-6.36 1.358-1.3 3.304-1.459 4.805-.39m-3.558 12.507c1.855.705 2.616.282 6.852-3.8l3.182-3.07 1.347.18c4.225.56 12.627 4.25 17.455 7.666 4.436 3.14 10.332 9.534 12.845 13.93l.537.942-2.38 5.364c-1.31 2.95-2.382 5.673-2.382 6.053 0 .878.576 2.267 1.13 2.726.234.195 2.457 1.265 4.939 2.378l4.51 2.025.178 1.148c.23 1.495.26 5.167.052 6.21l-.163.816h-2.575c-2.987 0-2.756-.267-2.918 3.396-.118 2.656-.76 4.124-2.22 5.075-2.377 1.551-6.304 1.27-7.97-.57-.255-.284-.752-1.705-1.105-3.16-1.03-4.254-2.413-6.64-5.193-8.965-.878-.733-1.595-1.418-1.595-1.522 0-.102.965-.915 2.145-1.803 4.298-3.24 6.77-7.012 7.04-10.747.519-7.126-5.158-13.767-13.602-15.92-2.002-.51-2.857-.526-27.624-.526-14.057 0-25.56-.092-25.56-.204 0-.263 3.125-3.295 4.965-4.816 5.054-4.178 11.618-7.465 18.417-9.22l2.35-.61 3.34 3.387c1.839 1.863 3.64 3.5 4.003 3.637M20.3 46.34c1.539 1.008 2.17 3.54 1.26 5.062-1.405 2.356-4.966 2.455-6.373.178-2.046-3.309 1.895-7.349 5.113-5.24m90.672.13c4.026 2.454.906 8.493-3.404 6.586-2.877-1.273-2.97-5.206-.155-6.64 1.174-.6 2.523-.579 3.56.053M32.163 61.5v15.02h-13.28l-.526-2.285c-1.036-4.5-1.472-9.156-1.211-12.969l.182-2.679 4.565-2.047c2.864-1.283 4.706-2.262 4.943-2.625 1.038-1.584.94-2.715-.518-5.933l-.68-1.502h6.523V61.5M70.39 47.132c2.843.74 4.345 2.245 4.349 4.355.002 1.55-.765 2.52-2.67 3.38-1.348.61-1.562.625-10.063.708l-8.686.084v-8.92h7.782c6.078 0 8.112.086 9.288.393m-2.934 21.554c1.41.392 3.076 1.616 3.93 2.888.898 1.337 1.423 3.076 2.667 8.836 1.05 4.87 1.727 6.46 3.62 8.532 2.345 2.566 1.8 2.466 13.514 2.466 5.61 0 10.198.09 10.198.2 0 .197-3.863 4.764-4.03 4.764-.048 0-2.066-.422-4.484-.939-6.829-1.458-7.075-1.287-8.642 6.032l-1.008 4.702-.91.448c-1.518.75-6.453 2.292-9.01 2.82-4.228.87-8.828 1.162-12.871.821-6.893-.585-16.02-3.259-16.377-4.8-.075-.327-.535-2.443-1.018-4.704-.485-2.26-1.074-4.404-1.31-4.764-1.13-1.724-2.318-1.83-7.547-.674-1.98.44-3.708.796-3.84.796-.248 0-3.923-4.249-3.923-4.535 0-.09 8.728-.194 19.396-.23l19.395-.066.07-6.89c.05-4.865-.018-6.997-.23-7.25-.234-.284-1.485-.358-6.011-.358H53.32v-8.36l6.597.001c3.626.002 7.02.12 7.539.264M37.57 100.02c3.084 1.88 1.605 6.804-2.043 6.8-3.74 0-5.127-4.88-1.94-6.826 1.055-.643 2.908-.63 3.983.026m56.48.206c1.512 1.108 2.015 3.413 1.079 4.95-2.46 4.034-8.612.827-6.557-3.419 1.01-2.085 3.695-2.837 5.478-1.53\"/>` },\n { id: 'docker', label: 'Docker', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#019BC6', body: `<path d=\"M124.8 52.1c-4.3-2.5-10-2.8-14.8-1.4-.6-5.2-4-9.7-8-12.9l-1.6-1.3-1.4 1.6c-2.7 3.1-3.5 8.3-3.1 12.3.3 2.9 1.2 5.9 3 8.3-1.4.8-2.9 1.9-4.3 2.4-2.8 1-5.9 2-8.9 2H79V49H66V24H51v12H26v13H13v14H1.8l-.2 1.5c-.5 6.4.3 12.6 3 18.5l1.1 2.2.1.2c7.9 13.4 21.7 19 36.8 19 29.2 0 53.3-13.1 64.3-40.6 7.4.4 15-1.8 18.6-8.9l.9-1.8-1.6-1zM28 39h10v11H28V39zm13.1 44.2c0 1.7-1.4 3.1-3.1 3.1-1.7 0-3.1-1.4-3.1-3.1 0-1.7 1.4-3.1 3.1-3.1 1.7.1 3.1 1.4 3.1 3.1zM28 52h10v11H28V52zm-13 0h11v11H15V52zm27.7 50.2c-15.8-.1-24.3-5.4-31.3-12.4 2.1.1 4.1.2 5.9.2 1.6 0 3.2 0 4.7-.1 3.9-.2 7.3-.7 10.1-1.5 2.3 5.3 6.5 10.2 14 13.8h-3.4zM51 63H40V52h11v11zm0-13H40V39h11v11zm13 13H53V52h11v11zm0-13H53V39h11v11zm0-13H53V26h11v11zm13 26H66V52h11v11zM38.8 81.2c-.2-.1-.5-.2-.8-.2-1.2 0-2.2 1-2.2 2.2 0 1.2 1 2.2 2.2 2.2s2.2-1 2.2-2.2c0-.3-.1-.6-.2-.8-.2.3-.4.5-.8.5-.5 0-.9-.4-.9-.9.1-.4.3-.7.5-.8z\"/>` },\n { id: 'mongodb', label: 'MongoDB', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#4FAA41', body: `<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M90.491 57.282c-.37-4.79-1.496-9.409-3.062-13.934-3.244-10.104-8.45-19.046-15.783-26.74-1.854-1.946-3.916-3.729-5.209-6.151-.818-1.532-1.597-3.085-2.394-4.629l-.505-1.273c-.085.292-.139.396-.142.501-.065 2.517-1.491 4.224-3.267 5.817-1.997 1.793-3.856 3.739-5.775 5.618l-5.901 7.763c-1.592 2.925-3.182 5.85-4.772 8.775l-3.19 8.617-.096.134c-1.756 5.768-2.622 11.698-3.048 17.688-.16 2.251.022 4.535.149 6.798.181 3.235.743 6.415 1.586 9.545 3.062 11.372 9.276 20.805 17.771 28.819 1.579 1.489 3.199 2.843 4.847 4.26.282-.965.507-1.93.763-2.895.256-.961.515-1.917.688-2.881-.174.964-.369 1.92-.562 2.881l-.826 2.895.738 2.501.684 3.884.326 4.053c-.003.823-.036 1.648.014 2.47.012.21.288.404.442.606l1.376.483 1.434.558-.246-3.603-.011-3.548.495-5.405.359-1.177 1.027-1.82c1.268-1.02 2.629-1.946 3.784-3.081 2.09-2.054 4.175-4.134 6.045-6.383a47.846 47.846 0 006.191-9.516c1.122-2.284 2.178-4.614 3.052-7.001.77-2.104 1.247-4.315 1.854-6.479.054-.156.126-.309.16-.468 1.254-5.841 1.465-11.741 1.004-17.682zm-23.599 49.375l-.805-1.763.805 1.763 1.183 1.01-1.183-1.01z\"/>` },\n { id: 'git', label: 'Git', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#F34F29', body: `<path d=\"M124.742 58.378L69.625 3.264c-3.172-3.174-8.32-3.174-11.497 0L46.685 14.71l14.518 14.518c3.375-1.139 7.243-.375 9.932 2.314a9.66 9.66 0 012.293 9.993L87.42 55.529c3.385-1.167 7.292-.413 9.994 2.295 3.78 3.777 3.78 9.9 0 13.679a9.673 9.673 0 01-13.683 0 9.677 9.677 0 01-2.105-10.521L68.578 47.933l-.002 34.341a9.708 9.708 0 012.559 1.828c3.779 3.777 3.779 9.898 0 13.683-3.779 3.777-9.904 3.777-13.679 0-3.778-3.784-4.088-9.905-.311-13.683.934-.933 1.855-1.638 2.855-2.11V47.333c-1-.472-1.92-1.172-2.856-2.111-2.861-2.86-3.396-7.06-1.928-10.576L40.983 20.333 3.229 58.123c-3.175 3.177-3.155 8.325.02 11.5l55.126 55.114c3.173 3.174 8.325 3.174 11.503 0l54.86-54.858c3.175-3.176 3.178-8.327.004-11.501z\"/>` },\n\n /* ─── Communication ──────────────────────────────────────── */\n { id: 'message', label: '消息', category: 'comm', body: `<path d=\"M8 9h8\" /><path d=\"M8 13h6\" /><path d=\"M9 18h-3a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-3l-3 3l-3 -3\" />` },\n { id: 'rightclick', label: '鼠标', category: 'comm', body: `<path d=\"M6 7a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v10a4 4 0 0 1 -4 4h-4a4 4 0 0 1 -4 -4l0 -10\" /><path d=\"M12 7l0 4\" />` },\n { id: 'phone', label: '手机', category: 'comm', body: `<path d=\"M6 5a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2v-14\" /><path d=\"M11 4h2\" /><path d=\"M12 17v.01\" />` },\n { id: 'computer', label: '电脑', category: 'comm', ratio: 1.3, body: `<path d=\"M3 5a1 1 0 0 1 1 -1h16a1 1 0 0 1 1 1v10a1 1 0 0 1 -1 1h-16a1 1 0 0 1 -1 -1v-10\" /><path d=\"M7 20h10\" /><path d=\"M9 16v4\" /><path d=\"M15 16v4\" />` },\n { id: 'tablet', label: '平板', category: 'comm', ratio: 0.75, body: `<path d=\"M5 4a1 1 0 0 1 1 -1h12a1 1 0 0 1 1 1v16a1 1 0 0 1 -1 1h-12a1 1 0 0 1 -1 -1v-16\" /><path d=\"M11 17a1 1 0 1 0 2 0a1 1 0 0 0 -2 0\" />` },\n { id: 'walkietalkie', label: '对讲机', category: 'comm', body: `<path d=\"M14 3l-9.371 3.749a1 1 0 0 0 -.629 .928v11.323a1 1 0 0 0 1 1h14a1 1 0 0 0 1 -1v-11a1 1 0 0 0 -1 -1h-14.5\" /><path d=\"M4 12h16\" /><path d=\"M7 12v-2\" /><path d=\"M17 16v.01\" /><path d=\"M13 16v.01\" />` },\n { id: 'email', label: '邮件', category: 'comm', ratio: 1.3, body: `<path d=\"M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10\" /><path d=\"M3 7l9 6l9 -6\" />` },\n\n /* ─── Logistics ──────────────────────────────────────────── */\n { id: 'car', label: '小汽车', category: 'logistics', ratio: 1.4, body: `<path d=\"M5 17a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" /><path d=\"M15 17a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" /><path d=\"M5 17h-2v-6l2 -5h9l4 5h1a2 2 0 0 1 2 2v4h-2m-4 0h-6m-6 -6h15m-6 0v-5\" />` },\n { id: 'truck', label: '卡车', category: 'logistics', ratio: 1.5, body: `<path d=\"M5 17a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" /><path d=\"M15 17a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" /><path d=\"M5 17h-2v-11a1 1 0 0 1 1 -1h9v12m-4 0h6m4 0h2v-6h-8m0 -5h5l3 5\" />` },\n { id: 'train', label: '火车', category: 'logistics', body: `<path d=\"M21 13c0 -3.87 -3.37 -7 -10 -7h-8\" /><path d=\"M3 15h16a2 2 0 0 0 2 -2\" /><path d=\"M3 6v5h17.5\" /><path d=\"M3 11v4\" /><path d=\"M8 11v-5\" /><path d=\"M13 11v-4.5\" /><path d=\"M3 19h18\" />` },\n { id: 'ship', label: '轮船', category: 'logistics', ratio: 1.4, body: `<path d=\"M2 20a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1a2.4 2.4 0 0 1 2 -1a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1a2.4 2.4 0 0 1 2 -1a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1\" /><path d=\"M4 18l-1 -5h18l-2 4\" /><path d=\"M5 13v-6h8l4 6\" /><path d=\"M7 7v-4h-1\" />` },\n { id: 'plane', label: '飞机', category: 'logistics', ratio: 1.2, body: `<path d=\"M16 10h4a2 2 0 0 1 0 4h-4l-4 7h-3l2 -7h-4l-2 2h-3l2 -4l-2 -4h3l2 2h4l-2 -7h3l4 7\" />` },\n\n /* ─── Factory ────────────────────────────────────────────── */\n { id: 'bulldozer', label: '推土机', category: 'factory', ratio: 1.4, body: `<path d=\"M2 17a2 2 0 1 0 4 0a2 2 0 0 0 -4 0\" /><path d=\"M12 17a2 2 0 1 0 4 0a2 2 0 0 0 -4 0\" /><path d=\"M19 13v4a2 2 0 0 0 2 2h1\" /><path d=\"M14 19h-10\" /><path d=\"M4 15h10\" /><path d=\"M9 11v-5h2a3 3 0 0 1 3 3v6\" /><path d=\"M5 15v-3a1 1 0 0 1 1 -1h8\" /><path d=\"M19 17h-3\" />` },\n { id: 'crane', label: '吊车', category: 'factory', body: `<path d=\"M6 21h6\" /><path d=\"M9 21v-18l-6 6h18\" /><path d=\"M9 3l10 6\" /><path d=\"M17 9v4a2 2 0 1 1 -2 2\" />` },\n { id: 'factory', label: '工厂', category: 'factory', ratio: 1.2, body: `<path d=\"M3 21h18\" /><path d=\"M5 21v-12l5 4v-4l5 4h4\" /><path d=\"M19 21v-8l-1.436 -9.574a.5 .5 0 0 0 -.495 -.426h-1.145a.5 .5 0 0 0 -.494 .418l-1.43 8.582\" /><path d=\"M9 17h1\" /><path d=\"M14 17h1\" />` },\n { id: 'windturbine', label: '风力发电机', category: 'factory', body: `<path d=\"M11 21h2\" /><path d=\"M12 21l.5 -11\" /><path d=\"M11.5 10l1 0\" /><path d=\"M12 9.2a1 1 0 1 0 0 1.6a1 1 0 0 0 0 -1.6\" /><path d=\"M12 9.3v-6.3\" /><path d=\"M12.7 10.4l5.5 3.1\" /><path d=\"M11.3 10.4l-5.5 3.1\" />` },\n { id: 'warehouse', label: '库房', category: 'factory', ratio: 1.2, body: `<path d=\"M3 21v-13l9 -4l9 4v13\" /><path d=\"M13 13h4v8h-10v-6h6\" /><path d=\"M13 21v-9a1 1 0 0 0 -1 -1h-2a1 1 0 0 0 -1 1v3\" />` },\n\n /* ─── Arrows ─────────────────────────────────────────────── */\n { id: 'arrowUp', label: '上', category: 'arrow', body: `<path d=\"M12 5l0 14\" /><path d=\"M18 11l-6 -6\" /><path d=\"M6 11l6 -6\" />` },\n { id: 'arrowDown', label: '下', category: 'arrow', body: `<path d=\"M12 5l0 14\" /><path d=\"M18 13l-6 6\" /><path d=\"M6 13l6 6\" />` },\n { id: 'arrowLeft', label: '左', category: 'arrow', body: `<path d=\"M5 12l14 0\" /><path d=\"M5 12l6 6\" /><path d=\"M5 12l6 -6\" />` },\n { id: 'arrowRight', label: '右', category: 'arrow', body: `<path d=\"M5 12l14 0\" /><path d=\"M13 18l6 -6\" /><path d=\"M13 6l6 6\" />` },\n\n /* ─── C4 architecture ────────────────────────────────────── */\n { id: 'c4Person', label: 'Person', category: 'c4', body: `<path d=\"M12 3.5a3.2 3.2 0 1 0 0 6.4a3.2 3.2 0 0 0 0 -6.4\" /><path d=\"M5.5 21v-2.5a6.5 6.5 0 0 1 13 0v2.5z\" />` },\n { id: 'c4System', label: 'Software System', category: 'c4', ratio: 1.3, body: `<rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2.5\" /><path d=\"M7 10h10\" /><path d=\"M7 13.5h7\" />` },\n { id: 'c4Container', label: 'Container', category: 'c4', ratio: 1.3, body: `<rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"1\" /><path d=\"M3 9h18\" /><path d=\"M6.5 6.8h.01\" /><path d=\"M9 6.8h.01\" />` },\n { id: 'c4Component', label: 'Component', category: 'c4', ratio: 1.3, body: `<rect x=\"6\" y=\"5\" width=\"15\" height=\"14\" rx=\"1\" /><path d=\"M3 8.5h6\" /><path d=\"M3 15.5h6\" /><rect x=\"1.5\" y=\"7\" width=\"3\" height=\"3\" /><rect x=\"1.5\" y=\"14\" width=\"3\" height=\"3\" />` },\n { id: 'c4Boundary', label: 'Boundary', category: 'c4', ratio: 1.3, body: `<rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" stroke-dasharray=\"4 3\" /><path d=\"M7 8.5h6\" />` },\n\n /* ─── Circuit ────────────────────────────────────────────── */\n { id: 'gateAnd', label: '与门', category: 'circuit', ratio: 1.4, body: `<path d=\"M22 12h-5\" /><path d=\"M2 9h5\" /><path d=\"M2 15h5\" /><path d=\"M9 5c6 0 8 3.5 8 7s-2 7 -8 7h-2v-14h2\" />` },\n { id: 'gateOr', label: '或门', category: 'circuit', ratio: 1.4, body: `<path d=\"M22 12h-6\" /><path d=\"M2 9h7\" /><path d=\"M2 15h7\" /><path d=\"M8 5c10.667 2.1 10.667 12.6 0 14c1.806 -4.667 1.806 -9.333 0 -14\" />` },\n { id: 'gateNot', label: '非门', category: 'circuit', ratio: 1.4, body: `<path d=\"M22 12h-3\" /><path d=\"M2 9h3\" /><path d=\"M2 15h3\" /><path d=\"M5 5l10 7l-10 7l0 -14\" /><path d=\"M15 12a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" />` },\n { id: 'gateNand', label: '与非门', category: 'circuit', ratio: 1.4, body: `<path d=\"M22 12h-3\" /><path d=\"M2 9h3\" /><path d=\"M2 15h3\" /><path d=\"M7 5c6 0 8 3.5 8 7s-2 7 -8 7h-2v-14h2\" /><path d=\"M15 12a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" />` },\n { id: 'gateNor', label: '或非门', category: 'circuit', ratio: 1.4, body: `<path d=\"M22 12h-4\" /><path d=\"M2 9h5\" /><path d=\"M2 15h5\" /><path d=\"M6 5c10.667 2.1 10.667 12.6 0 14c1.806 -4.667 1.806 -9.333 0 -14\" /><path d=\"M14 12a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" />` },\n { id: 'diode', label: '二极管', category: 'circuit', ratio: 1.4, body: `<path d=\"M22 12h-6\" /><path d=\"M2 12h6\" /><path d=\"M8 7l8 5l-8 5l0 -10\" /><path d=\"M16 7v10\" />` },\n { id: 'transistor', label: '三极管', category: 'circuit', body: `<path d=\"M3 12h4\" /><path d=\"M7 6v12\" /><path d=\"M7 9.5l7 -3.5\" /><path d=\"M14 6v-3\" /><path d=\"M7 14.5l7 3.5\" /><path d=\"M14 18v3\" /><path d=\"M11 14l3 1.5l-1.5 2.7\" />` },\n { id: 'capacitor', label: '电容', category: 'circuit', ratio: 1.4, body: `<path d=\"M22 12h-8\" /><path d=\"M2 12h8\" /><path d=\"M10 7v10\" /><path d=\"M14 7v10\" />` },\n { id: 'resistor', label: '电阻', category: 'circuit', ratio: 1.6, body: `<path d=\"M2 12h2l2 -5l3 10l3 -10l3 10l3 -10l1.5 5h2.5\" />` },\n { id: 'opamp', label: '运放', category: 'circuit', ratio: 1.3, body: `<path d=\"M6 4v16l13 -8z\" /><path d=\"M2 8h4\" /><path d=\"M2 16h4\" /><path d=\"M19 12h3\" /><path d=\"M7.5 8h2\" /><path d=\"M7.5 16h2\" /><path d=\"M8.5 15v2\" />` },\n { id: 'crystal', label: '晶振', category: 'circuit', body: `<path d=\"M2 12h4\" /><path d=\"M6 7v10\" /><path d=\"M9 6h6v12h-6z\" /><path d=\"M18 7v10\" /><path d=\"M18 12h4\" />` },\n { id: 'battery', label: '电源', category: 'circuit', body: `<path d=\"M2 12h5\" /><path d=\"M17 12h5\" /><path d=\"M7 7v10\" /><path d=\"M11 4v16\" /><path d=\"M15 7v10\" /><path d=\"M19 4v16\" transform=\"translate(-4 0)\" />` },\n { id: 'powerAc', label: '交流电源', category: 'circuit', body: `<path d=\"M12 3a9 9 0 1 0 0 18a9 9 0 0 0 0 -18\" /><path d=\"M7.5 13.5c1.5 -3 3 -3 4.5 0s3 3 4.5 0\" />` },\n { id: 'powerDc', label: '直流电源', category: 'circuit', body: `<path d=\"M12 3a9 9 0 1 0 0 18a9 9 0 0 0 0 -18\" /><path d=\"M6.5 10h5\" /><path d=\"M6.5 14h5\" /><path d=\"M14 10h3.5\" /><path d=\"M15.75 12v0\" />` },\n { id: 'ground', label: '接地', category: 'circuit', body: `<path d=\"M12 3v9\" /><path d=\"M5 12h14\" /><path d=\"M8 16h8\" /><path d=\"M10 20h4\" />` },\n\n /* ─── Player controls ────────────────────────────────────── */\n { id: 'volumeUp', label: '音量加', category: 'player', body: `<path d=\"M15 8a5 5 0 0 1 0 8\" /><path d=\"M17.7 5a9 9 0 0 1 0 14\" /><path d=\"M6 15h-2a1 1 0 0 1 -1 -1v-4a1 1 0 0 1 1 -1h2l3.5 -4.5a.8 .8 0 0 1 1.5 .5v14a.8 .8 0 0 1 -1.5 .5l-3.5 -4.5\" />` },\n { id: 'volumeDown', label: '音量减', category: 'player', body: `<path d=\"M15 8a5 5 0 0 1 0 8\" /><path d=\"M6 15h-2a1 1 0 0 1 -1 -1v-4a1 1 0 0 1 1 -1h2l3.5 -4.5a.8 .8 0 0 1 1.5 .5v14a.8 .8 0 0 1 -1.5 .5l-3.5 -4.5\" />` },\n { id: 'play', label: '播放', category: 'player', body: `<path d=\"M7 4v16l13 -8l-13 -8\" />` },\n { id: 'pause', label: '暂停', category: 'player', body: `<path d=\"M6 6a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -12\" /><path d=\"M14 6a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -12\" />` },\n { id: 'settings', label: '设置', category: 'player', body: `<path d=\"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065\" /><path d=\"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0\" />` },\n { id: 'next', label: '下一首', category: 'player', body: `<path d=\"M3 5v14l8 -7l-8 -7\" /><path d=\"M14 5v14l8 -7l-8 -7\" />` },\n { id: 'prev', label: '上一首', category: 'player', body: `<path d=\"M21 5v14l-8 -7l8 -7\" /><path d=\"M10 5v14l-8 -7l8 -7\" />` },\n];\n/* eslint-enable max-len */\n\nconst ICON_MAP = new Map<string, SvgIconDef>(ICONS.map((i) => [i.id, i]));\n\nexport function getSvgIcon(id: string): SvgIconDef | undefined {\n return ICON_MAP.get(id);\n}\n\nexport function getSvgIconsByCategory(category: SvgIconCategory): SvgIconDef[] {\n return ICONS.filter((i) => i.category === category);\n}\n\nexport function getAllSvgIcons(): SvgIconDef[] {\n return ICONS;\n}\n\n/**\n * Build a standalone SVG string for the icon with the given color, suitable\n * for rasterizing into an image/texture. Bodies are outline paths that inherit\n * the stroke color from the wrapping `<g>`; `filled` bodies inherit the fill.\n * Pass `gradient` to paint the icon with a linear gradient instead of the\n * solid color (sub-paths carrying an explicit `#fff` fill stay white).\n */\nexport function buildSvgMarkup(\n id: string,\n color: string,\n gradient?: { to: string; direction?: GradientDirection },\n): string | null {\n const def = ICON_MAP.get(id);\n if (!def) return null;\n const viewBox = def.viewBox ?? '0 0 24 24';\n const useGradient = gradient?.to && gradient.to !== color;\n const paint = useGradient ? 'url(#flow-icon-grad)' : color;\n const defs = useGradient ? buildSvgGradientDef(color, gradient!.to, gradient!.direction, 'flow-icon-grad') : '';\n let group: string;\n if (def.brand) {\n // Multi-color brand logo: render verbatim (paths carry their own fills).\n // The wrapping fill only supplies a color for paths that lack one.\n group = `<g fill=\"${paint}\">${def.body}</g>`;\n } else if (def.filled) {\n group = `<g fill=\"${paint}\">${def.body}</g>`;\n } else {\n group = `<g fill=\"none\" stroke=\"${paint}\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">${def.body}</g>`;\n }\n return `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"${viewBox}\" width=\"24\" height=\"24\">${defs}${group}</svg>`;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"svgIcons.js","names":[],"sources":["../../../../../src/components/pro/Flow/nodes/svgIcons.ts"],"sourcesContent":["/**\n * SVG icon registry for the Flow \"SVG stamp\" nodes.\n *\n * Two icon styles coexist:\n * - 'lang' (language/framework) icons: authentic brand logos from devicon\n * (MIT-licensed, https://devicons.github.io/devicon/) on the 128x128 grid.\n * They are mono silhouettes (`filled`) tinted by the node color, and each\n * declares a `brandColor` used as the default tint — so they come in\n * pre-colored, yet stay fully recolorable (solid or gradient). Detail\n * sub-paths filled pure `#fff` (e.g. Godot's eyes, Vue's inner V) keep\n * their white instead of following the tint.\n * - everything else: stroke-based outline paths (Tabler Icons, MIT-licensed)\n * on the 24x24 grid that inherit their stroke color from the wrapping `<g>`\n * produced by `buildSvgMarkup`. The three EE-symbol icons Tabler lacks\n * (transistor, op-amp, crystal) are hand-drawn in the same outline style.\n *\n * `getSvgIcon(id)` returns the entry; `buildSvgMarkup(id, color, gradient?)`\n * produces a full standalone SVG string (used to rasterize to a PixiJS\n * texture / palette preview).\n */\n\nimport { buildSvgGradientDef } from '../utils/gradient';\nimport type { GradientDirection } from '../types';\n\nexport type SvgIconCategory =\n | 'lang'\n | 'comm'\n | 'logistics'\n | 'factory'\n | 'arrow'\n | 'c4'\n | 'circuit'\n | 'player';\n\nexport interface SvgIconDef {\n id: string;\n /** Display label (also the default node label). */\n label: string;\n category: SvgIconCategory;\n /** Inner markup of the icon SVG (paths, no stroke/fill color attrs). */\n body: string;\n /** Default aspect ratio hint (w/h); defaults to 1. */\n ratio?: number;\n /** SVG viewBox; defaults to '0 0 24 24' (Tabler outline grid). */\n viewBox?: string;\n /**\n * Official brand color used as the default tint when a node is created.\n * The icon still recolors freely (solid or gradient) afterwards.\n */\n brandColor?: string;\n /**\n * When true, the body is rendered as a filled silhouette (brand logos from\n * devicon). Otherwise it is stroked as an outline (Tabler-style icons).\n */\n filled?: boolean;\n /**\n * When true, the body already carries its own per-path colors (multi-color\n * brand logos from devicon). It is rendered verbatim and does NOT follow the\n * per-node color; a default fill is only applied to paths lacking one.\n */\n brand?: boolean;\n}\n\nexport const SVG_ICON_CATEGORIES: { id: SvgIconCategory; label: string }[] = [\n { id: 'lang', label: '语言/框架' },\n { id: 'comm', label: '通讯' },\n { id: 'logistics', label: '物流' },\n { id: 'factory', label: '工厂' },\n { id: 'arrow', label: '箭头' },\n { id: 'c4', label: 'C4 架构' },\n { id: 'circuit', label: '电路' },\n { id: 'player', label: '播放器' },\n];\n\n/* eslint-disable max-len */\nconst ICONS: SvgIconDef[] = [\n /* ─── Languages / frameworks (devicon, MIT) ─────────────────── */\n { id: 'python', label: 'Python', category: 'lang', viewBox: '0 0 128 128', brand: true, brandColor: '#3776AB', body: `<path fill=\"#3776AB\" d=\"M49.33 62h29.159C86.606 62 93 55.132 93 46.981V19.183c0-7.912-6.632-13.856-14.555-15.176-5.014-.835-10.195-1.215-15.187-1.191-4.99.023-9.612.448-13.805 1.191C37.098 6.188 35 10.758 35 19.183V30h29v4H23.776c-8.484 0-15.914 5.108-18.237 14.811-2.681 11.12-2.8 17.919 0 29.53C7.614 86.983 12.569 93 21.054 93H31V79.952C31 70.315 39.428 62 49.33 62zm-1.838-39.11c-3.026 0-5.478-2.479-5.478-5.545 0-3.079 2.451-5.581 5.478-5.581 3.015 0 5.479 2.502 5.479 5.581-.001 3.066-2.465 5.545-5.479 5.545z\"/><path fill=\"#FFDC51\" d=\"M78.67 66H49.511C41.394 66 35 72.868 35 81.019v27.798c0 7.912 6.632 13.856 14.555 15.176 5.014.835 10.195 1.215 15.187 1.191 4.99-.023 9.612-.448 13.805-1.191C90.902 121.812 93 117.242 93 108.817V98H64v-4h40.224c8.484 0 15.914-5.108 18.237-14.811 2.681-11.12 2.8-17.919 0-29.53C120.386 41.017 115.431 35 106.946 35H97v12.048C97 56.685 88.572 66 80.67 66zm1.838 39.11c3.026 0 5.478 2.479 5.478 5.545 0 3.079-2.451 5.581-5.478 5.581-3.015 0-5.479-2.502-5.479-5.581 0-3.066 2.465-5.545 5.479-5.545z\"/>` },\n { id: 'fastapi', label: 'FastAPI', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#049688', body: `<path d=\"M56.813 127.586c-1.903-.227-3.899-.52-4.434-.652a48.078 48.078 0 00-2.375-.5 36.042 36.042 0 01-2.703-.633c-4.145-1.188-4.442-1.285-7.567-2.563-2.875-1.172-8.172-3.91-9.984-5.156-.496-.344-.96-.621-1.031-.621-.07 0-1.23-.816-2.578-1.813-8.57-6.343-15.004-14.043-19.653-23.527-.8-1.629-1.453-3.074-1.453-3.21 0-.134-.144-.505-.32-.817-.363-.649-.88-2.047-1.297-3.492a20.047 20.047 0 00-.625-1.813c-.195-.46-.352-1.02-.352-1.246 0-.227-.195-.965-.433-1.645-.238-.675-.43-1.472-.43-1.77 0-.296-.187-1.32-.418-2.276C.598 73.492 0 67.379 0 63.953c0-3.422.598-9.535 1.16-11.894.23-.957.418-2 .418-2.32 0-.321.145-.95.32-1.4.18-.448.41-1.253.516-1.788.11-.535.36-1.457.563-2.055l.59-1.726c.433-1.293.835-2.387 1.027-2.813.11-.238.539-1.21.957-2.16.676-1.535 2.125-4.43 2.972-5.945.309-.555.426-.739 2.098-3.352 2.649-4.148 7.176-9.309 11.39-12.988 1.485-1.297 6.446-5.063 6.669-5.063.062 0 .53-.281 1.043-.625 1.347-.902 2.668-1.668 4.39-2.531a53.06 53.06 0 001.836-.953c.285-.164.82-.41 3.567-1.64.605-.27 1.257-.516 3.136-1.173.414-.144 1.246-.449 1.84-.672.598-.222 1.301-.406 1.563-.406.258 0 .937-.18 1.508-.402.57-.223 1.605-.477 2.304-.563.696-.082 1.621-.277 2.055-.43.43-.148 1.61-.34 2.621-.425a72.572 72.572 0 003.941-.465c2.688-.394 8.532-.394 11.192 0a75.02 75.02 0 003.781.445c.953.079 2.168.278 2.703.442.535.16 1.461.36 2.055.433.594.079 1.594.325 2.222.551.63.23 1.344.414 1.59.414s.754.137 1.125.309c.375.168 1.168.449 1.766.625.594.18 1.613.535 2.27.797.652.261 1.527.605 1.945.761.77.29 6.46 3.137 7.234 3.622 6.281 3.917 9.512 6.476 13.856 10.964 5.238 5.414 8.715 10.57 12.254 18.16.25.536.632 1.329.851 1.758.215.434.395.942.395 1.13 0 .19.18.76.402 1.269.602 1.383 1.117 2.957 1.36 4.16.12.59.343 1.32.495 1.621.153.3.332 1.063.403 1.688.07.624.277 1.648.453 2.269 1.02 3.531 1.527 13.934.91 18.535-.183 1.367-.39 3.02-.46 3.672-.118 1.117-.708 4.004-1.212 5.945l-.52 2.055c-.98 3.957-3.402 9.594-6.359 14.809-1.172 2.07-5.101 7.668-5.843 8.324-.067.058-.399.45-.735.863-.336.418-1.414 1.586-2.39 2.594-4.301 4.441-7.77 7.187-13.86 10.969-.722.449-6.847 3.441-7.992 3.906-.594.238-1.586.64-2.203.89-.613.247-1.297.454-1.512.458-.215.003-.781.195-1.258.425-.476.23-1.082.422-1.351.426-.266.004-1.043.192-1.727.418-.683.23-1.633.477-2.11.55-.476.075-1.495.278-2.269.45-.773.172-3.11.508-5.187.746a59.06 59.06 0 01-13.945-.031zm4.703-12.5c.3-.234.609-.7.691-1.027.18-.723 29.234-58.97 29.781-59.7.461-.617.504-1.605.082-1.953-.222-.187-3.004-.246-10.43-.234-5.57.012-10.253.016-10.406.012-.226-.008-.273-3.73-.25-19.672.016-10.817-.035-19.766-.113-19.89-.078-.126-.383-.227-.68-.227-.418 0-.613.18-.87.808-.485 1.168-1.825 3.82-8.348 16.485a3554.569 3554.569 0 00-4.055 7.89c-1.156 2.262-2.98 5.813-4.047 7.89a8751.248 8751.248 0 00-8.598 16.759c-4.933 9.636-5.53 10.785-5.742 11.039-.41.496-.633 1.64-.402 2.07.21.394.629.41 11.043.394 5.953-.007 10.863.024 10.914.07.137.141.086 37.31-.055 38.196-.093.582-.031.89.235 1.156.46.461.586.457 1.25-.066zm0 0\"/>` },\n { id: 'flask', label: 'Flask', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: 'theme:base-content', body: `<path d=\"M44.44 100.63c-4.23-3.33-8.74-6.52-11.83-11.01-6.49-7.92-11.49-17.1-14.9-26.74-2.07-6.27-2.77-12.99-5.44-19.02-2.78-4.38.48-9.16 5.27-10.55 2.13-.41 5.89-2.43 1.36-.98-4.06 2.98-4.45-2.71-.29-3.07 2.84-.38 3.89-2.7 2.92-4.8-3.05-1.99 7.4-4.18 2.14-7.15-5.48-5.91 7.66-7.05 4.42-.33-.77 5.16 9.18-.95 6.87 5.01 2.35 2.86 8.8.65 8.63 4.67 3.42.24 4.6 3.11 7.8 3.33 3.33 1.5 9.36 2.69 10.49 6.44-3.3 2.61-10.95-5.4-11.31 1.84 1 10.69.74 21.7 4.65 31.88 1.85 6.16 6.33 11.01 10.38 15.81 3.88 4.7 9.12 8.01 14.48 10.8 4.69 2.21 9.75 3.68 14.87 4.6 2.07-1.59 5.74-7.48 8.97-5 .16 2.8-6.42 5.84-.31 5.54 3.59-1.08 6.08 2.77 9.04-.71 2.72 3.23 11.32-2.06 9.38 4.53-2.62 1.69-6.44.67-9.07 3-4.33-2.16-7.77 1.93-12.56 1.42-5.32.95-10.73 1.34-16.13 1.34-8.85-.7-17.89-.99-26.3-4.07-4.74-1.38-9.37-4.08-13.53-6.78zm7.47 3.24c4.63 2 9.16 4.11 14.23 4.75 8.05 1.12 16.37 2.84 24.45 1.27-3.66-1.65-7.44.64-11.08-1.18-4.37.94-9.06-.24-13.5-.82-5.05-2.25-10.5-3.8-15.23-6.72-5.91-2.16 3.06 2.77 4.65 3.17 3.69 2.1-4.06-1.08-5.16-1.95-3.09-1.74-3.49-1.37-.31.39.64.37 1.28.77 1.95 1.09zm-8.81-6.23c4.49 1.66-.02-3.16-2.07-2.88-.91-1.58-3.48-2.58-1.67-3.43-3.26 1.13-3.42-4.3-4.95-3.53-3.45-1.09-1.34-4.95-5.45-7.32-.37-2.5-4.08-4.66-5.26-8.43-.52-1.93-4.19-7.46-1.94-2.31 1.92 4.96 5.29 9.21 8.1 13.45 2.18 4.04 4.76 8.26 8.72 10.78 1.34 1.3 2.63 3.27 4.52 3.67zM30.17 83.45c.16-.68.82 1.46 0 0zm18.3 16.18c1-.44-1.43-.56 0 0zm2.44.89c-.25-1.23-1.11.69 0 0zm3.05 1.27c1.45-1.38-2.24-.87 0 0zm5.22 2.91c.89-1.3-2.82-.49 0 0zm-10.03-6.99c2.25-1.46-2.91-.02 0 0zm2.29 1.14c-.07-.77-.82.34 0 0zm11.43 7.13c1.84 1.16 10.73 2.54 5.16.48-.93.2-10.33-2.66-5.16-.48zM44.72 91.85c-.18-.77-2.85-.85 0 0zm5.32 3.1c1.39-.96-2.87-.74 0 0zm4.48 2.75c1.98-.75-3.23-.75 0 0zm-11.97-8.21c2.16 1.65 8.7.21 3.3-.99-2.45-1.31-7.99-2.2-4.22.79l.92.2zm15 9.16c.9-1.53-3.77-.88 0 0zm-4.56-3.63c5.27 1.49-4.43-3.34-1.3-.55l.7.32.6.23zm9.14 5.28c4.99.05-4.51-.68 0 0zm-21.5-13.7c-.19-.93-1.23.08 0 0zm29.94 18.44c.14-1.68-1.62 1.25 0 0zM49.15 91.82c-.3-.88-1.56-.04 0 0zm-8.04-5.8c2.86-.17-3.93-1.26 0 0zm-9.54-6.16c-.36-1.38-3.12-2.47 0 0zM56.6 95.74c-.52-.6-.25.13 0 0zm15.58 9.56c-.05-.91-.85.35 0 0zM55.22 94.32c.28-1.18-2.44-.36 0 0zm-11.6-7.36c2.13-.23-3.42-1.44 0 0zm19.63 12.2c3.32-1.32-3.24-.64 0 0zm-10.21-6.93c3.83.49-4.56-2.61-.84-.28l.84.28zm13.31 8.19c3.58-2.14 2.4 5.01 6.07.6 3.62-2.64-3.13 3.27 1.33.47 3.23-2.16 7.99 1.02 11 2.06 2.16-.11 4.27 1.87 6.49.67 4.27-1.15-8.36-1.71-5.05-3.75-3.91 1.14-6.8-1.36-8.72-3.86-4.39-1.01-9.46-3.25-11.65-7.14-.89-1.46 1.29.21-.77-2.18-2.64-2.35-3.96-5.02-5.73-7.88-2.12-1.13-2.37-4.46-2.58-.11.02-2.74-2.56-4.59-3.19-3.82-.01-2.64 2.76-1.32.82-3.27-.42-2.74-1.79-5.59-2.2-8.68-.64-1.49-.09-4.68-2.19-1.31-.76 3.57-.25-4.38.94-1.76 1.56-2.67-.56-2.36-.65-1.99 1.02-2.26.64-5.46-.27-4.24.54-2.39.86-8.8-.81-7.66 1.01-2.5 1.92-11.44-2.47-8.03-1.78.03-4.85.64-6.31 1.37 4.56 2.51-.46.91-2.32.51-.24 2.33-2.08 1.32-4.38 1.34 3.67.45-1.79 3.75-3.89 2.47-2.74 1.31 2.36 4.57.05 5.58.28 1.52-4.19-.55-3.84 2.96-2.65-1.12-.36 4.16.96 2.38 4.51 1.22 3.18 4.01 3.29 6.65-.74 1.54-3.63-3.62-.64-3.38-2.36-3.83-2.61-1.38-4.56.39-.45.13 4.99 2.53 1.57 3.72 3.01.47 3.1 3.1 3.71 4.76 1.81 1.88 1.44-2.08 3.6.18-1.37-2.02-7.25-5.68-2.52-4.51-.03-2-.03-.86-3.67.6-3.63 1.44-2.61-1.51 6.42 1.73 3.11.9-.39 1.12-2.6 2.73.21 2.34 2.3.85 3.97-2.46 1.86.59 2.01 4.42 2.72 3.7 5.86.76 2.76 1.83 1.74 2.76 1.58.73 2.68 1.14.71 1.18-.57 3.34.72 2.56 2.69 3.6 4.07 2.3 1.04-3.29-7.04.66-2.43 4.16 3.75 1.56 5.32-2.17 4.72 2.36-.19 3.12 3.19 6.07 3.07 2.69 1.28 4.52 6.2-.12 4.15-1.61-1.45-7.31-3.24-2.65-.48 4.3 1.99 7.71 3.18 11.86 5.68 2.96 2.12 4.25 4.54 5.37 5.02-2.49 1.19-7.51-.95-3.78-1.61-2.33-.42-4.94-1.6-2.71 1.3 1.89 1.58 6.71 1.42 7.58 1.59-.73 1.61-1.99 1.74.03 1.86-2.25 1.22.72 1.41.93 2.1zm-4.6-13c-1.37-1.43-1.72-4.11-.24-1.78.75.3 2.43 4.38.24 1.78zm14.99 9.52c.85-.06.02.65 0 0zmM59.59 83.91c-.06-2.17.49 1.67 0 0zM58.1 81.9c-1.73-3.32 2.17.95 0 0zM40.04 69.44c1.01-.27.5 1.73 0 0zm14.37 7.79c.62-2.33.73 1.96 0 0zm-10.15-7.06c-.71-1.29 1.5 1.21 0 0zm8.71 2.79c-1.63-3.65 1.16-2 .36.6l-.36-.6zM37.95 62.95c-.73-1.2-1.93-4.72-1.55-5.79.35 1.75 3.72 7.53 1.65 2.39-2.28-4.3 2.73 1.4 3.25 2.47.24 1.07-1.41-.29-.29 2.21-2.04-2.85-1.2 1.58-3.06-1.28zm-4.64-3.2c.19-2.79 1.06 1.91 0 0zm2.08.72c1-2.11 1.69 2.93 0 0zm-5.02-3.89c-1.73-1.72-2.98-3.3.08-1.07 1.18.05-2.62-3.6.28-1.16 3.06.56 1.51 5.01-.36 2.23zm2.64-.07c1-.99.53.98 0 0zm1.62.52c-1.52-2.85 1.85 1.2 0 0zm-3.22-3.08c-5.02-4.47 6.31 2.34.82.83l-.82-.83zm14.39 8.36c-2.18-1.3-.58-9.18.16-3.79 2.11-.68-.12 2.78 1.46 2.75-.24 2.18-.95 2.97-1.62 1.04zm5.33 3.15c.21-2.38.45 1.62 0 0zm-.93-.92c.24-1.01.03 1.2 0 0zM32.39 52.48c-3.23-4.45 9.38 4.51 2.07 1.13-.77-.21-1.69-.28-2.07-1.13zm10.26 5.43c-.31-3.75.68.62 0 0zm7.78 5c.6-2.14.05 1.41 0 0zM32.89 50.78c1.92-.41 7.95 3.37 2.41 1.08-.62-.69-1.93-.38-2.41-1.08zm16.47 8.21c.2-3.84 1.15-2.29.01.55l-.01-.55zm-15.05-9.55c.78-1.15-2.08-5.18.41-1.45 1.08.85 3.11 1.43 1.31 1.79 2.84 2.5-.68.68-1.72-.34zm14.24 8.35c.54-4.37.47 2.56 0 0zM32.68 45.41c.6-.26.32.79 0 0zm3.71 2.21c.96-2.01 1.77 2.23 0 0zm10.47 5.82c0-.77.2 1.12 0 0zm-.6-1.34c-1.45-3.59 1.35 1.9 0 0zm-.89-2.35c-.25-1.48.83 1.86 0 0zm1.45-2.36c-1-1.76 1.26-7.75 1.51-4.03-1.05 2.89-.3 4.51.43.63 1.36-3.06-.29 6.02-1.94 3.4zm1.49-8.91c.44-.53.1.65 0 0zM45.82 87.6c-.59-.52.07.33 0 0zm5.13 2.6c2.86.74 2.84-.44.26-.79-1.39-1.29-5.77-2.66-1.85-.16.27.65 1.09.63 1.59.95zm-10.14-6.74c1.57 1.18 5.93 3.32 2.24.45 1.24-1.44-2.38-2.21-1.18-3.18-3.06-1.87-2.41-1.7-.27-1.64-3.67-1.64.53-1.52.33-2.36-1.42-.28-7.03-2.5-3.73.18-3.36-1.71-.8.64-1.82.39-3.44-.94 3.06 2.62-.54 1.73 1.97 1.56 5.3 4 .83 1.65-.57.85 3.21 2.14 4.14 2.78zm5.37 3.09c6.53 2.1-3.2-2.58 0 0zm27.5 16.65c.08-1.3-.9 1.11 0 0zm2.82 1.19c1.51-1.46.06 2.33 2.5-.36.03-1.92-.07-3.06-2.8-.72-.75.42-1.09 2.19.3 1.08zM31.65 76.22c-.47-1.82-3.25-1.81 0 0zm3.01 1.98c-1.12-1.86-4-1.68 0 0zm17.17 10.35c1.68 1.49 7.7 1.09 2.03.18-.83-1.24-5.32-.94-2.03-.18zm23.6 14.57c2.57-2.16-2.5.97 0 0zm5.36 3.69c.02-.69-1.11.3 0 0zm.01-.97c2.86-3.03-2.77.18 0 0zM24.22 70.01c-2.43-3.47-1.51-5.03-3.86-7.87-.45-2.17-4.03-7.09-1.85-1.88 1.99 3.05 2.58 7.77 5.71 9.75zm55.68 34.87c5.26-3.4-2.15-1.48 0 0zm4.01 1.57c2.64-2.26-1.66-.47 0 0zM30.75 72.38c.76-1.12-1.94-.14 0 0zm52.33 32.99c2.55-1.64-.59-1.39-.46.15l.46-.15zM48.5 83.58c-.09-1.11-1.35.09 0 0zm2.14 1.23c-.69-1.38-1.05.21 0 0zm36.53 21.67c3.27-2.36-1.98-.45-.68.45l.68-.45zm-1.26-.6c2.67-2.23-2.8.99 0 0zm6.39 4.25c1.79-1.19-2.17-.38 0 0zM32.39 71.57c2.39.54 9.56 5.89 5.33.37-2.17-.64-.87-5.94-3.08-5 1.48 2.48 1.22 3.53-1.9 1.97-3.91-1.91-2.2.94-1.43 1.73-1.04.25 1.39.91 1.08.93zm-10.9-8.61c.43-1.77-3.95-9.75-2.07-4 .68 1.21.61 3.49 2.07 4zM41.5 75.3c-1.23-1.03-.06-.15 0 0zm3.03.71c0-1.88-3.35-.77 0 0zm26.3 16.57c-.5-1.28-1.98-.02 0 0zm1.26.93c-.18-.72-.72.14 0 0zm10.43 6.56c1-.74-1.25-.09 0 0zM26.93 64.35c2.87-1.11-3.07-.79 0 0zm41.59 26.2c-.04-1.86-1.83.46 0 0zM25.8 61.71c1.84-.62-1.71-.41 0 0zm5.34 2.59c-.03-.61-.56.23 0 0zm65.22 39.99c2.37-.48 7.77 1.21 8.64-.63-2.88-.07-9.95-2.03-10.28.46l.63.1 1.01.07zM32.84 64.73c.05-1.88-1.46-.07 0 0zm-14.05-9.75c-.64-3.58-2.43-.54 0 0zm3.35.84c.04-1.15-3.07-1.03 0 0zm1.91.94c-.55-.44-.43.57 0 0zm12.06 7.73c.57-.52-1.35-.38 0 0zm-13.33-9.85c-.33-2.71-3.88-.4 0 0zm-6.87-4.46c-.1-1.25-.67.47 0 0zm1.02-.77c-.17-1.48-.88.19 0 0zm5.65 3.37c2.39-.94-4.35-1.94-.49-.18l.49.18zm75.59 46.69c1.53-1.4-1.94-.43 0 0zm9.13 4.74c.61-1.81-1.54.23 0 0zM23.15 49.82c.26-1.75-1.89.35 0 0zm-8.03-5.38c-.43-2.47-.37-6.82 3.76-5.35-5.51 1.1 3.82 6.85 2.64 2.31 2.32.11 4.53-1.37 3.32.88 4.57-.5 7.73-4.46 12.14-3.91 3.44-.46 7.19-.8 10.89-2.18 3.04-.22 5.97-3.5 4.31-5.44-4.15-.35-8.5.17-13.08 1.08-5.08 1.06-9.7 3.06-14.83 3.93-5 .67 1 1.85-.43 2.11-2.61.9 3.11 1.52-.34 2.47-2.13-.41-4.35-1.14-3.44-3.38-4.79.62-9 2.61-5.21 7.48h.27zm11.54-5.88c1.12-4.14 6.01 3.4 1.84.55-.5-.38-1.32-.68-1.84-.55zm.22-2.01c1.62-1.2.86.68 0 0zm2.06.04c.15-1.9 4.71 1.01.75.68l-.75-.68zm2.81-1.14c1.03-1.2.3 1.07 0 0zm.72-.48c1.71-2.06 9.69-1.31 3.85-.2-1.56-1.18-2.76.7-3.85.2zm10.42-1.6c-.26-5.62 5.18 1.99 0 0zm2.96-.02c1.08-2.83 4.2-1.14.5-.57.08.3-.11 1.46-.5.57zM21.99 48.37c3.23-1.98-3.43-1.72 0 0zm2.39.66c1.13-1.2-2.46-.49 0 0zm-7.04-4.99c1.85-1.42-2.18-.54 0 0zm95.35 59.65c.05-1.65-1.41.74 0 0zM103 97.08c.28-1.9-1.24.16 0 0zm12.36 7.25c2.58.01 7.82-.8 2.2-.8-.88.13-5.13.11-2.2.8zM26.48 47.87c2.09-.14 3.27-2.3-.41-2.18-5.69-.59 5.02 1.95-.73 1.22-.77.51 1.09 1.1 1.14.96zm1.84.93c-.22-1.34-.65.71 0 0zm2.18-5.82c.9-1.12-1.26-.3 0 0zm-6.95-11.6c3.73-1.27 8.82-2.69 10.58.62-1.79-2.15-.72-4.28.97-1.12 2.39 3.19 3.59-1.45 2.03-2.52 1.77 2.2 3.79 3.24 1.19.14 2.83-3.4-5.66.45-7.59.41-.92.41-9.58 2.2-7.18 2.47zm2.19-4.18c2.13-1.6 7.35.96 4-1.59-.33-.3-7.35 1.93-4 1.59zm7.75.32c2.49.06-1.07-3.34 1.89-1.8-.49-1.59-3.45-1.89-4.9-2.52-.82 1.45 1.66 4.34 3.01 4.32zm-6.39-7.04c.86-1.16-1.51.6 0 0zm3.16.76c4.01-.53-1.02-1.72-.81-.04l.81.04zm-5.91-4.62c-2.82-3.69 5.31.62 2.44-3.24-2.41-1.92-4.73 2.16-2.44 3.24zm36.21 19.5c1.29-2.29-5.34-3.09-.87-.81.42.14.32.97.87.81z\"/>` },\n { id: 'dotnetcore', label: '.NET Core', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#623697', body: `<g><path d=\"M61.195 0h4.953c12.918.535 25.688 4.89 36.043 12.676 9.809 7.289 17.473 17.437 21.727 28.906 2.441 6.387 3.664 13.18 4.082 19.992v4.211c-.414 11.293-3.664 22.52-9.73 32.082-6.801 10.895-16.922 19.73-28.727 24.828A64.399 64.399 0 0165.082 128h-2.144c-11.735-.191-23.41-3.66-33.297-9.992-11.196-7.113-20.114-17.785-25.028-30.117C1.891 81.19.441 74.02 0 66.812v-4.957c.504-14.39 5.953-28.609 15.41-39.496C23.168 13.31 33.5 6.48 44.887 2.937 50.172 1.27 55.676.41 61.195 0M25.191 37.523c-.03 12.153-.011 24.305-.011 36.454 1.43.011 2.86.011 4.293.011-.075-10.433.101-20.863-.106-31.293.48.907.918 1.84 1.465 2.707C37.035 54.91 43.105 64.5 49.309 74c1.738-.023 3.476-.023 5.214.004-.003-12.16-.007-24.32.004-36.48a308.076 308.076 0 00-4.25-.012c.075 10.32-.136 20.64.125 30.949-6.507-10.352-13.101-20.645-19.695-30.945a370.85 370.85 0 00-5.516.007m38.844-.011c-.129 12.16-.004 24.32-.047 36.476 6.469-.015 12.938.024 19.41-.02a83.36 83.36 0 01.024-3.952c-5.012-.016-10.027.007-15.043-.02-.074-4.21-.004-8.426-.04-12.637 4.395-.078 8.79.012 13.18-.047-.011-1.277-.011-2.554-.019-3.832-4.387.141-8.773-.054-13.164.012.012-4.023.02-8.05.02-12.078 4.699 0 9.398-.02 14.093.012-.008-1.301 0-2.606.016-3.906-6.145-.016-12.29-.008-18.43-.008m22.602.054c.004 1.266.004 2.528.008 3.79 3.488-.04 6.972.109 10.46.035-.023 10.863.004 21.718-.011 32.574 1.46.043 2.93.035 4.39-.09-.12-5.992.118-11.988-.156-17.977.067-2.699-.07-5.394.117-8.09.106-2.14-.277-4.277-.035-6.417 3.516.047 7.035.015 10.55.015a59.774 59.774 0 01.075-3.832c-8.469-.105-16.937-.094-25.398-.008M13.55 69.094c-1.977.91-2.106 4.023-.149 5.027 1.72 1.18 4.305-.371 4.227-2.41.133-2.004-2.29-3.688-4.078-2.617m29.23 15.289c-4.277 3.469-4.226 11.195.5 14.25 2.668 1.695 6.102 1.344 8.922.215.012-.621.027-1.239.05-1.86-2.671 1.395-6.41 1.68-8.675-.61-2.965-3.237-2.297-9.269 1.613-11.476 2.211-1.164 4.907-.824 7.086.239-.007-.66-.004-1.32 0-1.98-3.097-1.099-6.922-1.04-9.496 1.222m17.207 2.71c-1.89.22-3.758 1.22-4.633 2.966-1.253 2.496-1.109 5.867.864 7.96 2.035 2.297 5.945 2.32 8.18.297 2.425-2.308 2.699-6.468.757-9.164-1.148-1.629-3.273-2.183-5.168-2.058m17.887 2.722c-1.66 2.883-1.332 7.25 1.598 9.211 2.183 1.22 4.933.832 7.074-.308-.004-.617.004-1.235.031-1.848-1.687 1.07-3.937 1.856-5.812.777-1.309-.722-1.704-2.257-1.914-3.625 2.875-.039 5.746-.082 8.625-.074-.075-1.828-.118-3.894-1.45-5.308-2.199-2.43-6.644-1.657-8.152 1.175m-8.414-2.336v12.008c.652 0 1.312 0 1.973.004.023-2.195-.04-4.394.023-6.594.016-1.27.527-2.558 1.484-3.414.801-.605 1.883-.27 2.801-.246-.012-.636-.02-1.27-.023-1.902-1.793-.398-3.336.652-4.242 2.117-.02-.633-.04-1.266-.051-1.894-.656-.024-1.313-.051-1.965-.079zm0 0\"/><path d=\"M58.758 89.223c1.652-.805 4.023-.41 4.945 1.3 1.05 1.887 1.027 4.383-.137 6.211-1.52 2.286-5.527 1.786-6.523-.742-1.008-2.258-.617-5.484 1.715-6.77zm0 0M79.04 92.414c.046-1.574 1.144-3.137 2.726-3.48.976-.164 2.097.007 2.773.793.672.714.813 1.714.98 2.64-2.16.012-4.32-.031-6.48.047zm0 0\"/></g>` },\n { id: 'java', label: 'Java', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#EA2D2E', body: `<path d=\"M47.617 98.12c-19.192 5.362 11.677 16.439 36.115 5.969-4.003-1.556-6.874-3.351-6.874-3.351-10.897 2.06-15.952 2.222-25.844 1.092-8.164-.935-3.397-3.71-3.397-3.71zm33.189-10.46c-14.444 2.779-22.787 2.69-33.354 1.6-8.171-.845-2.822-4.805-2.822-4.805-21.137 7.016 11.767 14.977 41.309 6.336-3.14-1.106-5.133-3.131-5.133-3.131zm11.319-60.575c.001 0-42.731 10.669-22.323 34.187 6.024 6.935-1.58 13.17-1.58 13.17s15.289-7.891 8.269-17.777c-6.559-9.215-11.587-13.793 15.634-29.58zm9.998 81.144s3.529 2.91-3.888 5.159c-14.102 4.272-58.706 5.56-71.095.171-4.45-1.938 3.899-4.625 6.526-5.192 2.739-.593 4.303-.485 4.303-.485-4.952-3.487-32.013 6.85-13.742 9.815 49.821 8.076 90.817-3.637 77.896-9.468zM85 77.896c2.395-1.634 5.703-3.053 5.703-3.053s-9.424 1.685-18.813 2.474c-11.494.964-23.823 1.154-30.012.326-14.652-1.959 8.033-7.348 8.033-7.348s-8.812-.596-19.644 4.644C17.455 81.134 61.958 83.958 85 77.896zm5.609 15.145c-.108.29-.468.616-.468.616 31.273-8.221 19.775-28.979 4.822-23.725-1.312.464-2 1.543-2 1.543s.829-.334 2.678-.72c7.559-1.575 18.389 10.119-5.032 22.286zM64.181 70.069c-4.614-10.429-20.26-19.553.007-35.559C89.459 14.563 76.492 1.587 76.492 1.587c5.23 20.608-18.451 26.833-26.999 39.667-5.821 8.745 2.857 18.142 14.688 28.815zm27.274 51.748c-19.187 3.612-42.854 3.191-56.887.874 0 0 2.874 2.38 17.646 3.331 22.476 1.437 57-.8 57.816-11.436.001 0-1.57 4.032-18.575 7.231z\"/>` },\n { id: 'spring', label: 'Spring', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#77BC1F', body: `<path d=\"M116.452 6.643a59.104 59.104 0 01-6.837 12.136A64.249 64.249 0 0064.205-.026C28.984-.026 0 28.982 0 64.242a64.316 64.316 0 0019.945 46.562l2.368 2.1a64.22 64.22 0 0041.358 15.122c33.487 0 61.637-26.24 64.021-59.683 1.751-16.371-3.051-37.077-11.24-61.7zM29.067 111.17a5.5 5.5 0 01-4.269 2.034c-3.018 0-5.487-2.484-5.487-5.502 0-3.017 2.485-5.501 5.487-5.501 1.25 0 2.485.433 3.452 1.234 2.351 1.9 2.718 5.384.817 7.735zm87.119-19.238c-15.843 21.122-49.68 14.003-71.376 15.02 0 0-3.852.234-7.721.867 0 0 1.45-.617 3.335-1.334 15.226-5.301 22.43-6.335 31.685-11.086 17.427-8.869 34.654-28.274 38.24-48.463-6.637 19.422-26.75 36.11-45.077 42.895-12.557 4.635-35.238 9.136-35.238 9.136l-.917-.484c-15.442-7.518-15.91-40.977 12.157-51.78 12.291-4.735 24.048-2.134 37.323-5.302 14.175-3.367 30.568-14.004 37.238-27.874 7.471 22.19 16.46 56.932.35 78.405z\"/>` },\n { id: 'php', label: 'PHP', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#777BB4', body: `<path d=\"M64 30.332C28.654 30.332 0 45.407 0 64s28.654 33.668 64 33.668c35.345 0 64-15.075 64-33.668S99.346 30.332 64 30.332zm-5.982 9.81h7.293v.003l-1.745 8.968h6.496c4.087 0 6.908.714 8.458 2.139 1.553 1.427 2.017 3.737 1.398 6.93l-3.053 15.7h-7.408l2.902-14.929c.33-1.698.208-2.855-.365-3.473-.573-.617-1.793-.925-3.658-.925h-5.828L58.752 73.88h-7.291l6.557-33.738zM26.73 49.114h14.133c4.252 0 7.355 1.116 9.305 3.348 1.95 2.232 2.536 5.346 1.758 9.346-.32 1.649-.863 3.154-1.625 4.52-.763 1.364-1.76 2.613-2.99 3.745-1.468 1.373-3.098 2.353-4.891 2.936-1.794.585-4.08.875-6.858.875h-6.294l-1.745 8.97h-7.35l6.557-33.74zm57.366 0h14.13c4.252 0 7.353 1.116 9.303 3.348h.002c1.95 2.232 2.538 5.346 1.76 9.346-.32 1.649-.861 3.154-1.623 4.52-.763 1.364-1.76 2.613-2.992 3.745-1.467 1.373-3.098 2.353-4.893 2.936-1.794.585-4.077.875-6.855.875h-6.295l-1.744 8.97h-7.35l6.557-33.74zm-51.051 5.325-2.742 14.12h4.468c2.963 0 5.172-.556 6.622-1.673 1.45-1.116 2.428-2.981 2.937-5.592.485-2.507.264-4.279-.666-5.309-.93-1.032-2.79-1.547-5.584-1.547h-5.035zm57.363 0-2.744 14.12h4.47c2.965 0 5.17-.556 6.622-1.673 1.449-1.116 2.427-2.981 2.935-5.592.487-2.507.266-4.279-.664-5.309-.93-1.032-2.792-1.547-5.584-1.547h-5.035z\"/>` },\n { id: 'laravel', label: 'Laravel', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#F0513F', body: `<path d=\"M27.271.11c-.2.078-5.82 3.28-12.487 7.112-8.078 4.644-12.227 7.09-12.449 7.32-.19.225-.34.482-.438.76-.167.564-.179 82.985-.01 83.578.061.23.26.568.44.754.436.46 48.664 28.19 49.25 28.324.272.065.577.054.88-.03.658-.165 48.76-27.834 49.188-28.286.175-.195.375-.532.44-.761.084-.273.115-4.58.115-13.655v-13.26l11.726-6.735c11.056-6.357 11.733-6.755 12.017-7.191l.29-.47V43.287c0-15.548.03-14.673-.585-15.235-.165-.146-5.798-3.433-12.53-7.31L100.89 13.71h-1.359l-11.963 6.87c-6.586 3.788-12.184 7.027-12.457 7.203-.272.18-.597.512-.73.753l-.242.417-.054 13.455-.048 13.46-9.879 5.69c-5.434 3.124-9.957 5.71-10.053 5.734-.175.049-.187-1.232-.187-25.966V15.293l-.26-.447c-.326-.545 1.136.324-13.544-8.114C27.803-.348 28.098-.2 27.27.11zm11.317 10.307c5.15 2.955 9.364 5.4 9.364 5.43 0 .031-4.516 2.641-10.035 5.813l-10.041 5.765-10.023-5.764c-5.507-3.173-10.02-5.783-10.02-5.814 0-.03 4.505-2.64 10.013-5.805l9.999-5.752.69.376c3.357 1.907 6.708 3.824 10.053 5.751zm71.668 13.261c5.422 3.122 9.908 5.702 9.95 5.744.114.103-19.774 11.535-20.046 11.523-.272-.008-19.915-11.335-19.907-11.473.01-.157 19.773-11.527 19.973-11.496.091.022 4.607 2.59 10.03 5.702zM16.3 25.328l9.558 5.503.055 27.247.05 27.252.233.368c.122.194.352.459.52.581.158.115 5.477 3.146 11.818 6.724l11.52 6.506v11.527c0 6.326-.043 11.516-.097 11.516-.041 0-10-5.699-22.124-12.676L5.793 97.201l-.03-38.966-.019-38.954.49.271c.283.15 4.807 2.748 10.065 5.775zm33.754 19.18v25.109l-.387.253c-.525.332-19.667 11.335-19.732 11.335-.03 0-.054-11.336-.054-25.193l.012-25.182 10-5.752c5.499-3.165 10.034-5.733 10.088-5.714.039.024.073 11.34.073 25.144zm38.15-5.775 10.023 5.763V55.92c0 10.838-.011 11.42-.176 11.357-.107-.041-4.642-2.64-10.083-5.774l-9.91-5.69v-11.42c0-6.287.032-11.424.062-11.424.043 0 4.577 2.592 10.084 5.764zm34.164 5.587c0 6.254-.042 11.412-.084 11.462-.072.115-19.896 11.538-20.022 11.538-.031 0-.062-5.135-.062-11.423v-11.42l10-5.756c5.507-3.16 10.042-5.752 10.084-5.752.053 0 .084 5.105.084 11.351zM95.993 70.933 52.005 96.04 32.056 84.693S76 59.277 76.176 59.343zm2.215 14.827-.034 11.442-22.028 12.676c-12.12 6.976-22.082 12.675-22.132 12.675-.053 0-.095-4.658-.095-11.516V99.51l22.08-12.592c12.132-6.923 22.101-12.59 22.154-12.602.043 0 .062 5.148.054 11.443z\"/>` },\n { id: 'godot', label: 'Godot', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#478CBF', body: `<path d=\"M114.906 84.145s-.172-1.04-.27-1.028l-18.823 1.817a3.062 3.062 0 00-2.77 2.84l-.516 7.413-14.566 1.04-.988-6.72a3.089 3.089 0 00-3.04-2.62H54.067a3.089 3.089 0 00-3.039 2.62l-.988 6.72-14.566-1.04-.516-7.414a3.058 3.058 0 00-2.77-2.84l-18.835-1.816c-.094-.012-.168 1.028-.266 1.028l-.024 4.074 15.954 2.574.52 7.477a3.084 3.084 0 002.843 2.847l20.059 1.434c.078.004.152.008.226.008a3.087 3.087 0 003.031-2.621l1.02-6.915h14.57l1.02 6.915a3.088 3.088 0 003.254 2.613l20.062-1.434a3.084 3.084 0 002.844-2.847l.52-7.477 15.945-2.586zm0 0\" fill=\"#fff\"/><path d=\"M13.086 53.422v30.723c.059 0 .113.003.168.007L32.09 85.97a2.027 2.027 0 011.828 1.875l.582 8.316 16.426 1.172 1.133-7.672a2.03 2.03 0 012.007-1.734h19.868a2.03 2.03 0 012.007 1.734l1.133 7.672 16.43-1.172.578-8.316a2.027 2.027 0 011.828-1.875l18.828-1.817c.055-.004.11-.007.168-.007V81.69h.008V53.42c2.652-3.335 5.16-7.019 7.086-10.116-2.941-5.008-6.543-9.48-10.395-13.625a101.543 101.543 0 00-10.316 6.004c-1.64-1.633-3.484-2.965-5.3-4.36-1.782-1.43-3.79-2.48-5.696-3.703.566-4.223.848-8.379.96-12.719-4.913-2.476-10.155-4.113-15.456-5.293-2.117 3.559-4.055 7.41-5.738 11.176-2-.332-4.008-.457-6.02-.48V20.3c-.016 0-.027.004-.039.004s-.023-.004-.04-.004v.004c-2.01.023-4.019.148-6.019.48-1.683-3.765-3.62-7.617-5.738-11.176-5.3 1.18-10.543 2.817-15.457 5.293.113 4.34.395 8.496.961 12.72-1.906 1.222-3.914 2.273-5.695 3.702-1.813 1.395-3.66 2.727-5.301 4.36a101.543 101.543 0 00-10.316-6.004C12.543 33.824 8.94 38.297 6 43.305c2.313 3.629 4.793 7.273 7.086 10.117zm0 0\"/><path d=\"M98.008 89.84l-.582 8.36a2.024 2.024 0 01-1.88 1.878l-20.062 1.434c-.046.004-.097.004-.144.004-.996 0-1.86-.73-2.004-1.73l-1.152-7.806H55.816l-1.152 7.805a2.026 2.026 0 01-2.148 1.727l-20.063-1.434a2.024 2.024 0 01-1.879-1.879l-.582-8.36-16.937-1.632c.008 1.82.03 3.816.03 4.211 0 17.887 22.692 26.484 50.88 26.582h.07c28.188-.098 50.871-8.695 50.871-26.582 0-.402.024-2.39.031-4.211zm0 0\"/><path d=\"M48.652 65.895c0 6.27-5.082 11.351-11.351 11.351-6.266 0-11.348-5.082-11.348-11.351 0-6.266 5.082-11.344 11.348-11.344 6.27 0 11.351 5.078 11.351 11.344\" fill=\"#fff\"/><path d=\"M45.922 66.566a7.531 7.531 0 01-7.535 7.532 7.534 7.534 0 01-7.535-7.532 7.534 7.534 0 017.535-7.53 7.531 7.531 0 017.535 7.53\"/><path d=\"M64 78.277c-2.02 0-3.652-1.488-3.652-3.32v-10.45c0-1.831 1.632-3.32 3.652-3.32 2.016 0 3.656 1.489 3.656 3.32v10.45c0 1.832-1.64 3.32-3.656 3.32m15.348-12.382c0 6.27 5.082 11.351 11.351 11.351 6.266 0 11.348-5.082 11.348-11.351 0-6.266-5.082-11.344-11.348-11.344-6.27 0-11.351 5.078-11.351 11.344\" fill=\"#fff\"/><path d=\"M82.078 66.566a7.53 7.53 0 007.531 7.532 7.531 7.531 0 100-15.063 7.53 7.53 0 00-7.53 7.531\"/>` },\n { id: 'unity', label: 'Unity', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: 'theme:base-content', body: `<path d=\"m63.991 128 51.702-29.855-19.817-11.461-20.26 11.704a1.151 1.151 0 0 1-1.125-.009 1.145 1.145 0 0 1-.568-.975V69.608c0-.819.424-1.56 1.133-1.968L99.13 53.737a1.119 1.119 0 0 1 1.124.009c.352.195.572.564.576.966V78.11l19.83 11.454V29.855L63.99 62.566Zm0 0\"/><path d=\"m52.397 98.401-20.27-11.718-19.832 11.46L63.991 128V62.566L7.34 29.854V89.56l19.825-11.45V54.714c.009-.401.225-.77.572-.966a1.13 1.13 0 0 1 1.13-.009L52.953 67.64a2.275 2.275 0 0 1 1.133 1.97v27.8a1.156 1.156 0 0 1-.565.98 1.131 1.131 0 0 1-1.124.012\"/><path d=\"M68.959 0v22.9L89.22 34.597c.348.203.555.576.555.984 0 .403-.212.772-.555.975L65.137 50.468a2.302 2.302 0 0 1-2.27 0L38.791 36.556a1.122 1.122 0 0 1-.56-.975 1.127 1.127 0 0 1 .56-.984L59.048 22.9V0L7.339 29.855l56.652 32.711 56.665-32.71Zm0 0\"/>` },\n { id: 'redis', label: 'Redis', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#D82C20', body: `<path d=\"M6.2 52.7c6.7 3.2 43.7 18.1 49.5 20.9 5.8 2.8 10 2.8 17.4-1 7.4-3.9 42.2-18.1 48.9-21.6 3.4-1.8 4.9-3.2 4.9-4.4V34.1c0-1.3-1.7-2.4-5-3.6-6.5-2.4-41.1-16.1-47.7-18.6-6.6-2.4-9.3-2.3-17.1.5C49.3 15.2 12.6 29.6 6 32.2c-3.2 1.3-5 2.4-5 3.7H.8v12.7c.2 1.2 2.1 2.5 5.4 4.1zm60.4 1.8l-20.3-8.4 29.1-4.5-8.8 12.9zm44.1-20l-17.2 6.8-1.9.7-17.2-6.8 19.1-7.5 17.2 6.8zM60.1 22l-2.8-5.2 8.8 3.4 8.3-2.7-2.2 5.4 8.4 3.2-10.9 1.1-2.4 5.9-3.9-6.5-12.6-1.1 9.3-3.5zm-21.7 7.3c8.6 0 15.6 2.7 15.6 6s-7 6-15.6 6-15.6-2.7-15.6-6 7-6 15.6-6zM122 59.8c-6.7 3.5-41.4 17.8-48.8 21.6-7.4 3.9-11.5 3.8-17.3 1-5.8-2.8-43-17.7-49.6-20.9C2.9 59.9 1 58.6 1 57.3V70c0 1.3 1.9 2.6 5.2 4.2 6.7 3.2 43.7 18.1 49.5 20.9 5.8 2.8 10 2.8 17.4-1 7.4-3.9 42.2-18.1 48.9-21.6 3.4-1.8 4.9-3.2 4.9-4.4V55.6c0 1.1-1.6 2.5-4.9 4.2zm0 20.7c-6.7 3.5-41.4 17.8-48.8 21.6-7.4 3.9-11.5 3.8-17.3 1-5.8-2.8-43-17.7-49.6-20.9C2.9 80.7 1 79.3 1 78v12.7c0 1.3 1.9 2.6 5.2 4.2 6.7 3.2 43.7 18.1 49.5 20.9 5.8 2.8 10 2.8 17.4-1 7.4-3.9 42.2-18.1 48.9-21.6 3.4-1.8 4.9-3.2 4.9-4.4V76.3c0 1.2-1.6 2.5-4.9 4.2z\"/>` },\n { id: 'postgres', label: 'PostgreSQL', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#336791', body: `<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M123.258 76.784c-.45-2.918-2.901-4.829-5.752-4.958-1.032-.047-2.08.061-3.109.192-1.243.158-2.471.438-3.711.623-.857.128-1.726.187-2.582.275l-.021-.111c1.598-3.018 3.263-6.003 4.775-9.064 1.159-2.348 2.151-4.781 3.176-7.194 1.696-3.998 3.051-8.12 4.173-12.309 1.075-4.011 1.995-8.066 2.284-12.227.116-1.662.196-3.331.187-4.995-.008-1.327-.151-2.656-.284-3.979-.15-1.516-.608-2.953-1.242-4.336-.836-1.822-2.132-3.317-3.496-4.737-1.092-1.137-2.293-2.173-3.484-3.208-1.698-1.477-3.607-2.656-5.59-3.703a32.18 32.18 0 00-7.09-2.75c-1.493-.381-3.02-.664-4.532-.966-.544-.11-1.089-.337-1.633-.337H85.086c-.37 0-.737.191-1.11.233-2.452.273-4.875.735-7.228 1.464-.88.273-1.684.101-2.52.024-.641-.059-1.271-.231-1.912-.263-2.442-.122-4.887-.301-7.328-.275-2.339.024-4.654.409-6.918 1.052-1.895.538-3.749 1.195-5.447 2.191-.727.426-1.303.346-2.055.129-2.527-.729-5.072-1.414-7.639-1.989-1.6-.358-3.245-.536-4.879-.707a57.214 57.214 0 00-4.718-.294c-1.538-.033-3.087-.032-4.618.104a30.16 30.16 0 00-7.158 1.513 23.813 23.813 0 00-7.086 3.865c-2.167 1.715-3.905 3.809-5.303 6.2-1.473 2.523-2.483 5.224-3.111 8.061-.34 1.537-.555 3.117-.788 4.678-.073.486.732.972-.268 1.456v6.794c1 .452.208.903.266 1.356.139 1.089.262 2.187.446 3.268.291 1.711.636 3.417.988 5.117a324.86 324.86 0 001.546 7.111c.396 1.72.847 3.43 1.319 5.131.721 2.598 1.431 5.201 2.246 7.77.757 2.387 1.624 4.74 2.484 7.093 1.191 3.255 2.617 6.405 4.327 9.424 1.479 2.614 3.169 5.062 5.436 7.076 1.494 1.327 3.157 2.347 5.093 2.857 1.521.4 3.067.448 4.624.129a10.979 10.979 0 004.824-2.311c.163-.134.342-.236.535.01.735.931 1.719 1.552 2.748 2.089 2.777 1.448 5.803 1.882 8.877 2.059.744.043 1.496-.064 2.246-.085 1.461-.04 2.881-.325 4.278-.729.732-.212 1.447-.481 2.192-.732.039.793.089 1.557.112 2.321l.104 4.166c.019.634.044 1.27.103 1.901.151 1.627.299 3.255.493 4.877.135 1.118.275 2.245.538 3.336a38.176 38.176 0 002.158 6.428 13.81 13.81 0 003.9 5.185c2.22 1.836 4.822 2.619 7.632 2.764 1.162.061 2.357.004 3.501-.204a49.01 49.01 0 005.387-1.275c3.591-1.084 6.695-2.956 9.014-5.981 1.32-1.724 2.404-3.589 3.1-5.648.574-1.701 1.115-3.419 1.545-5.16.34-1.372.508-2.787.715-4.188.137-.927.219-1.863.305-2.797.14-1.517.283-3.033.384-4.553.07-1.058.067-2.121.109-3.181.013-.323.065-.644.095-.966.028-.298.178-.401.482-.396 1.071.016 2.144.044 3.212-.004 1.197-.054 2.405-.105 3.583-.303a56.542 56.542 0 004.99-1.067c1.943-.508 3.725-1.418 5.44-2.455 1.998-1.207 3.819-2.623 5.297-4.447 1.285-1.591 1.894-3.43 1.584-5.438zm-3.412.982c-.066.915-.485 1.699-1.093 2.369-2.869 3.163-6.468 5.082-10.585 6.027-1.564.358-3.178.544-4.779.692a32.093 32.093 0 01-4.114.097c-1.006-.038-2.004-.268-3.032-.416-.103.94-.201 1.919-.32 2.896l-.479 3.745c-.145 1.187-.258 2.378-.407 3.564-.146 1.151-.328 2.298-.481 3.449-.143 1.072-.248 2.149-.407 3.219-.245 1.64-.479 3.284-.799 4.911-.384 1.945-.973 3.829-1.934 5.583-1.172 2.141-2.834 3.772-4.949 4.98-2.18 1.246-4.563 1.894-6.979 2.436-1.71.384-3.472.447-5.204.291-3.004-.272-5.568-1.557-7.506-3.886-1.85-2.223-3.102-4.771-3.55-7.655a63.102 63.102 0 01-.491-4.136 108.067 108.067 0 01-.299-4.62 250.203 250.203 0 01-.197-5.871c-.053-2.406-.07-4.812-.104-7.218l-.006-.092c-1.224.734-2.427 1.538-3.703 2.2a12.392 12.392 0 01-4.798 1.353c-1.318.1-2.653.191-3.965.086-2.151-.173-4.3-.51-6.226-1.569-.781-.43-1.596-.953-2.134-1.64-1.29-1.646-.672-3.726 1.273-4.727 1.344-.693 2.811-.982 4.268-1.319a44.368 44.368 0 003.761-1.029c1.222-.4 1.993-1.391 2.754-2.363l1.206-1.551c-.503-.053-.977-.107-1.451-.151-1.439-.136-2.812-.532-4.125-1.114-1.124-.497-1.141-.551-1.965.343-1.376 1.494-2.714 3.023-4.062 4.542-.992 1.117-1.978 2.241-2.965 3.361-.978 1.108-1.894 2.279-2.947 3.31-1.564 1.531-3.449 2.452-5.698 2.348-1.443-.066-2.764-.572-3.952-1.399-2.452-1.708-4.104-4.097-5.608-6.606-1.927-3.215-3.406-6.64-4.672-10.159-.876-2.432-1.756-4.866-2.521-7.333-.831-2.681-1.56-5.396-2.277-8.11a157.373 157.373 0 01-1.482-6.182 216.117 216.117 0 01-1.464-7.079c-.298-1.599-.471-3.221-.712-4.831-.325-2.17-.385-4.36-.267-6.539.105-1.963.387-3.921.667-5.871.388-2.698 1.277-5.244 2.556-7.648.783-1.473 1.755-2.812 2.879-4.056 1.845-2.042 4.078-3.518 6.562-4.626 1.736-.774 3.57-1.24 5.439-1.604 2.774-.54 5.573-.519 8.373-.461 1.224.025 2.443.248 3.666.369 2.633.262 5.214.816 7.762 1.5 1.857.498 3.676 1.143 5.518 1.703.185.056.456.051.607-.048 2.496-1.629 5.224-2.704 8.125-3.319 1.101-.233 2.237-.335 3.363-.407 1.369-.087 2.749-.167 4.115-.088 1.642.094 3.276.336 4.908.56.792.108 1.565.383 2.359.458.38.036.783-.242 1.185-.335 2.049-.473 4.089-1 6.156-1.374 1.539-.278 3.111-.409 4.676-.499 1.745-.1 3.503-.173 5.247-.089a36.66 36.66 0 016.555.923c2.677.623 5.245 1.528 7.686 2.784 1.824.938 3.558 2.026 5.119 3.364 1.023.878 2.07 1.745 2.994 2.723 1.14 1.206 2.303 2.413 3.018 3.958.538 1.165.922 2.371 1.028 3.647.132 1.586.292 3.178.277 4.766-.014 1.519-.221 3.037-.368 4.552-.334 3.454-1.085 6.833-1.997 10.167a116.972 116.972 0 01-2.589 8.17c-.879 2.481-1.893 4.917-2.918 7.343a80.07 80.07 0 01-2.458 5.303c-1.677 3.286-3.421 6.538-5.438 9.633-.348.535-.678 1.083-1.018 1.629.88.594 1.877.803 2.881.911.955.104 1.929.166 2.883.095 1.527-.113 3.049-.331 4.567-.544 1.504-.21 2.978-.638 4.522-.525 1.542.112 2.645 1.284 2.54 2.729zm-22.013-3.353c-.655-.846-1.323-1.682-1.964-2.538-1.006-1.344-1.729-2.845-2.455-4.353-.688-1.429-1.532-2.782-2.257-4.195-1.265-2.465-2.553-4.922-3.718-7.435-1.465-3.157-2.62-6.426-2.984-9.923-.154-1.48-.193-2.958.106-4.424.479-2.341 1.702-4.172 3.758-5.428 1.907-1.165 4.032-1.541 6.209-1.659 1.351-.073 2.708-.013 4.11-.013l-.047-.237c-.872-1.823-1.687-3.677-2.641-5.457-1.346-2.512-3.068-4.777-4.986-6.877-1.421-1.555-2.96-2.998-4.646-4.273-1.658-1.255-3.405-2.376-5.269-3.293-2.223-1.093-4.538-1.938-6.967-2.477-2.334-.518-4.683-.835-7.077-.861-2.042-.022-4.071.07-6.06.531-3.002.695-5.748 1.931-8.137 3.933a21.143 21.143 0 00-3.517 3.77c-1.196 1.643-2.161 3.417-2.986 5.277-1.132 2.552-1.909 5.208-2.44 7.938-.266 1.361-.474 2.734-.686 4.106-.074.48-.08.971-.123 1.521.369-.192.635-.34.907-.472l.885-.397c2.993-1.369 6.094-2.25 9.427-2.149 1.416.043 2.771.323 4.03.943 2.415 1.191 3.828 3.216 4.442 5.779.424 1.769.714 3.573.996 5.372.221 1.405.447 2.825.473 4.242.037 2.071-.068 4.146-.181 6.216a17.386 17.386 0 01-1.08 5.146c-1.12 2.993-2.368 5.937-3.534 8.913-.385.983-.681 2.001-1.045 3.082.562 0 1.018-.004 1.474.002.178.003.36.008.532.049 1.34.316 2.502.923 3.455 1.954 1.271 1.372 1.938 2.973 1.972 4.826.019 1.027-.089 2.057-.084 3.084.021 4.786.057 9.572.097 14.357.007.782.046 1.565.102 2.346.117 1.635.235 3.271.395 4.902.112 1.157.268 2.312.451 3.461.259 1.628 1 3.077 1.841 4.462.724 1.191 1.665 2.203 2.905 2.901 2.107 1.186 4.376 1.285 6.663.848 1.545-.295 3.062-.769 4.562-1.258a10.128 10.128 0 003.937-2.354c1.051-1.019 1.797-2.261 2.3-3.632.976-2.659 1.28-5.459 1.684-8.237.151-1.04.282-2.083.42-3.125.157-1.186.316-2.371.468-3.556.112-.883.214-1.768.322-2.651.154-1.268.317-2.535.464-3.804.113-.981.209-1.966.309-2.949.129-1.256.268-2.512.379-3.77.086-.955.051-1.927.22-2.864.311-1.718 1.123-3.18 2.646-4.125.637-.395 1.356-.655 2.063-.989l-.12-.186zm-57.597-7.052a17.526 17.526 0 01-1.354-5.622c-.128-1.825.089-3.643.276-5.46.182-1.76.333-3.528.386-5.296.088-2.906-.108-5.808-.247-8.712-.084-1.729.117-3.479.271-5.212.139-1.561.312-3.126.607-4.664.495-2.581 1.152-5.125 2.086-7.591.887-2.338 1.906-4.615 3.345-6.665.986-1.406 2.105-2.72 3.18-4.094l-.319-.113c-3.498-1.111-7.053-1.979-10.709-2.358-1.729-.179-3.464-.284-5.198-.387-.532-.032-1.072.04-1.606.091-1.322.126-2.66.176-3.961.424-2.214.421-4.338 1.129-6.305 2.282-1.766 1.035-3.249 2.373-4.491 3.978-1.372 1.772-2.295 3.776-2.958 5.913-.783 2.521-1.156 5.115-1.257 7.733-.088 2.295-.132 4.603.264 6.889.295 1.702.492 3.422.817 5.117.443 2.311.918 4.617 1.467 6.904.785 3.274 1.569 6.553 2.499 9.787.89 3.099 1.894 6.17 2.982 9.204.89 2.476 1.919 4.906 3.003 7.304.706 1.562 1.561 3.065 2.457 4.528.953 1.553 2.037 3.027 3.508 4.154 1.856 1.423 3.293 1.644 5.179.083.808-.669 1.491-1.495 2.194-2.282 1.117-1.25 2.195-2.534 3.307-3.788 1.416-1.598 2.85-3.179 4.273-4.769.301-.336.59-.682.883-1.022l-.484-.425a17.695 17.695 0 01-4.095-5.931zm53.688-47.569a61.488 61.488 0 013.309 4.204c2 2.809 3.598 5.842 4.775 9.087.521 1.43.937 2.874.751 4.439-.129 1.096-.118 2.208-.215 3.31-.081.917-.226 1.829-.345 2.743-.178 1.378-.436 2.752-.513 4.136-.073 1.317.003 2.648.086 3.968.084 1.341.265 2.676.388 4.015.139 1.518.326 3.036.369 4.557.035 1.249-.076 2.506-.185 3.753-.13 1.502-.511 2.956-1.079 4.351-.399.982-.876 1.934-1.327 2.917l.181.192.275.213.277-.496a93.621 93.621 0 006.222-11.493 186.333 186.333 0 003.287-7.766c1.624-4.064 2.909-8.242 3.903-12.503.446-1.913.787-3.855 1.09-5.797.236-1.518.433-3.054.477-4.586.047-1.625-.043-3.263-.193-4.884-.112-1.224-.414-2.456-1.181-3.451-1.233-1.602-2.564-3.134-4.201-4.346-1.378-1.021-2.751-2.068-4.23-2.927-2.345-1.36-4.883-2.266-7.535-2.883-2.588-.603-5.21-.863-7.849-.918-1.556-.033-3.119.134-4.672.28-1.407.132-2.805.357-4.222.543 1.52.855 3.019 1.615 4.433 2.511 2.973 1.883 5.637 4.149 7.924 6.831zM55.299 72.514c.961-3.073 2.27-6.007 3.538-8.959 1.028-2.394 1.59-4.916 1.777-7.506.093-1.277.067-2.57.004-3.851a44.628 44.628 0 00-.392-4.259c-.266-1.801-.569-3.603-.995-5.371-.462-1.913-1.627-3.245-3.623-3.736-1.216-.299-2.424-.287-3.653-.093-3.002.473-5.75 1.579-8.31 3.199-.515.326-.798.589-.709 1.328.188 1.565.229 3.155.222 4.735-.01 2.236-.105 4.472-.19 6.707-.028.728-.133 1.452-.211 2.177-.12 1.11-.351 2.219-.344 3.327.007 1.142.124 2.311.401 3.417.88 3.507 2.744 6.377 5.799 8.402 1.879 1.245 3.958 1.873 6.24 1.992.155-.524.293-1.019.446-1.509zm-3.586-30.087c-.402-.844-.172-1.543.76-1.867.227-.08.461-.165.697-.188.324-.032.654-.008.982-.008 1.182.006 2.319.171 3.295.923.626.482.794 1.122.389 1.779-.575.932-1.452 1.4-2.529 1.49-1.697.141-2.888-.65-3.594-2.129zm47.04-.308c.136-1.124.245-2.251.384-3.375.056-.452-.182-.574-.561-.585-1.192-.033-2.384-.075-3.576-.097-1.344-.024-2.652.192-3.896.703-1.38.568-2.431 1.478-2.86 2.98a9.042 9.042 0 00-.293 3.41 20.11 20.11 0 001.193 5.176c.834 2.221 1.707 4.441 2.75 6.569 1.413 2.881 3.012 5.67 4.513 8.507.401.757.738 1.547 1.156 2.431a13.783 13.783 0 001.351-5.622c.041-1.61-.088-3.227-.182-4.838-.059-.986-.198-1.966-.294-2.95-.134-1.371-.337-2.741-.368-4.115-.031-1.397.068-2.802.188-4.197.113-1.338.334-2.665.495-3.997zm-2.689-1.082c-.443 1.223-1.39 1.913-2.618 2.116-1.145.188-2.148-.235-2.894-1.148-.531-.65-.328-1.42.468-1.859.914-.506 1.919-.634 3.104-.711.322.059.807.108 1.268.24.669.189.916.692.672 1.362zm-35.422 37.66c-.655-.535-1.521-.566-2.144.021-.773.73-1.453 1.565-2.133 2.388-.785.951-1.521 1.94-2.534 2.677-1.474 1.071-3.192 1.515-4.919 1.935-1.373.334-2.752.644-4.129.965l-.017.178c.409.189.805.425 1.231.56 2.1.665 4.236.996 6.455.808 1.602-.136 3.128-.485 4.574-1.171 1.99-.943 3.521-2.437 4.823-4.175.218-.29.317-.719.343-1.093.089-1.321-.582-2.303-1.55-3.093zm51.751.526c-1.69.181-3.382.373-5.077.47-.818.047-1.648-.109-2.474-.176-1.385-.112-2.737-.42-3.908-1.16-.678-.427-1.241-.475-1.961-.233-1.028.346-1.867.872-2.115 1.986-.169.753-.23 1.533-.298 2.304-.013.136.157.386.287.42.793.209 1.59.456 2.401.529.996.09 2.01.061 3.013.011 1.083-.054 2.173-.124 3.24-.304 2.515-.422 4.948-1.11 7.109-2.536.779-.515 1.551-1.041 2.325-1.562l-.064-.11c-.826.123-1.648.273-2.478.361z\"/>` },\n { id: 'mysql', label: 'MySQL', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#00618A', body: `<path d=\"M117.688 98.242c-6.973-.191-12.297.461-16.852 2.379-1.293.547-3.355.559-3.566 2.18.711.746.82 1.859 1.387 2.777 1.086 1.754 2.922 4.113 4.559 5.352 1.789 1.348 3.633 2.793 5.551 3.961 3.414 2.082 7.223 3.27 10.504 5.352 1.938 1.23 3.859 2.777 5.75 4.164.934.684 1.563 1.75 2.773 2.18v-.195c-.637-.812-.801-1.93-1.387-2.777l-2.578-2.578c-2.52-3.344-5.719-6.281-9.117-8.719-2.711-1.949-8.781-4.578-9.91-7.73l-.199-.199c1.922-.219 4.172-.914 5.949-1.391 2.98-.797 5.645-.59 8.719-1.387l4.164-1.187v-.793c-1.555-1.594-2.664-3.707-4.359-5.152-4.441-3.781-9.285-7.555-14.273-10.703-2.766-1.746-6.184-2.883-9.117-4.363-.988-.496-2.719-.758-3.371-1.586-1.539-1.961-2.379-4.449-3.566-6.738-2.488-4.793-4.93-10.023-7.137-15.066-1.504-3.437-2.484-6.828-4.359-9.91-9-14.797-18.687-23.73-33.695-32.508-3.195-1.867-7.039-2.605-11.102-3.57l-6.543-.395c-1.332-.555-2.715-2.184-3.965-2.977C16.977 3.52 4.223-3.312.539 5.672-1.785 11.34 4.016 16.871 6.09 19.746c1.457 2.012 3.32 4.273 4.359 6.539.688 1.492.805 2.984 1.391 4.559 1.438 3.883 2.695 8.109 4.559 11.695.941 1.816 1.98 3.727 3.172 5.352.727.996 1.98 1.438 2.18 2.973-1.227 1.715-1.297 4.375-1.984 6.543-3.098 9.77-1.926 21.91 2.578 29.137 1.383 2.223 4.641 6.98 9.117 5.156 3.918-1.598 3.043-6.539 4.164-10.902.254-.988.098-1.715.594-2.379v.199l3.57 7.133c2.641 4.254 7.324 8.699 11.297 11.699 2.059 1.555 3.68 4.242 6.344 5.152v-.199h-.199c-.516-.805-1.324-1.137-1.98-1.781-1.551-1.523-3.277-3.414-4.559-5.156-3.613-4.902-6.805-10.27-9.711-15.855-1.391-2.668-2.598-5.609-3.77-8.324-.453-1.047-.445-2.633-1.387-3.172-1.281 1.988-3.172 3.598-4.164 5.945-1.582 3.754-1.789 8.336-2.375 13.082-.348.125-.195.039-.398.199-2.762-.668-3.73-3.508-4.758-5.949-2.594-6.164-3.078-16.09-.793-23.191.59-1.836 3.262-7.617 2.18-9.316-.516-1.691-2.219-2.672-3.172-3.965-1.18-1.598-2.355-3.703-3.172-5.551-2.125-4.805-3.113-10.203-5.352-15.062-1.07-2.324-2.875-4.676-4.359-6.738-1.645-2.289-3.484-3.977-4.758-6.742-.453-.984-1.066-2.559-.398-3.566.215-.684.516-.969 1.191-1.191 1.148-.887 4.352.297 5.547.793 3.18 1.32 5.832 2.578 8.527 4.363 1.289.855 2.598 2.512 4.16 2.973h1.785c2.789.641 5.914.195 8.523.988 4.609 1.402 8.738 3.582 12.488 5.949 11.422 7.215 20.766 17.48 27.156 29.734 1.027 1.973 1.473 3.852 2.379 5.945 1.824 4.219 4.125 8.559 5.941 12.688 1.816 4.113 3.582 8.27 6.148 11.695 1.348 1.801 6.551 2.766 8.918 3.766 1.66.699 4.379 1.43 5.949 2.379 3 1.809 5.906 3.965 8.723 5.945 1.402.992 5.73 3.168 5.945 4.957zm-88.605-75.52c-1.453-.027-2.48.156-3.566.395v.199h.195c.695 1.422 1.918 2.34 2.777 3.566l1.98 4.164.199-.195c1.227-.867 1.789-2.25 1.781-4.363-.492-.52-.562-1.164-.992-1.785-.562-.824-1.66-1.289-2.375-1.98zm0 0\"/>` },\n { id: 'hadoop', label: 'Hadoop', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#F0BE00', body: `<path d=\"M64.525 16.049c-6.041 1.48-7.819 2.534-9.826 9.537 2.552-5.13 4.485-7.018 9.826-9.537zm15.536.373c-3.958.078-8.163 1.269-13.018 3.312-2.678 1.127-4.668 2.461-6.4 4.063-1.655 1.53-3.062 3.304-4.606 5.361-.895.064-1.695.19-2.506.514-.895.358-1.797.937-2.877 1.89a65.486 65.486 0 0 0-2.213 2.043v.002a77.012 77.012 0 0 0-1.941 1.956c-5.05.81-9.169 1.705-12.854 3.132-3.769 1.46-7.092 3.47-10.505 6.496a27.637 27.637 0 0 0-3.659 3.926 28.919 28.919 0 0 0-2.695 4.285c-.686.76-1.373 1.527-2.117 2.198-.722.649-1.492 1.197-2.354 1.529-.5.193-.708.305-.73.297-.016-.008-.062-.185-.076-.242 1.228-1.181 1.429-2.906 1.543-4.623a6.2 6.2 0 0 1 .445.623c.163.253.332.512.533.765l.84 1.06.295-1.322c.248-1.108.433-2.585.145-3.865-.187-.827-.58-1.558-1.247-2.082.062-.16.13-.342.188-.488.211-.54.427-1.094.611-1.617l.366-1.035-1.084.187c-1.443.25-4.544 1.955-6.727 4.22-.81.842-1.507 1.77-1.965 2.747-.476 1.015-.69 2.079-.506 3.142.16.927.633 1.834 1.473 2.692.153.618.295 1.172.447 1.656.174.554.362 1.047.596 1.533.635 1.322 1.648 2.13 2.82 2.506.95.305 2.003.317 3.033.088a27.084 27.084 0 0 0-.4 3.686c-.064 1.725-.002 3.63.188 5.841a30.255 30.255 0 0 0 .43 3.063l-.575 1.564-.893 2.426-1.962 1.945-1.833 1.815c-.05.05-.256.248-.443.428-1.237 1.19-1.482 1.428-1.13 3.523a12.794 12.794 0 0 0 1.296 3.84 13.836 13.836 0 0 0 2.469 3.332c1.306 1.309 3.444 2.934 5.683 3.785 1.277.485 2.592.72 3.827.526-.064.192-.114.378-.184.572a21.548 21.548 0 0 1-.652 1.603c-1.52 3.331.041 5.071 2.468 6.178 1.212.552 2.653.929 3.993 1.277.273.071.547.141.892.235 1.587.429 4.327 1.216 6.83 1.375 2.733.173 5.199-.39 5.86-2.844.261-.972.413-1.717.474-2.445.057-.671.03-1.358-.047-2.194.77-1.7 1.116-2.23 1.682-3.058l.287-.424c.61-.906.896-1.548 1-2.272.1-.698.017-1.393-.11-2.457-.01-.095-.036-.278-.06-.459 1.6.206 3.18.33 4.748.34a40.63 40.63 0 0 0 2.375-.066c-.22.114-.371.204-.61.326l-.296.152c-2.11 1.085-2.198 3.141-1.537 5.256.596 1.907 1.821 3.853 2.59 5.037 1.616 2.492 3.16 4.6 5.03 5.746 1.96 1.202 4.2 1.344 7.09-.22 1.472-.796 1.935-1.61 2.56-2.703.197-.346.417-.723.662-1.094.577-.37 2.058-1.584 3.578-2.84.495-.409 1.027-.842 1.584-1.295.392.287.865.487 1.435.623.744.178 1.63.26 2.692.336.794.058 3.387.055 5.06.055.517 0 .945 0 1.203.002 1.728.01 3.124-.08 4.178-.678 1.124-.637 1.789-1.765 1.934-3.787.064-.899.075-1.453-.05-2.02-.115-.524-.35-1.012-.734-1.705l-.07-2.63-.074-2.784c-.03-1.093-.15-1.98-.371-2.853-.22-.869-.535-1.705-.955-2.705-.285-.678-.516-1.3-.742-1.91v-.004c-.361-.974-.723-1.924-1.221-2.938.033-.196.068-.407.1-.633l.964.93 1.42 1.367c1.084 1.044 2.075 1.993 3.239 2.68 1.202.71 2.555 1.122 4.306 1.039 1.835-.087 3.796-.859 5.412-2.05 1.563-1.154 2.818-2.71 3.342-4.433l.453-1.494c.122-.4.246-.802.367-1.203 2.572.437 5.328.586 7.995.307 2.573-.27 5.059-.925 7.203-2.069 3.15-1.681 5.514-4.16 7.213-7.101 1.897-3.287 2.96-7.158 3.363-11.143.324-3.196.147-7.543-.518-11.734-.592-3.736-1.575-7.36-2.937-9.969a3.948 3.948 0 0 0-.73-.951c-.678-.668-1.68-1.298-2.716-1.654-1.097-.378-2.255-.455-3.173.025a2.619 2.619 0 0 0-.657.486c-.595.604-1.097 1.335-1.6 2.069-.559.817-1.12 1.638-1.792 2.213-.785.67-1.769 1.074-2.694 1.445a18.186 18.186 0 0 0-1.375-2.71c-.628-1.004-1.344-1.945-2.132-2.884a11.813 11.813 0 0 0-1.948-1.857c-.68-.518-1.375-.956-2.185-1.463-2.173-1.36-4.022-2.982-5.908-4.637-.858-.752-1.724-1.512-2.57-2.21-4.493-3.705-8.683-5.5-13.165-5.782a20.34 20.34 0 0 0-1.681-.035zm-20.34.062c-3.047.734-3.627 1.298-4.541 4.284 1.458-2.187 2.297-2.898 4.54-4.284zm21.164 2.47c4.385.018 8.407 1.654 12.879 5.413 2.198 1.848 4.117 3.642 6.345 5.237a8.038 8.038 0 0 0-2.425.576c1.12-.214 2.417-.002 3.58.21.326.212.661.419 1.006.622 1.572.927 2.465 1.437 3.529 2.92a31.597 31.597 0 0 1 2.888 4.857c-.54-.193-.995-.356-1.4-.477a3.018 3.018 0 0 0-2.84.176l-.064.032c-.87.423-2.22.906-3.121 1.052.46.16 1.477.22 1.957.03.064-.026.13-.047.197-.063a3.01 3.01 0 0 0-.4 1.24 3 3 0 0 0 .32 1.674c0 .002.002.002.004.004.08.19.192.363.314.49-.265-.275-.477-.77-.44-1.16.062-.637.576-1.12 1.2-1.123a1.244 1.244 0 0 1 1.13 1.766c-.622.106-1.244.29-1.886.525v-.002h-.002c-.412.152-.83.328-1.263.516 2.011-.307 3.825-.36 5.789-.102.13.62.26 1.274.38 1.942-.243.019-.487.04-.73.058l-.059.004c-.929-.742-1.962-.618-3.377-.295-4.3.98-3.29 3.394-5.269 7.03 2.054-2.512 1.903-5.137 5.25-5.93.78-.185 1.31-.417 1.838-.338-.95.478-1.772 1.271-2.098 2.191-.919 2.595-.348 4.78-1.357 7.203 1.25-2.166 1.325-4.279 2.443-6.558.402-.819 1.892-2.13 2.807-2.15l.754-.016c.22 1.442.353 2.875.267 4.062-.156 2.168-.717 5.383-1.054 6.614 1.132-1.456 1.647-4.539 2.144-6.71.518-2.26.39-4.972-.064-7.4-.623-3.331 2.808-2.79 4.8-4.36 1.465-1.154 2.472-2.998 3.815-4.304 1.332-1.295 3.427.61 3.951 1.875 2.271 5.495 3.307 14.14 2.707 19.678-.673 6.215-3.676 12.998-9.158 16.058-6.988 3.9-15.227 1.52-22.17-.82-1.482-.499-2.514-1.228-3.816-2.049.354 1.597.516 3.288.044 4.883-.749 2.53-1.959 6.672 1.477 7.436 1.308.29 1.902.247 3.748-.705-1.494.337-2.248.256-3.275.066-.931-.171-1.424-.764-1.684-1.46.325.234.856.36 1.762.58 2.547.613 4.974-.611 5.449-2.378.277-1.032.228-1.574.814-2.98.527.162 1.073.31 1.631.445l-.945 3.088c-.819 2.67-4.008 4.823-6.824 4.773-2.604-.046-4.254-1.676-6.051-3.275a1419.44 1419.44 0 0 0-3.611-3.2c-3.24-1.021-5.837-2.216-8.844-4.443 2.14 2.515 3.592 3.907 6.576 5.159-.434 4.427-1.973 7.655-3.285 11.892-.593 1.916-5.281 9.593-6.58 10.342-.926.533-6.727 5.42-7.818 6.064-.813 1.08-1.527 2.571-2.749 3.217-3.723 1.97-6.117-1.802-8.12-4.986-.913-1.45-3.445-5.628-1.237-6.799 2.088-1.106 3.258-1.896 5.389-3.295.313.57.849 1.122 1.199 1.692l-.232-1.87c-.14-1.129-.135-2.047-.045-3.183l.26-3.3c-.321 1.117-.962 2.234-1.282 3.353-.128.447-.234.81-.295 1.144a37.646 37.646 0 0 1-14.308.186 89.26 89.26 0 0 0-.989-4.938c-.094 1.481-.033 5.575-.04 7.867-.007 1.777-.08 2.386-.997 3.897-.857 1.415-1.221 1.735-2.422 4.125.1 1.508.102 2.506-.298 3.937-.667 2.38-7.39.537-9.163.051-2.183-.598-6.697-1.487-5.562-4.398 1-2.562 1.633-5.263 2.121-8.848-4-5.763-7.722-13.662-8.436-20.66-.554-5.434-.222-8.78.954-12.104 1.863-5.266 4.47-9.825 8.652-13.496 5.642-4.95 10.916-6.938 19.174-8.195-1.986 2.223-3.95 4.573-6.092 7.094-2.168 2.552-3.456 5.129-4.832 7.92-1.902 3.854-1.86 5.32.66 8.705 2.172 2.916 3.345 4.23 4.293 7.084-.783 1.614-1.069 2.978-1.332 5.183 2.66 2.907 4.636 4.898 7.219 5.512 2.533.602 4.648.486 6.914-.672 5.033-2.573 9.69-5.896 15.367-6.033 2.627-6.458 2.363-11.854 1.102-18.102-.862-4.267-1.207-8.308-1.475-12.658-1.065 4.48-1.264 8.42-.475 12.883.953 5.378 1.693 11.319-.957 16.045-5.133.393-9.534 3.517-14.162 5.914-1.86.964-3.794 1.057-5.853.492-1.911-.525-3.201-1.79-5.26-4.164-.032-2.384.505-3.484 1.6-5.643 1.758-3.466 3.701-6.693 5.832-10.105-2.61 3.149-5.082 5.78-7.135 8.945-.785-2.236-1.907-3.37-3.766-5.888-1.816-2.46-2.006-3.536-.648-6.381 1.365-2.86 2.524-5.374 4.847-7.883 4.015-4.335 7.692-9.16 12.082-13.43 2.384-2.318 3.352-2.237 6.514-2.717 2.858-.433 5.648-.979 8.563-1.656-2.82.263-5.545.358-8.29.426l-.083.002c2.7-3.448 4.265-5.368 8.65-7.273 4.723-2.052 8.693-3.304 12.375-3.465.296-.013.59-.02.883-.018zm2.873 14.894c-5.874 1.47-6.976 3.936-6.22 7.728.643-2.853 1.788-5.601 6.22-7.728zm-17.403.322c-2.377.269-4.75.515-7.128.74-1.997.19-2.319.157-3.735 1.557-2.153 2.129-4.245 9.433-4.914 12.355 1.053-2.427 3.689-9.217 5.71-10.945.558-.478.947-.771 1.366-.984-1.446 2.425-1.341 3.03-.834 6.279.432-3.303 1.574-4.58 3.45-7.045a49.516 49.516 0 0 0 6.085-1.957zm54.54.277c-1.362 2.758-3.463 5.064-6.317 6.477-1.531.757-2.509.494-4.219.332 1.74.499 2.84 1.126 4.547.517 3.478-1.24 5.155-4.035 5.989-7.326zm-12.157 4.45c.12.252.237.507.352.767-.095.07-.187.145-.272.223a3.065 3.065 0 0 0-.662-.975c.19-.007.383-.011.582-.016zm-17.394 2.132c-1.916.886-4.145.67-5.787 1.78-1.448.977-3.446 4.075-4.916 5.388 1.065-.413 2.09-1.128 3.035-1.883a3.94 3.94 0 0 0 1.53 3.088 1.691 1.691 0 0 1-.38-.502 1.652 1.652 0 0 1 1.498-2.363 1.66 1.66 0 0 1 1.49.942c.038.077.066.158.09.238a10.45 10.45 0 0 0-2.11 2.064v.002h-.001a8.889 8.889 0 0 0-1.281 2.342c2.8-3.32 6.862-5.825 10.68-6.896-1.068-.016-2.333.184-3.62.607a3.939 3.939 0 0 0-2.574-3.277c.853-.456 1.692-.936 2.346-1.53zM7.043 44.48C1.958 48.064.689 49.691 1.375 56.943c.504-5.706 1.614-8.168 5.668-12.463zm-4.314 2.157C.159 48.43-.174 49.17.064 52.283c.56-2.568 1.081-3.538 2.665-5.646zm9.494 1.039c-.373.802-.638 1.408-.819 2.033-.784 2.71.354 5.13-2.105 7.094 1.156 2.332 1.102 3.261 3.79 2.183 1.038-.415 1.894-.998 2.657-1.687a49.902 49.902 0 0 0-1.172 3.412c-1.923.816-4.452 1.336-5.42-.686-.47-.98-.735-1.943-1.078-3.183-3.167-3.281 1.568-7.613 4.147-9.166zm.656 1.467c.655.381.828 1.074.9 2.007-.39-.39-.703-.657-1.209-.6a7.53 7.53 0 0 1 .309-1.407zm72.516.394c.114.078.23.151.351.217a1.931 1.931 0 0 1-.351-.217zm6.785 17.035c-.695.118-1.94.373-2.635.49-1.855.314-2.073.76-2.361 2.586-.136.86-.324 1.927-.46 2.788.364-.973.803-2.104 1.227-3.032.449-.98.7-1.073 1.653-1.591.675-.368 1.9-.873 2.576-1.24zM15.006 79.38c1.458 5.041 3.94 9.994 6.691 14.158v.074c-.172.716-.37 1.413-.789 1.973-1.967 2.632-6.971-1.23-8.42-2.709-1.583-1.617-2.644-3.533-2.896-5.328-.184-1.31-.006-1.341.908-2.268l3.695-3.74.81-2.16zm66.166 3.295c.301.977.538 1.946.976 2.984.732 1.734 1.089 2.807 1.141 4.668l.168 5.889c.628 1.1.727 1.334.615 2.59-.227 2.564-1.083 2.734-3.336 2.695-1.023-.018-5.097-.038-6.13-.127-1.461-.126-2.28-.255-2.727-.588 2.295-1.685 6.195-8.64 6.955-11.035.803-2.53 1.683-4.738 2.338-7.076z\"/>` },\n { id: 'ruby', label: 'Ruby', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#D91404', body: `<path d=\"m35.971 111.33 81.958 11.188c-9.374-15.606-18.507-30.813-27.713-46.144Zm89.71-86.383L93.513 73.339c-.462.696-1.061 1.248-.41 2.321 8.016 13.237 15.969 26.513 23.942 39.777 1.258 2.095 2.53 4.182 4.157 6.192l4.834-96.58zM16.252 66.22c.375.355 1.311.562 1.747.347 7.689-3.779 15.427-7.474 22.948-11.564 2.453-1.333 4.339-3.723 6.452-5.661 6.997-6.417 13.983-12.847 20.966-19.278.427-.395.933-.777 1.188-1.275 2.508-4.902 4.973-9.829 7.525-14.898-3.043-1.144-5.928-2.263-8.849-3.281-.396-.138-1.02.136-1.449.375-6.761 3.777-13.649 7.353-20.195 11.472-3.275 2.061-5.943 5.098-8.843 7.743-4.674 4.266-9.342 8.542-13.948 12.882a24.011 24.011 0 0 0-3.288 3.854c-3.15 4.587-6.206 9.24-9.402 14.025 1.786 1.847 3.41 3.613 5.148 5.259zm28.102-6.271-11.556 48.823 54.3-34.987zm76.631-34.846-46.15 7.71 15.662 38.096zM44.996 56.644l41.892 13.6c-5.25-12.79-10.32-25.133-15.495-37.737ZM16.831 75.643 2.169 110.691l27.925-.825Zm13.593 26.096.346-.076c3.353-13.941 6.754-27.786 10.177-42.272L18.544 71.035c3.819 9.926 7.891 20.397 11.88 30.704zm84.927-78.897c-4.459-1.181-8.918-2.366-13.379-3.539-6.412-1.686-12.829-3.351-19.237-5.052-.801-.213-1.38-.352-1.851.613-2.265 4.64-4.6 9.245-6.901 13.868-.071.143-.056.328-.111.687l41.47-6.285zM89.482 12.288l36.343 10.054-6.005-17.11-30.285 6.715ZM33.505 114.007c-4.501-.519-9.122-.042-13.687.037-3.75.063-7.5.206-11.25.323-.386.012-.771.09-1.156.506 31.003 2.866 62.005 5.732 93.007 8.6l.063-.414-29.815-4.07c-12.384-1.691-24.747-3.551-37.162-4.982ZM2.782 99.994c3.995-9.27 7.973-18.546 11.984-27.809.401-.929.37-1.56-.415-2.308-1.678-1.597-3.237-3.318-5.071-5.226-2.479 12.24-4.897 24.177-7.317 36.113l.271.127c.185-.297.411-.578.548-.897zm78.74-90.153c6.737-1.738 13.572-3.097 20.367-4.613.44-.099.87-.244 1.303-.368l-.067-.332-29.194 3.928c2.741 1.197 4.853 2.091 7.591 1.385z\"/>` },\n { id: 'rails', label: 'Rails', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#CC0000', body: `<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M109.682 14.737c-12.206-6.023-24.708-6.636-37.508-2.111-11.779 4.164-21.175 11.615-28.16 21.763C32.195 51.561 23.61 70.298 18.799 90.652c-2.464 10.417-4.06 21.466-3.631 32.224.035.873.165 1.124.251 3.124h60.366c-.173-2-.287-1.416-.437-1.797a153.86 153.86 0 01-7.428-25.198c-2.498-12.251-3.806-24.729-1.226-37.093 3.611-17.313 13.48-29.805 30.117-36.283 9.424-3.667 18.369-2.624 26.214 4.262.072.063.22.025.412.056l2.565-3.883c-4.94-4.703-10.368-8.389-16.32-11.327zM3.336 94.394c-.46 3.923-.89 7.596-1.34 11.451l11.132 1.336 2.039-11.893-11.831-.894zm21.85-34.186l-10.471-4.097-3.384 9.607 10.671 3.42c1.08-3.031 2.096-5.882 3.184-8.93zm49.419 53.659c3.575.266 7.157.449 11.103.679-1.433-2.979-2.706-5.673-4.039-8.335-.146-.289-.639-.568-.974-.573-3.033-.044-6.068-.025-9.291-.025.726 2.628 1.357 5.053 2.096 7.443.111.361.707.782 1.105.811zM42.933 31.103l-7.955-5.268-6.359 7.105 8.178 5.496 6.136-7.333zm25.334 53.369c-.013.321.276.832.558.959 2.865 1.288 5.76 2.515 8.912 3.873-.131-2.492-.219-4.575-.368-6.654-.027-.374-.203-.912-.48-1.066-2.631-1.456-5.299-2.847-8.216-4.395-.159 2.665-.321 4.972-.406 7.283zM65.91 12.3l-5.446-6.181-7.499 3.898 5.455 6.644 7.49-4.361zm3.415 49.176c-.163.374.052 1.167.373 1.456 2.175 1.962 4.424 3.84 6.926 5.981.573-2.4 1.113-4.539 1.571-6.693.081-.383-.032-1.016-.298-1.23-1.946-1.569-3.955-3.063-6.037-4.651-.915 1.815-1.802 3.443-2.535 5.137zm12.45-52.424c2.78.075 5.563.042 8.499.042-.293-2.044-.433-3.593-.782-5.092-.104-.446-.775-1.04-1.228-1.078-2.787-.226-5.585-.313-8.651-.459.409 2.063.721 3.881 1.162 5.668.093.379.647.909 1 .919zm3.385 35.675c.142-.266.178-.749.029-.981-1.366-2.137-2.785-4.241-4.254-6.455l-4.76 4.372 6.582 7.294c.884-1.539 1.675-2.868 2.403-4.23zM90.295 30.2l2.843 5.281c4.449-2.438 4.875-3.32 3.3-6.834L90.295 30.2zm21.287-16.273c1.851 1.142 3.806 2.115 5.792 3.185l1.33-2.07c-2.422-1.771-4.76-3.484-7.413-5.426-.104 1.104-.259 1.875-.219 2.637.032.581.129 1.44.51 1.674zM109 30.646c2 .217 5 .424 7 .643v-2.718c-2-.438-5-.872-7-1.323v3.398z\"/>` },\n { id: 'sqlite', label: 'SQLite', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#003B57', body: `<path d=\"M69.5 99.176c-.059-.73-.094-1.2-.094-1.2S67.2 83.087 64.57 78.642c-.414-.707.043-3.594 1.207-7.88.68 1.169 3.54 6.192 4.118 7.81.648 1.824.78 2.347.78 2.347s-1.57-8.082-4.144-12.797a162.286 162.286 0 012.004-6.265c.973 1.71 3.313 5.859 3.828 7.3.102.293.192.543.27.774.023-.137.05-.274.074-.414-.59-2.504-1.75-6.86-3.336-10.082 3.52-18.328 15.531-42.824 27.84-53.754H16.9c-5.387 0-9.789 4.406-9.789 9.789v88.57c0 5.383 4.406 9.789 9.79 9.789h52.897a118.657 118.657 0 01-.297-14.652\"/><path d=\"M65.777 70.762c.68 1.168 3.54 6.188 4.117 7.809.649 1.824.781 2.347.781 2.347s-1.57-8.082-4.144-12.797a164.535 164.535 0 012.004-6.27c.887 1.567 2.922 5.169 3.652 6.872l.082-.961c-.648-2.496-1.633-5.766-2.898-8.328 3.242-16.871 13.68-38.97 24.926-50.898H16.899a6.94 6.94 0 00-6.934 6.933v82.11c17.527-6.731 38.664-12.88 56.855-12.614-.672-2.605-1.441-4.96-2.25-6.324-.414-.707.043-3.597 1.207-7.879\"/><path d=\"M115.95 2.781c-5.5-4.906-12.164-2.933-18.734 2.899a44.347 44.347 0 00-2.914 2.859c-11.25 11.926-21.684 34.023-24.926 50.895 1.262 2.563 2.25 5.832 2.894 8.328.168.64.32 1.242.442 1.754.285 1.207.437 1.996.437 1.996s-.101-.383-.515-1.582c.078-.23-.168-.484-.27-.773-.043-.125-.105-.274-.172-.434-.734-1.703-2.765-5.305-3.656-6.867-.762 2.25-1.437 4.36-2.004 6.265 2.578 4.715 4.149 12.797 4.149 12.797s-.137-.523-.782-2.347c-.578-1.621-3.441-6.64-4.117-7.809-1.164 4.281-1.625 7.172-1.207 7.80.809 1.362 1.574 3.722 2.25 6.323 1.524 5.867 2.586 13.012 2.586 13.012s.031.469.094 1.2a118.653 118.653 0 00.297 14.651c.504 6.11 1.453 11.363 2.664 14.172l.828-.449c-1.781-5.535-2.504-12.793-2.188-21.156.48-12.793 3.422-28.215 8.856-44.289 9.191-24.27 21.938-43.738 33.602-53.035-10.633 9.602-25.023 40.684-29.332 52.195-4.82 12.891-8.238 24.984-10.301 36.574 3.55-10.863 15.047-15.53 15.047-15.53s5.637-6.958 12.227-16.888c-3.95.903-10.43 2.442-12.598 3.352-3.2 1.344-4.067 1.8-4.067 1.8s10.371-6.312 19.27-9.171c12.234-19.27 25.562-46.648 12.141-58.621\"/>` },\n { id: 'k8s', label: 'Kubernetes', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#326CE5', body: `<path d=\"M63.556 1.911a8.51 8.44 0 0 0-3.26.826L15.794 24a8.51 8.44 0 0 0-4.603 5.725L.214 77.484a8.51 8.44 0 0 0 1.154 6.47 8.51 8.44 0 0 0 .485.673l30.799 38.297a8.51 8.44 0 0 0 6.654 3.175l49.393-.011a8.51 8.44 0 0 0 6.654-3.17l30.79-38.303a8.51 8.44 0 0 0 1.644-7.14l-10.996-47.76a8.51 8.44 0 0 0-4.604-5.727L67.681 2.738a8.51 8.44 0 0 0-4.125-.827Zm.44 16.252c1.47 0 2.664 1.327 2.664 2.961 0 .232.014.544.006.758-.034.943-.24 1.662-.364 2.531-.224 1.858-.417 3.4-.3 4.832.105.717.522 1 .869 1.332a63.624 63.624 0 0 0 .062 1.19c8.468.751 16.335 4.625 22.112 10.682l1.011-.723c.343.021 1.1.124 1.618-.176 1.19-.802 2.276-1.915 3.59-3.25.601-.638 1.044-1.245 1.76-1.861.162-.14.409-.328.59-.473 1.278-1.018 3.057-.912 3.974.238.917 1.15.622 2.908-.655 3.928-.18.145-.416.346-.588.473-.758.56-1.456.846-2.212 1.29-1.593.984-2.913 1.8-3.961 2.784-.494.53-.457 1.03-.5 1.508-.148.136-.67.598-.946.848a34.478 34.478 0 0 1 4.99 11.537 34.398 34.398 0 0 1 .56 12.435l1.073.313c.194.274.592.94 1.15 1.156 1.372.431 2.914.59 4.776.785.875.073 1.628.03 2.555.205.222.042.545.13.773.182 1.57.379 2.578 1.822 2.254 3.244-.324 1.422-1.857 2.286-3.437 1.946l-.04-.006c-.016-.004-.033-.012-.05-.016-.221-.048-.497-.098-.69-.148-.91-.245-1.57-.61-2.388-.922-1.763-.632-3.224-1.16-4.647-1.366-.72-.058-1.09.287-1.49.551a39.835 39.835 0 0 0-1.139-.199c-2.552 8.02-7.985 14.966-15.353 19.317.127.306.342.958.443 1.074-.17.449-.421.88-.205 1.572.517 1.34 1.354 2.652 2.363 4.229.488.728.988 1.288 1.428 2.122.105.2.244.507.346.717.685 1.465.183 3.151-1.131 3.785-1.326.639-2.974-.037-3.684-1.51-.1-.208-.244-.485-.33-.683-.377-.864-.507-1.604-.773-2.44-.604-1.772-1.102-3.24-1.827-4.48-.406-.6-.903-.676-1.359-.824-.085-.146-.4-.724-.57-1.024a34.56 34.56 0 0 1-4.57 1.377 34.413 34.413 0 0 1-20.01-1.44l-.604 1.09c-.449.12-.882.244-1.148.561-.97 1.157-1.356 3.016-2.061 4.786-.265.836-.393 1.577-.77 2.441-.086.196-.229.468-.33.676v.008l-.006.006c-.71 1.468-2.352 2.139-3.675 1.502-1.315-.633-1.818-2.32-1.133-3.785.102-.211.236-.517.342-.717.44-.834.94-1.398 1.427-2.127 1.008-1.578 1.895-2.994 2.413-4.334.13-.446-.063-1.057-.237-1.508l.483-1.159c-7.09-4.2-12.688-10.897-15.36-19.181l-1.162.199c-.31-.174-.937-.586-1.531-.539-1.422.206-2.88.733-4.643 1.365-.82.314-1.48.672-2.39.916-.193.052-.47.105-.69.154-.017.004-.034.014-.05.018l-.04.004c-1.58.341-3.112-.523-3.437-1.945-.325-1.422.684-2.865 2.254-3.245l.039-.011.021-.006c.224-.052.51-.125.713-.164.927-.175 1.68-.132 2.555-.205 1.862-.195 3.405-.354 4.775-.785.434-.18.85-.775 1.145-1.155l1.115-.326c-1.25-8.655.864-17.15 5.434-24.027l-.852-.762c-.055-.333-.127-1.101-.537-1.537-1.047-.983-2.366-1.8-3.959-2.783-.756-.445-1.449-.733-2.209-1.293-.16-.12-.376-.3-.55-.444l-.042-.027c-1.278-1.019-1.571-2.778-.654-3.928.516-.647 1.304-.967 2.123-.94a3.168 3.168 0 0 1 1.854.702c.182.143.431.333.593.473.715.614 1.15 1.221 1.752 1.859 1.314 1.334 2.4 2.442 3.592 3.244.626.364 1.107.218 1.582.154.153.113.667.483.961.684a34.262 34.262 0 0 1 17.404-9.943 34.663 34.663 0 0 1 4.815-.74l.062-1.128c.355-.344.753-.837.866-1.377.116-1.43-.073-2.974-.297-4.832-.124-.869-.329-1.588-.364-2.53-.007-.194.004-.462.006-.684 0-.025-.006-.05-.006-.075 0-1.634 1.193-2.959 2.663-2.959zm-3.334 20.66a28.076 28.076 0 0 0-2.84.489 27.438 27.438 0 0 0-13.215 7.201l11.457 8.121.021-.011a2.334 2.334 0 0 0 1.383.449 2.348 2.348 0 0 0 2.346-2.248l.057-.028zm6.675 0 .791 13.95.012.006a2.35 2.35 0 0 0 3.733 1.793l.04.017 11.383-8.07a27.668 27.668 0 0 0-15.959-7.695ZM40.452 51.73a27.432 27.432 0 0 0-3.892 17.365l13.408-3.87.012-.046a2.348 2.348 0 0 0 1.217-.803 2.345 2.345 0 0 0-.295-3.232l.01-.057zm47.014.008-10.402 9.308.006.03a2.329 2.329 0 0 0-.746 1.246 2.35 2.35 0 0 0 1.668 2.789l.011.056L91.48 69.05a27.703 27.703 0 0 0-.58-8.931 27.774 27.774 0 0 0-3.434-8.381ZM61.853 61.81l-2.67 3.324.957 4.153 3.857 1.857 3.848-1.85.957-4.154-2.664-3.33zm13.736 11.395a2.333 2.333 0 0 0-.898.232 2.351 2.351 0 0 0-1.139 3.045l-.017.023L78.92 89.51a27.466 27.466 0 0 0 11.102-13.95l-13.871-2.344-.021.028a2.276 2.276 0 0 0-.542-.04zm-23.293.056a2.378 2.378 0 0 0-.46.04l-.024-.028-13.75 2.332a27.58 27.58 0 0 0 11.07 13.854l5.326-12.873-.039-.053a2.326 2.326 0 0 0 .131-1.446 2.349 2.349 0 0 0-2.254-1.826zm11.616 5.64a2.351 2.351 0 0 0-1.987 1.241h-.012l-6.761 12.225a27.542 27.542 0 0 0 15.031.773 28.056 28.056 0 0 0 2.71-.756l-6.78-12.248h-.051a2.337 2.337 0 0 0-1.053-1.002 2.32 2.32 0 0 0-1.097-.232z\"/>` },\n { id: 'cpp', label: 'C++', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#004482', body: `<path d=\"M63.443 0c-1.782 0-3.564.39-4.916 1.172L11.594 28.27C8.89 29.828 6.68 33.66 6.68 36.78v54.197c0 1.562.55 3.298 1.441 4.841l-.002.002c.89 1.543 2.123 2.89 3.475 3.672l46.931 27.094c2.703 1.562 7.13 1.562 9.832 0h.002l46.934-27.094c1.352-.78 2.582-2.129 3.473-3.672.89-1.543 1.441-3.28 1.441-4.843V36.779c0-1.557-.55-3.295-1.441-4.838v-.002c-.891-1.545-2.121-2.893-3.473-3.67L68.359 1.173C67.008.39 65.226 0 63.443 0zm.002 26.033c13.465 0 26.02 7.246 32.77 18.91l-16.38 9.479c-3.372-5.836-9.66-9.467-16.39-9.467-10.432 0-18.922 8.49-18.922 18.924S53.013 82.8 63.445 82.8c6.735 0 13.015-3.625 16.395-9.465l16.375 9.477c-6.746 11.662-19.305 18.91-32.77 18.91-20.867 0-37.843-16.977-37.843-37.844s16.976-37.844 37.843-37.844v-.002zM92.881 57.57h4.201v4.207h4.203v4.203h-4.203v4.207h-4.201V65.98h-4.207v-4.203h4.207V57.57zm15.765 0h4.208v4.207h4.203v4.203h-4.203v4.207h-4.208V65.98h-4.205v-4.203h4.205V57.57z\"/>` },\n { id: 'c', label: 'C', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#A9BACD', body: `<path d=\"M125 50c-4-32-24-50-62-50C29 0 3 24 3 64c0 39 24 64 64 64 32 0 55-19 58-50H87c-2 11-8 20-20 20-21 0-24-16-24-33 0-23 8-35 22-35 13 0 20 7 22 20z\" />` },\n { id: 'csharp', label: 'C#', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#68217A', body: `<path d=\"M117.5 33.5l.3-.2c-.6-1.1-1.5-2.1-2.4-2.6L67.1 2.9c-.8-.5-1.9-.7-3.1-.7-1.2 0-2.3.3-3.1.7l-48 27.9c-1.7 1-2.9 3.5-2.9 5.4v55.7c0 1.1.2 2.3.9 3.4l-.2.1c.5.8 1.2 1.5 1.9 1.9l48.2 27.9c.8.5 1.9.7 3.1.7 1.2 0 2.3-.3 3.1-.7l48-27.9c1.7-1 2.9-3.5 2.9-5.4V36.1c.1-.8 0-1.7-.4-2.6zm-53.5 70c-21.8 0-39.5-17.7-39.5-39.5S42.2 24.5 64 24.5c14.7 0 27.5 8.1 34.3 20l-13 7.5C81.1 44.5 73.1 39.5 64 39.5c-13.5 0-24.5 11-24.5 24.5s11 24.5 24.5 24.5c9.1 0 17.1-5 21.3-12.4l12.9 7.6c-6.8 11.8-19.6 19.8-34.2 19.8zM115 62h-3.2l-.9 4h4.1v5h-5l-1.2 6h-4.9l1.2-6h-3.8l-1.2 6h-4.8l1.2-6H94v-5h3.5l.9-4H94v-5h5.3l1.2-6h4.9l-1.2 6h3.8l1.2-6h4.8l-1.2 6h2.2v5zm-12.7 4h3.8l.9-4h-3.8z\"/>` },\n { id: 'lisp', label: 'Lisp', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#5881D8', body: `<path d=\"M61.659 64.898a265.825 265.825 0 00-1.867 4.12c-2.322 5.241-4.894 11.62-5.834 15.706-.337 1.455-.546 3.258-.542 5.258 0 .79.043 1.622.11 2.469a30.74 30.74 0 0010.533 1.87 30.796 30.796 0 009.642-1.566 18.09 18.09 0 01-2.011-2.12c-4.11-5.221-6.403-12.872-10.031-25.737M46.485 38.96c-7.85 5.51-12.986 14.6-13.005 24.9.019 10.145 5.001 19.116 12.653 24.65 1.877-7.789 6.582-14.92 13.637-29.214a114.691 114.691 0 00-1.43-3.72c-1.955-4.884-4.776-10.556-7.294-13.124-1.283-1.342-2.84-2.502-4.561-3.492\"/><path d=\"M90.697 98.798c-4.05-.506-7.392-1.116-10.317-2.144a36.708 36.708 0 01-16.32 3.807c-20.293 0-36.742-16.383-36.745-36.602 0-10.97 4.852-20.805 12.528-27.512-2.053-.495-4.194-.783-6.38-.779-10.782.101-22.162 6.044-26.9 22.095-.443 2.337-.337 4.103-.337 6.197 0 31.818 25.895 57.613 57.835 57.613 19.561 0 36.841-9.682 47.305-24.489-5.66 1.405-11.103 2.077-15.763 2.091-1.747 0-3.387-.093-4.906-.277\"/><path d=\"M79.829 87.634c.357.176 1.167.464 2.293.783 7.579-5.542 12.504-14.469 12.523-24.558h-.003c-.028-16.82-13.693-30.43-30.582-30.462a30.765 30.765 0 00-9.602 1.554c6.21 7.05 9.196 17.127 12.084 28.148l.005.013c.005.009.924 3.06 2.501 7.11 1.566 4.042 3.797 9.048 6.23 12.696 1.597 2.444 3.354 4.2 4.551 4.716\"/><path d=\"M17.057 30.311c5.463-3.408 11.04-4.637 15.908-4.593 6.722.02 12.008 2.096 14.544 3.516.612.352 1.194.73 1.764 1.12a36.714 36.714 0 0114.786-3.096c20.295.003 36.747 16.386 36.75 36.601-.003 10.192-4.188 19.408-10.934 26.044a45.3 45.3 0 005.225.29c6.406.004 13.329-1.404 18.52-5.753 3.384-2.84 6.22-6.998 7.792-13.233.307-2.408.484-4.856.484-7.347 0-31.817-25.892-57.614-57.835-57.614-19.372 0-36.508 9.5-47.004 24.065z\"/>` },\n { id: 'haskell', label: 'Haskell', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#5E5187', body: `<path d=\"M0 110.2L30.1 65 0 19.9h22.6L52.7 65l-30.1 45.1H0z\"/><path d=\"M30.1 110.2L60.2 65 30.1 19.9h22.6l60.2 90.3H90.4L71.5 81.9l-18.8 28.2H30.1z\"/><path d=\"M102.9 83.8l-10-15.1H128v15.1h-25.1zM87.8 61.3l-10-15.1H128v15.1H87.8z\"/>` },\n { id: 'spark', label: 'Spark', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#E15919', body: `<path d=\"M57.646.004c-2.269.064-4.51 1.143-6.384 3.223-1.03 1.146-1.905 2.51-2.63 3.855-1.89 3.54-2.262 7.547-2.962 11.43l-3.852 21.81c-.148.856-.532 1.21-1.3 1.455l-28.268 8.98c-2.06.673-4.125 1.543-5.947 2.7-5.558 3.53-6.38 9.338-2.207 14.438 1.842 2.256 4.216 3.843 6.85 4.996l17.603 7.843c.147.08.304.132.463.162l3.717 2.682s-3.7 40.948 3.246 43.781c-.061-.01-.41-.082-.41-.082s.704.761 2.603.537c1.454.27 1.262.226.074-.01 2.583-.334 7.337-2.497 15.578-10.784a47.396 47.396 0 0 0 1.776-1.676l17.8-19.217 4.163 1.465c.15.207.367.34.714.443l19.823 6.031c2.709.836 5.389 1.448 8.277 1.026 5.156-.755 8.951-5 8.9-10.192-.02-2.28-.82-4.339-1.87-6.324l-13.128-24.898c-.418-.787-.405-1.296.196-2l22.054-25.922c1.428-1.703 2.717-3.529 3.465-5.645 1.643-4.67-.482-8.382-5.33-9.289-2.229-.398-4.427-.188-6.6.385l-31.597 8.395c-.93.25-1.39.075-1.895-.772l-12.9-21.434c-.975-1.615-2.14-3.194-3.477-4.527C62.212.89 59.915-.059 57.646.004zm.944 19.736c.51.358.768.727 1.01 1.125l13.88 23.13c.382.628.725.85 1.485.648l24.443-6.497 5.885-1.54c-.087.493-.302.79-.537 1.068l-20.16 23.672c-.57.688-.623 1.17-.194 1.976l12.743 24.16.585 1.237-.015.02-22.727-6.264-.006-.018-4.298-1.205-25.493 28.256 4.663-37.15-4.184-1.82.008-.007-23.674-9.4c.454-.413.86-.585 1.285-.717l28.777-9.096c.676-.21 1.061-.47 1.125-1.242l.403-2.355 3.875-21.807 1.12-6.174z\"/>` },\n { id: 'rabbitmq', label: 'RabbitMQ', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#FF6600', body: `<path d=\"M119.517 51.188H79.291a3.641 3.641 0 0 1-3.64-3.642V5.62A5.605 5.605 0 0 0 70.028 0H55.66a5.606 5.606 0 0 0-5.627 5.62v41.646a3.913 3.913 0 0 1-3.92 3.925l-13.188.047c-2.176 0-3.972-1.75-3.926-3.926l.094-41.687A5.606 5.606 0 0 0 23.467 0H9.1a5.61 5.61 0 0 0-5.626 5.625V122.99c0 2.737 2.22 5.01 5.01 5.01h111.033a5.014 5.014 0 0 0 5.008-5.011V56.195a4.975 4.975 0 0 0-5.008-5.007zM100.66 95.242a6.545 6.545 0 0 1-6.525 6.524H82.791a6.545 6.545 0 0 1-6.523-6.524V83.9a6.545 6.545 0 0 1 6.523-6.524h11.343a6.545 6.545 0 0 1 6.525 6.523zm0 0\"/>` },\n { id: 'javascript', label: 'JavaScript', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#F0DB4F', body: `<path d=\"M2 1v125h125V1H2zm66.119 106.513c-1.845 3.749-5.367 6.212-9.448 7.401-6.271 1.44-12.269.619-16.731-2.059-2.986-1.832-5.318-4.652-6.901-7.901l9.52-5.83c.083.035.333.487.667 1.071 1.214 2.034 2.261 3.474 4.319 4.485 2.022.69 6.461 1.131 8.175-2.427 1.047-1.81.714-7.628.714-14.065C58.433 78.073 58.48 68 58.48 58h11.709c0 11 .06 21.418 0 32.152.025 6.58.596 12.446-2.07 17.361zm48.574-3.308c-4.07 13.922-26.762 14.374-35.83 5.176-1.916-2.165-3.117-3.296-4.26-5.795 4.819-2.772 4.819-2.772 9.508-5.485 2.547 3.915 4.902 6.068 9.139 6.949 5.748.702 11.531-1.273 10.234-7.378-1.333-4.986-11.77-6.199-18.873-11.531-7.211-4.843-8.901-16.611-2.975-23.335 1.975-2.487 5.343-4.343 8.877-5.235l3.688-.477c7.081-.143 11.507 1.727 14.756 5.355.904.916 1.642 1.904 3.022 4.045-3.772 2.404-3.76 2.381-9.163 5.879-1.154-2.486-3.069-4.046-5.093-4.724-3.142-.952-7.104.083-7.926 3.403-.285 1.023-.226 1.975.227 3.665 1.273 2.903 5.545 4.165 9.377 5.926 11.031 4.474 14.756 9.271 15.672 14.981.882 4.916-.213 8.105-.38 8.581z\"/>` },\n { id: 'typescript', label: 'TypeScript', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#007ACC', body: `<rect x=\"2\" y=\"2\" width=\"124\" height=\"124\" rx=\"2\"/><text x=\"64\" y=\"92\" text-anchor=\"middle\" fill=\"#fff\" font-family=\"Arial,Helvetica,sans-serif\" font-size=\"58\" font-weight=\"700\">TS</text>` },\n { id: 'react', label: 'React', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#61DAFB', body: `<g><circle cx=\"64\" cy=\"64\" r=\"11.4\"/><path d=\"M107.3 45.2c-2.2-.8-4.5-1.6-6.9-2.3.6-2.4 1.1-4.8 1.5-7.1 2.1-13.2-.2-22.5-6.6-26.1-1.9-1.1-4-1.6-6.4-1.6-7 0-15.9 5.2-24.9 13.9-9-8.7-17.9-13.9-24.9-13.9-2.4 0-4.5.5-6.4 1.6-6.4 3.7-8.7 13-6.6 26.1.4 2.3.9 4.7 1.5 7.1-2.4.7-4.7 1.4-6.9 2.3C8.2 50 1.4 56.6 1.4 64s6.9 14 19.3 18.8c2.2.8 4.5 1.6 6.9 2.3-.6 2.4-1.1 4.8-1.5 7.1-2.1 13.2.2 22.5 6.6 26.1 1.9 1.1 4 1.6 6.4 1.6 7.1 0 16-5.2 24.9-13.9 9 8.7 17.9 13.9 24.9 13.9 2.4 0 4.5-.5 6.4-1.6 6.4-3.7 8.7-13 6.6-26.1-.4-2.3-.9-4.7-1.5-7.1 2.4-.7 4.7-1.4 6.9-2.3 12.5-4.8 19.3-11.4 19.3-18.8s-6.8-14-19.3-18.8zM92.5 14.7c4.1 2.4 5.5 9.8 3.8 20.3-.3 2.1-.8 4.3-1.4 6.6-5.2-1.2-10.7-2-16.5-2.5-3.4-4.8-6.9-9.1-10.4-13 7.4-7.3 14.9-12.3 21-12.3 1.3 0 2.5.3 3.5.9zM81.3 74c-1.8 3.2-3.9 6.4-6.1 9.6-3.7.3-7.4.4-11.2.4-3.9 0-7.6-.1-11.2-.4-2.2-3.2-4.2-6.4-6-9.6-1.9-3.3-3.7-6.7-5.3-10 1.6-3.3 3.4-6.7 5.3-10 1.8-3.2 3.9-6.4 6.1-9.6 3.7-.3 7.4-.4 11.2-.4 3.9 0 7.6.1 11.2.4 2.2 3.2 4.2 6.4 6 9.6 1.9 3.3 3.7 6.7 5.3 10-1.7 3.3-3.4 6.6-5.3 10zm8.3-3.3c1.5 3.5 2.7 6.9 3.8 10.3-3.4.8-7 1.4-10.8 1.9 1.2-1.9 2.5-3.9 3.6-6 1.2-2.1 2.3-4.2 3.4-6.2zM64 97.8c-2.4-2.6-4.7-5.4-6.9-8.3 2.3.1 4.6.2 6.9.2 2.3 0 4.6-.1 6.9-.2-2.2 2.9-4.5 5.7-6.9 8.3zm-18.6-15c-3.8-.5-7.4-1.1-10.8-1.9 1.1-3.3 2.3-6.8 3.8-10.3 1.1 2 2.2 4.1 3.4 6.1 1.2 2.2 2.4 4.1 3.6 6.1zm-7-25.5c-1.5-3.5-2.7-6.9-3.8-10.3 3.4-.8 7-1.4 10.8-1.9-1.2 1.9-2.5 3.9-3.6 6-1.2 2.1-2.3 4.2-3.4 6.2zM64 30.2c2.4 2.6 4.7 5.4 6.9 8.3-2.3-.1-4.6-.2-6.9-.2-2.3 0-4.6.1-6.9.2 2.2-2.9 4.5-5.7 6.9-8.3zm22.2 21l-3.6-6c3.8.5 7.4 1.1 10.8 1.9-1.1 3.3-2.3 6.8-3.8 10.3-1.1-2.1-2.2-4.2-3.4-6.2zM31.7 35c-1.7-10.5-.3-17.9 3.8-20.3 1-.6 2.2-.9 3.5-.9 6 0 13.5 4.9 21 12.3-3.5 3.8-7 8.2-10.4 13-5.8.5-11.3 1.4-16.5 2.5-.6-2.3-1-4.5-1.4-6.6zM7 64c0-4.7 5.7-9.7 15.7-13.4 2-.8 4.2-1.5 6.4-2.1 1.6 5 3.6 10.3 6 15.6-2.4 5.3-4.5 10.5-6 15.5C15.3 75.6 7 69.6 7 64zm28.5 49.3c-4.1-2.4-5.5-9.8-3.8-20.3.3-2.1.8-4.3 1.4-6.6 5.2 1.2 10.7 2 16.5 2.5 3.4 4.8 6.9 9.1 10.4 13-7.4 7.3-14.9 12.3-21 12.3-1.3 0-2.5-.3-3.5-.9zM96.3 93c1.7 10.5.3 17.9-3.8 20.3-1 .6-2.2.9-3.5.9-6 0-13.5-4.9-21-12.3 3.5-3.8 7-8.2 10.4-13 5.8-.5 11.3-1.4 16.5-2.5.6 2.3 1 4.5 1.4 6.6zm9-15.6c-2 .8-4.2 1.5-6.4 2.1-1.6-5-3.6-10.3-6-15.6 2.4-5.3 4.5-10.5 6-15.5 13.8 4 22.1 10 22.1 15.6 0 4.7-5.8 9.7-15.7 13.4z\"/></g>` },\n { id: 'vuejs', label: 'Vue.js', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#41B883', body: `<path d=\"M25.997 9.393l23.002.009L64.035 34.36 79.018 9.404 102 9.398 64.15 75.053z\" fill=\"#fff\"/><path d=\"M.91 9.569l25.067-.172 38.15 65.659L101.98 9.401l25.11.026-62.966 108.06z\"/>` },\n { id: 'nodejs', label: 'Node.js', category: 'lang', ratio: 0.92, brandColor: '#5FA04E', body: `<path d=\"M12 2.2l8.5 4.9v9.8l-8.5 4.9-8.5-4.9V7.1z\" /><path d=\"M8.8 15V9l6.4 6V9\" />` },\n { id: 'go', label: 'Go', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#00ACD7', body: `<g fill-rule=\"evenodd\"><path d=\"M11.156 54.829c-.243 0-.303-.122-.182-.303l1.273-1.637c.12-.182.424-.303.666-.303H34.55c.243 0 .303.182.182.364l-1.03 1.576c-.121.181-.424.363-.606.363zM2.004 60.404c-.242 0-.303-.12-.182-.303l1.273-1.636c.121-.182.424-.303.667-.303h27.636c.242 0 .364.182.303.364l-.485 1.454c-.06.243-.303.364-.545.364zM16.67 65.98c-.242 0-.302-.182-.181-.364l.848-1.515c.122-.182.364-.363.607-.363h12.12c.243 0 .364.181.364.424l-.12 1.454c0 .243-.243.425-.425.425zM79.58 53.738c-3.819.97-6.425 1.697-10.182 2.666-.91.243-.97.303-1.758-.606-.909-1.03-1.576-1.697-2.848-2.303-3.819-1.878-7.516-1.333-10.97.91-4.121 2.666-6.242 6.605-6.182 11.514.06 4.849 3.394 8.849 8.182 9.516 4.121.545 7.576-.91 10.303-4 .545-.667 1.03-1.394 1.636-2.243H56.064c-1.272 0-1.575-.788-1.151-1.818.788-1.879 2.242-5.03 3.09-6.606.183-.364.607-.97 1.516-.97h22.06c-.12 1.637-.12 3.273-.363 4.91-.667 4.363-2.303 8.363-4.97 11.878-4.364 5.758-10.06 9.333-17.273 10.303-5.939.788-11.454-.364-16.302-4-4.485-3.394-7.03-7.879-7.697-13.454-.788-6.606 1.151-12.546 5.151-17.758 4.303-5.636 10-9.212 16.97-10.485 5.697-1.03 11.151-.363 16.06 2.97 3.212 2.121 5.515 5.03 7.03 8.545.364.546.122.849-.606 1.03z\"/><path d=\"M99.64 87.253c-5.515-.122-10.546-1.697-14.788-5.334-3.576-3.09-5.818-7.03-6.545-11.697-1.091-6.848.787-12.909 4.909-18.302 4.424-5.819 9.757-8.849 16.97-10.122 6.181-1.09 12-.484 17.272 3.091 4.788 3.273 7.757 7.697 8.545 13.515 1.03 8.182-1.333 14.849-6.97 20.546-4 4.06-8.909 6.606-14.545 7.757-1.636.303-3.273.364-4.848.546zm14.424-24.485c-.06-.788-.06-1.394-.182-2-1.09-6-6.606-9.394-12.363-8.06-5.637 1.272-9.273 4.848-10.606 10.545-1.091 4.727 1.212 9.515 5.575 11.454 3.334 1.455 6.667 1.273 9.879-.363 4.788-2.485 7.394-6.364 7.697-11.576z\" fill-rule=\"nonzero\"/></g>` },\n { id: 'golang', label: 'Golang', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#6AD7E5', body: `<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M21.1 68.7c.2 3.5 3.7 1.9 5.3.8 1.5-1.1 2-.2 2.1-2.3.1-1.4.2-2.7.2-4.1-2.3-.2-4.8.3-6.7 1.7-.9.7-2.8 3-.9 3.9\"/><path fill=\"#231F20\" d=\"M23 71.2c-.7 0-2-.3-2.2-2.3-.6-.4-.8-.9-.8-1.2-.1-1.2 1.2-2.6 1.9-3.1 1.6-1.2 3.7-1.8 5.9-1.8h1.3v.3c.1 1.1 0 2.2-.1 3.2 0 .3 0 .6-.1.9-.1 1.5-.4 1.7-1.1 2-.3.1-.6.2-1.1.6-.5.3-2.2 1.4-3.7 1.4zm4.8-7.8c-2.1 0-4 .6-5.5 1.7-.7.5-1.7 1.7-1.6 2.5 0 .3.2.6.6.8l.2.1v.2c.1 1.6.9 1.8 1.5 1.8 1 0 2.4-.7 3.3-1.3.6-.4 1-.5 1.3-.6.5-.2.6-.2.7-1.4 0-.3 0-.6.1-.9.1-.9.1-1.9.1-2.8-.3-.1-.5-.1-.7-.1z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M21.1 68.7c.5-.2 1.1-.3 1.4-.8\"/><path fill=\"#231F20\" d=\"M21.1 69c-.1 0-.3-.1-.3-.2-.1-.2 0-.4.2-.4.1 0 .2-.1.2-.1.4-.2.8-.3 1-.6.1-.1.3-.2.5-.1.1.1.2.3.1.5-.4.5-.9.7-1.3.8l-.2.1h-.2z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M29.3 26.4c-13.6-3.8-3.5-21.1 7.4-14l-7.4 14z\"/><path fill=\"#231F20\" d=\"M29.5 26.8l-.3-.1c-7-2-6.9-7-6.7-8.5.5-3.8 4.1-7.8 8.9-7.8 1.9 0 3.7.6 5.5 1.8l.3.2-7.7 14.4zm1.9-15.7c-4.5 0-7.8 3.7-8.3 7.2-.5 3.6 1.7 6.4 6 7.7l7.1-13.5c-1.5-.9-3.1-1.4-4.8-1.4z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M89.6 11.1c10.7-7.5 20.5 9.5 8 13.8l-8-13.8z\"/><path fill=\"#231F20\" d=\"M97.5 25.3L89.2 11l.3-.2c1.9-1.3 3.8-2 5.7-2 4.6 0 7.9 3.8 8.6 7.5.3 1.5.6 6.6-6 8.8l-.3.2zm-7.4-14l7.7 13.3c3.9-1.4 5.9-4.4 5.3-8-.6-3.4-3.7-6.9-7.9-6.9-1.7-.1-3.4.4-5.1 1.6z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M92 112.3c2.7 1.7 7.7 6.8 3.6 9.3-3.9 3.6-6.1-4-9.6-5 1.5-2 3.4-3.9 6-4.3\"/><path fill=\"#231F20\" d=\"M93.5 122.9c-1.6 0-3-1.6-4.2-3.1-1.1-1.2-2.2-2.5-3.4-2.9l-.5-.1.3-.4c1.2-1.7 3.2-3.9 6.2-4.4h.1l.1.1c1.7 1.1 5.4 4.2 5.3 7.1 0 1.1-.6 2-1.7 2.7-.7.7-1.4 1-2.2 1zm-7-6.5c1.2.5 2.2 1.8 3.2 2.9 1.2 1.5 2.4 2.8 3.7 2.8.6 0 1.2-.3 1.8-.9h.1c.9-.6 1.4-1.3 1.4-2.2 0-2.3-2.9-5.2-4.9-6.5-1.8.5-3.6 1.7-5.3 3.9zm9.1 5.5c-.1 0-.2-.1-.3-.2-.2-.4-.4-.9-.5-1.3-.3-.8-.6-1.6-1.2-2.2-.1-.1-.1-.3 0-.5.1-.1.3-.1.5 0 .7.7 1.1 1.6 1.4 2.5l.5 1.2c.1.2 0 .4-.1.5h-.3z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M43.2 118.1c-3.2.5-5 3.4-7.7 4.9-2.5 1.5-3.5-.5-3.7-.9-.4-.2-.4.2-1-.4-2.3-3.7 2.4-6.4 4.9-8.2 3.5-.8 5.7 2.2 7.5 4.6\"/><path fill=\"#231F20\" d=\"M33.8 123.8c-1.3 0-2-1.1-2.2-1.5h-.1c-.3 0-.5-.1-.9-.5v-.1c-2.2-3.5 1.6-6.2 4.1-8l.9-.6h.2c.4-.1.7-.1 1.1-.1 3 0 4.9 2.6 6.5 4.7l.5.7-.6.1c-1.9.3-3.3 1.5-4.7 2.7-.9.8-1.8 1.5-2.8 2.1-.8.3-1.4.5-2 .5zm-2.2-2.1c.1 0 .2 0 .4.1h.1l.1.1c.2.3.7 1.2 1.7 1.2.5 0 1-.2 1.5-.5 1-.5 1.9-1.3 2.7-2 1.3-1.1 2.7-2.3 4.5-2.8-1.5-2-3.3-4.2-5.8-4.2-.3 0-.6 0-.9.1l-.8.6c-2.6 1.8-5.8 4.1-3.9 7.1.1.2.2.3.4.3zm.2.7c-.2 0-.4-.2-.3-.4.1-1 .6-1.7 1.1-2.5.3-.4.5-.8.7-1.2.1-.2.3-.2.4-.2.2.1.2.3.2.4-.2.5-.5.9-.8 1.3-.5.7-.9 1.3-1 2.1 0 .4-.1.5-.3.5z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#231F20\" d=\"M29.9 21.7c-1.8-.9-3.1-2.2-2-4.3 1-1.9 2.9-1.7 4.7-.8l-2.7 5.1zm64.9-1.8c1.8-.9 3.1-2.2 2-4.3-1-1.9-2.9-1.7-4.7-.8l2.7 5.1z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M107.1 68.2c-.2 3.5-3.7 1.9-5.3.8-1.5-1.1-2-.2-2.1-2.3-.1-1.4-.2-2.7-.2-4.1 2.3-.2 4.8.3 6.7 1.7 1 .8 2.8 3 .9 3.9\"/><path fill=\"#231F20\" d=\"M105.3 70.7c-1.5 0-3.2-1.1-3.7-1.4-.5-.3-.8-.5-1.1-.6-.8-.3-1-.5-1.1-2 0-.3 0-.6-.1-.9-.1-1-.2-2.1-.1-3.2v-.3h1.3c2.2 0 4.3.6 5.9 1.8.7.5 2 1.9 1.9 3.1 0 .4-.2.9-.8 1.2-.2 2-1.5 2.3-2.2 2.3zM99.8 63c0 .9 0 1.9.1 2.8 0 .3 0 .6.1.9.1 1.2.2 1.2.7 1.4.3.1.7.3 1.3.6.9.6 2.3 1.3 3.3 1.3.6 0 1.4-.2 1.5-1.8V68l.2-.1c.4-.2.6-.4.6-.8.1-.8-.9-2-1.6-2.5-1.5-1.1-3.5-1.7-5.5-1.7-.2.1-.4.1-.7.1z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M107.1 68.2c-.5-.2-1.1-.3-1.4-.8\"/><path fill=\"#231F20\" d=\"M107.1 68.6h-.1l-.2-.1c-.5-.2-1-.3-1.3-.8-.1-.1-.1-.4.1-.5.1-.1.4-.1.5.1.2.3.6.4 1 .6.1 0 .2.1.2.1.2.1.3.3.2.4-.1.1-.3.2-.4.2z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M62.8 4c13.6 0 26.3 1.9 33 15 6 14.6 3.8 30.4 4.8 45.9.8 13.3 2.5 28.6-3.6 40.9-6.5 12.9-22.7 16.2-36 15.7-10.5-.4-23.1-3.8-29.1-13.4-6.9-11.2-3.7-27.9-3.2-40.4.6-14.8-4-29.7.9-44.1C34.5 8.5 48.1 5.1 62.8 4\"/><path fill=\"#231F20\" d=\"M63.3 121.9h-2.5c-4.1-.1-10.3-.8-16.4-3.3-5.9-2.4-10.2-5.8-13-10.3-5.6-9.1-4.6-21.6-3.7-32.7.2-2.8.4-5.4.5-7.9.2-5.2-.2-10.6-.7-15.7-.8-9.4-1.6-19.1 1.5-28.5 2.4-7 6.7-12 13.2-15.2 5.1-2.5 11.4-3.9 20.4-4.6C76 3.6 89.3 5.5 96 18.8c4.4 10.7 4.4 22.2 4.5 33.3 0 4.2 0 8.5.3 12.7.1 1.3.2 2.6.2 3.9.8 12.2 1.7 26-3.9 37.2-2.8 5.7-7.7 9.9-14.4 12.6-5.4 2.2-12.2 3.4-19.4 3.4zM62.8 4.3c-14.1 1.1-27.9 4.2-33 19.4-3.1 9.3-2.3 18.9-1.5 28.2.4 5.2.9 10.5.7 15.8-.1 2.5-.3 5.1-.5 7.9-.9 11-1.9 23.4 3.6 32.3 2.3 3.7 9.7 12.5 28.8 13.2h2.5c22.1 0 30.3-9.8 33.3-15.6 5.5-11 4.6-24.8 3.9-36.9-.1-1.3-.2-2.6-.2-3.9-.2-4.2-.3-8.5-.3-12.7-.1-11-.1-22.5-4.4-33.1C92.7 13 88.2 9 82 6.7c-6.4-2.1-13.6-2.4-19.2-2.4z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#fff\" d=\"M65.2 22.2c2.4 14.2 25.6 10.4 22.3-3.9-3-12.8-23.1-9.2-22.3 3.9\"/><path fill=\"#231F20\" d=\"M76.2 31.5c-4.5 0-10.2-2.4-11.4-9.2-.2-3.2.8-6.1 2.9-8.3 2.3-2.5 5.8-3.9 9.4-3.9 4.2 0 9.2 2.2 10.6 8.3.8 3.4.2 6.4-1.7 8.8-2.1 2.6-5.8 4.3-9.8 4.3zm-10.7-9.3c.5 2.8 1.8 5 3.9 6.6 1.8 1.4 4.3 2.1 6.8 2.1 3.7 0 7.3-1.6 9.3-4.1 1.8-2.2 2.3-5.1 1.6-8.3-1.3-5.7-6-7.7-10-7.7-3.4 0-6.7 1.4-8.9 3.7-1.9 2-2.9 4.7-2.7 7.7z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#fff\" d=\"M37.5 24.5c3.2 12.3 22.9 9.2 22.2-3.2-.9-14.8-25.3-12-22.2 3.2\"/><path fill=\"#231F20\" d=\"M48 32.7c-4.3 0-9.3-2.1-10.9-8.1-.7-3.5 0-6.7 2-9.1 2.2-2.7 5.8-4.3 9.7-4.3 5.2 0 10.7 3.1 11.1 10.1.2 2.9-.7 5.5-2.7 7.6-2.1 2.3-5.6 3.8-9.2 3.8zm.8-20.8c-3.7 0-7.1 1.5-9.2 4-1.9 2.3-2.5 5.2-1.8 8.5C39.2 30 44 32 48 32c3.4 0 6.7-1.3 8.8-3.6 1.8-1.9 2.7-4.4 2.5-7.1-.2-4.3-3.1-9.4-10.5-9.4z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#fff\" d=\"M68 39.2c0 1.8.4 3.9.1 5.9-.5.9-1.4 1-2.2 1.3-1.1-.2-2-.9-2.5-1.9-.3-2.2.1-4.4.2-6.6l4.4 1.3z\"/><path fill=\"#231F20\" d=\"M65.9 46.8c-1.3-.2-2.3-1-2.8-2.1-.2-1.6-.1-3.1 0-4.6.1-.7.1-1.4.1-2.1v-.4l5.1 1.6v.2c0 .6.1 1.2.1 1.9.1 1.3.2 2.7 0 4v.1c-.4.8-1.1 1-1.8 1.3-.2-.1-.4 0-.7.1zm-2.2-2.4c.4.9 1.2 1.5 2.1 1.7.2-.1.4-.1.5-.2.6-.2 1.1-.4 1.4-.9.2-1.2.1-2.5 0-3.8 0-.6-.1-1.2-.1-1.7l-3.8-1.2c0 .6-.1 1.2-.1 1.7-.1 1.6-.2 3 0 4.4z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#231F20\" d=\"M46.3 22.5c0 2-1.5 3.6-3.3 3.6-1.8 0-3.3-1.6-3.3-3.6s1.5-3.6 3.3-3.6c1.8 0 3.3 1.6 3.3 3.6\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#fff\" d=\"M45.2 23.3c0 .5-.4.9-.8.9s-.8-.4-.8-.9.4-.9.8-.9c.5 0 .8.4.8.9\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#231F20\" d=\"M74.2 21.6c0 2-1.5 3.6-3.3 3.6-1.8 0-3.3-1.6-3.3-3.6s1.5-3.6 3.3-3.6c1.8 0 3.3 1.6 3.3 3.6\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#fff\" d=\"M73.2 22.4c0 .5-.3.9-.8.9-.4 0-.8-.4-.8-.9s.3-.9.8-.9c.4 0 .8.4.8.9M58.4 39c-1.5 3.5.8 10.6 4.8 5.4-.3-2.2.1-4.4.2-6.6l-5 1.2z\"/><path fill=\"#231F20\" d=\"M60.5 46.6c-.7 0-1.4-.4-1.9-1.2-1.1-1.6-1.3-4.6-.5-6.5l.1-.2 5.5-1.4v.4l-.1 2.2c-.1 1.5-.2 2.9 0 4.4v.1l-.1.1c-1 1.4-2 2.1-3 2.1zm-1.8-7.3c-.6 1.7-.4 4.4.5 5.7.4.6.8.9 1.3.9.7 0 1.5-.6 2.3-1.6-.2-1.5-.1-3 .1-4.4l.1-1.7-4.3 1.1z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M58.9 32.2c-2.7.2-4.9 3.5-3.5 6 1.9 3.4 6-.3 8.6 0 3 .1 5.4 3.2 7.8.6 2.7-2.9-1.2-5.7-4.1-7l-8.8.4z\"/><path fill=\"#231F20\" d=\"M69.7 40.2c-.9 0-1.8-.4-2.7-.8-.9-.4-1.9-.8-3-.8h-.3c-.8 0-1.7.3-2.7.7-1.1.4-2.2.7-3.2.7-1.2 0-2.1-.5-2.7-1.6-.7-1.2-.6-2.6.1-3.9.8-1.5 2.2-2.4 3.7-2.6l8.9-.4h.1c2.2.9 4.7 2.6 5.2 4.6.2 1-.1 2-.9 2.9-.8.9-1.6 1.2-2.5 1.2zM64.1 38c1.1 0 2.2.5 3.2.9.9.4 1.7.7 2.5.7.7 0 1.3-.3 1.9-.9.7-.7.9-1.5.8-2.3-.4-1.7-2.8-3.3-4.7-4.1l-8.7.4c-1.3.1-2.5 1-3.2 2.2-.6 1.1-.6 2.3-.1 3.3.5.9 1.1 1.3 2.1 1.3.9 0 1.9-.4 2.9-.7 1.1-.4 2-.7 3-.7 0-.2.1-.2.3-.1z\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#231F20\" d=\"M58.6 32.1c-.2-4.7 8.8-5.3 9.8-1.4 1.1 4-9.4 4.9-9.8 1.4\"/>` },\n { id: 'rust', label: 'Rust', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#CE422B', body: `<path d=\"M62.96.242c-.232.135-1.203 1.528-2.16 3.097-2.4 3.94-2.426 3.942-5.65.55-2.098-2.208-2.605-2.612-3.28-2.607-.44.002-.995.152-1.235.332-.24.18-.916 1.612-1.504 3.183-1.346 3.6-1.41 3.715-2.156 3.86-.46.086-1.343-.407-3.463-1.929-1.565-1.125-3.1-2.045-3.411-2.045-1.291 0-1.655.706-2.27 4.4-.78 4.697-.754 4.681-4.988 2.758-1.71-.776-3.33-1.41-3.603-1.41-.274 0-.792.293-1.15.652-.652.652-.653.655-.475 4.246l.178 3.595-.68.364c-.602.322-1.017.283-3.684-.348-3.48-.822-4.216-.8-4.92.15l-.516.693.692 2.964c.38 1.63.745 3.2.814 3.487.067.287-.05.746-.26 1.02-.348.448-.717.49-3.94.44-5.452-.086-5.761.382-3.51 5.3.718 1.56 1.305 2.98 1.305 3.15 0 .898-.717 1.224-3.794 1.727-1.722.28-3.218.51-3.326.51-.107 0-.43.235-.717.522-.937.936-.671 1.816 1.453 4.814 2.646 3.735 2.642 3.75-1.73 5.421-4.971 1.902-5.072 2.37-1.287 5.96 3.525 3.344 3.53 3.295-.461 5.804C.208 62.8.162 62.846.085 63.876c-.093 1.253-.071 1.275 3.538 3.48 3.57 2.18 3.57 2.246.067 5.56C-.078 76.48.038 77 5.013 78.877c4.347 1.64 4.353 1.66 1.702 5.394-1.502 2.117-1.981 3-1.981 3.653 0 1.223.637 1.535 4.44 2.174 3.206.54 3.92.857 3.92 1.741 0 .182-.588 1.612-1.307 3.177-2.236 4.87-1.981 5.275 3.31 5.275 4.93 0 4.799-.15 3.737 4.294-.8 3.35-.813 3.992-.088 4.715.554.556 1.6.494 4.87-.289 2.499-.596 2.937-.637 3.516-.328l.66.354-.177 3.594c-.178 3.593-.177 3.595.475 4.248.358.36.884.652 1.165.652.282 0 1.903-.63 3.604-1.404 4.22-1.916 4.194-1.932 4.973 2.75.617 3.711.977 4.4 2.294 4.4.327 0 1.83-.88 3.34-1.958 2.654-1.893 3.342-2.19 4.049-1.74.182.115.89 1.67 1.572 3.455 1.003 2.625 1.37 3.31 1.929 3.576 1.062.51 1.72.1 4.218-2.62 3.016-3.286 3.14-3.27 5.602.72 2.72 4.406 3.424 4.396 6.212-.089 2.402-3.864 2.374-3.862 5.621-.47 2.157 2.25 2.616 2.61 3.343 2.61.464 0 1.019-.175 1.23-.388.214-.213.92-1.786 1.568-3.496.649-1.71 1.321-3.2 1.495-3.31.687-.436 1.398-.13 4.048 1.752 1.56 1.108 3.028 1.96 3.377 1.96 1.296 0 1.764-.92 2.302-4.535.46-3.082.554-3.378 1.16-3.685.596-.302.954-.2 3.75 1.07 1.701.77 3.323 1.402 3.604 1.402.282 0 .816-.302 1.184-.672l.672-.67-.184-3.448c-.177-3.29-.16-3.468.364-3.943.54-.488.596-.486 3.615.204 3.656.835 4.338.857 5.025.17.671-.67.664-.818-.254-4.69-1.03-4.346-1.168-4.19 3.78-4.19 3.374 0 3.75-.049 4.18-.523.718-.793.547-1.702-.896-4.779-.729-1.55-1.32-2.96-1.315-3.135.024-.914.743-1.227 4.065-1.767 2.033-.329 3.553-.71 3.829-.96.923-.833.584-1.918-1.523-4.873-2.642-3.703-2.63-3.738 1.599-5.297 5.064-1.866 5.209-2.488 1.419-6.09-3.51-3.335-3.512-3.317.333-5.677 4.648-2.853 4.655-3.496.082-6.335-3.933-2.44-3.93-2.406-.405-5.753 3.78-3.593 3.678-4.063-1.295-5.965-4.388-1.679-4.402-1.72-1.735-5.38 1.588-2.18 1.982-2.903 1.982-3.65 0-1.306-.586-1.598-4.436-2.22-3.216-.52-3.924-.835-3.924-1.75 0-.174.588-1.574 1.307-3.113 1.406-3.013 1.604-4.22.808-4.94-.428-.387-1-.443-4.067-.392-3.208.054-3.618.008-4.063-.439-.486-.488-.48-.557.278-3.725.931-3.88.935-3.975.17-4.694-.777-.73-1.262-.718-4.826.121-2.597.612-3.027.653-3.617.337l-.67-.36.185-3.582.186-3.58-.67-.67c-.369-.37-.891-.67-1.163-.67-.27 0-1.884.64-3.583 1.421-2.838 1.306-3.143 1.393-3.757 1.072-.612-.32-.714-.637-1.237-3.829-.603-3.693-.977-4.412-2.288-4.412-.311 0-1.853.925-3.426 2.055-2.584 1.856-2.93 2.032-3.574 1.807-.533-.186-.843-.59-1.221-1.599-.28-.742-.817-2.172-1.194-3.177-.762-2.028-1.187-2.482-2.328-2.482-.637 0-1.213.458-3.28 2.604-3.25 3.375-3.261 3.374-5.65-.545C66.073 1.78 65.075.382 64.81.24c-.597-.32-1.3-.32-1.85.002m2.96 11.798c2.83 2.014 1.326 6.75-2.144 6.75-3.368 0-5.064-4.057-2.66-6.36 1.358-1.3 3.304-1.459 4.805-.39m-3.558 12.507c1.855.705 2.616.282 6.852-3.8l3.182-3.07 1.347.18c4.225.56 12.627 4.25 17.455 7.666 4.436 3.14 10.332 9.534 12.845 13.93l.537.942-2.38 5.364c-1.31 2.95-2.382 5.673-2.382 6.053 0 .878.576 2.267 1.13 2.726.234.195 2.457 1.265 4.939 2.378l4.51 2.025.178 1.148c.23 1.495.26 5.167.052 6.21l-.163.816h-2.575c-2.987 0-2.756-.267-2.918 3.396-.118 2.656-.76 4.124-2.22 5.075-2.377 1.551-6.304 1.27-7.97-.57-.255-.284-.752-1.705-1.105-3.16-1.03-4.254-2.413-6.64-5.193-8.965-.878-.733-1.595-1.418-1.595-1.522 0-.102.965-.915 2.145-1.803 4.298-3.24 6.77-7.012 7.04-10.747.519-7.126-5.158-13.767-13.602-15.92-2.002-.51-2.857-.526-27.624-.526-14.057 0-25.56-.092-25.56-.204 0-.263 3.125-3.295 4.965-4.816 5.054-4.178 11.618-7.465 18.417-9.22l2.35-.61 3.34 3.387c1.839 1.863 3.64 3.5 4.003 3.637M20.3 46.34c1.539 1.008 2.17 3.54 1.26 5.062-1.405 2.356-4.966 2.455-6.373.178-2.046-3.309 1.895-7.349 5.113-5.24m90.672.13c4.026 2.454.906 8.493-3.404 6.586-2.877-1.273-2.97-5.206-.155-6.64 1.174-.6 2.523-.579 3.56.053M32.163 61.5v15.02h-13.28l-.526-2.285c-1.036-4.5-1.472-9.156-1.211-12.969l.182-2.679 4.565-2.047c2.864-1.283 4.706-2.262 4.943-2.625 1.038-1.584.94-2.715-.518-5.933l-.68-1.502h6.523V61.5M70.39 47.132c2.843.74 4.345 2.245 4.349 4.355.002 1.55-.765 2.52-2.67 3.38-1.348.61-1.562.625-10.063.708l-8.686.084v-8.92h7.782c6.078 0 8.112.086 9.288.393m-2.934 21.554c1.41.392 3.076 1.616 3.93 2.888.898 1.337 1.423 3.076 2.667 8.836 1.05 4.87 1.727 6.46 3.62 8.532 2.345 2.566 1.8 2.466 13.514 2.466 5.61 0 10.198.09 10.198.2 0 .197-3.863 4.764-4.03 4.764-.048 0-2.066-.422-4.484-.939-6.829-1.458-7.075-1.287-8.642 6.032l-1.008 4.702-.91.448c-1.518.75-6.453 2.292-9.01 2.82-4.228.87-8.828 1.162-12.871.821-6.893-.585-16.02-3.259-16.377-4.8-.075-.327-.535-2.443-1.018-4.704-.485-2.26-1.074-4.404-1.31-4.764-1.13-1.724-2.318-1.83-7.547-.674-1.98.44-3.708.796-3.84.796-.248 0-3.923-4.249-3.923-4.535 0-.09 8.728-.194 19.396-.23l19.395-.066.07-6.89c.05-4.865-.018-6.997-.23-7.25-.234-.284-1.485-.358-6.011-.358H53.32v-8.36l6.597.001c3.626.002 7.02.12 7.539.264M37.57 100.02c3.084 1.88 1.605 6.804-2.043 6.8-3.74 0-5.127-4.88-1.94-6.826 1.055-.643 2.908-.63 3.983.026m56.48.206c1.512 1.108 2.015 3.413 1.079 4.95-2.46 4.034-8.612.827-6.557-3.419 1.01-2.085 3.695-2.837 5.478-1.53\"/>` },\n { id: 'docker', label: 'Docker', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#019BC6', body: `<path d=\"M124.8 52.1c-4.3-2.5-10-2.8-14.8-1.4-.6-5.2-4-9.7-8-12.9l-1.6-1.3-1.4 1.6c-2.7 3.1-3.5 8.3-3.1 12.3.3 2.9 1.2 5.9 3 8.3-1.4.8-2.9 1.9-4.3 2.4-2.8 1-5.9 2-8.9 2H79V49H66V24H51v12H26v13H13v14H1.8l-.2 1.5c-.5 6.4.3 12.6 3 18.5l1.1 2.2.1.2c7.9 13.4 21.7 19 36.8 19 29.2 0 53.3-13.1 64.3-40.6 7.4.4 15-1.8 18.6-8.9l.9-1.8-1.6-1zM28 39h10v11H28V39zm13.1 44.2c0 1.7-1.4 3.1-3.1 3.1-1.7 0-3.1-1.4-3.1-3.1 0-1.7 1.4-3.1 3.1-3.1 1.7.1 3.1 1.4 3.1 3.1zM28 52h10v11H28V52zm-13 0h11v11H15V52zm27.7 50.2c-15.8-.1-24.3-5.4-31.3-12.4 2.1.1 4.1.2 5.9.2 1.6 0 3.2 0 4.7-.1 3.9-.2 7.3-.7 10.1-1.5 2.3 5.3 6.5 10.2 14 13.8h-3.4zM51 63H40V52h11v11zm0-13H40V39h11v11zm13 13H53V52h11v11zm0-13H53V39h11v11zm0-13H53V26h11v11zm13 26H66V52h11v11zM38.8 81.2c-.2-.1-.5-.2-.8-.2-1.2 0-2.2 1-2.2 2.2 0 1.2 1 2.2 2.2 2.2s2.2-1 2.2-2.2c0-.3-.1-.6-.2-.8-.2.3-.4.5-.8.5-.5 0-.9-.4-.9-.9.1-.4.3-.7.5-.8z\"/>` },\n { id: 'mongodb', label: 'MongoDB', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#4FAA41', body: `<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M90.491 57.282c-.37-4.79-1.496-9.409-3.062-13.934-3.244-10.104-8.45-19.046-15.783-26.74-1.854-1.946-3.916-3.729-5.209-6.151-.818-1.532-1.597-3.085-2.394-4.629l-.505-1.273c-.085.292-.139.396-.142.501-.065 2.517-1.491 4.224-3.267 5.817-1.997 1.793-3.856 3.739-5.775 5.618l-5.901 7.763c-1.592 2.925-3.182 5.85-4.772 8.775l-3.19 8.617-.096.134c-1.756 5.768-2.622 11.698-3.048 17.688-.16 2.251.022 4.535.149 6.798.181 3.235.743 6.415 1.586 9.545 3.062 11.372 9.276 20.805 17.771 28.819 1.579 1.489 3.199 2.843 4.847 4.26.282-.965.507-1.93.763-2.895.256-.961.515-1.917.688-2.881-.174.964-.369 1.92-.562 2.881l-.826 2.895.738 2.501.684 3.884.326 4.053c-.003.823-.036 1.648.014 2.47.012.21.288.404.442.606l1.376.483 1.434.558-.246-3.603-.011-3.548.495-5.405.359-1.177 1.027-1.82c1.268-1.02 2.629-1.946 3.784-3.081 2.09-2.054 4.175-4.134 6.045-6.383a47.846 47.846 0 006.191-9.516c1.122-2.284 2.178-4.614 3.052-7.001.77-2.104 1.247-4.315 1.854-6.479.054-.156.126-.309.16-.468 1.254-5.841 1.465-11.741 1.004-17.682zm-23.599 49.375l-.805-1.763.805 1.763 1.183 1.01-1.183-1.01z\"/>` },\n { id: 'git', label: 'Git', category: 'lang', viewBox: '0 0 128 128', filled: true, brandColor: '#F34F29', body: `<path d=\"M124.742 58.378L69.625 3.264c-3.172-3.174-8.32-3.174-11.497 0L46.685 14.71l14.518 14.518c3.375-1.139 7.243-.375 9.932 2.314a9.66 9.66 0 012.293 9.993L87.42 55.529c3.385-1.167 7.292-.413 9.994 2.295 3.78 3.777 3.78 9.9 0 13.679a9.673 9.673 0 01-13.683 0 9.677 9.677 0 01-2.105-10.521L68.578 47.933l-.002 34.341a9.708 9.708 0 012.559 1.828c3.779 3.777 3.779 9.898 0 13.683-3.779 3.777-9.904 3.777-13.679 0-3.778-3.784-4.088-9.905-.311-13.683.934-.933 1.855-1.638 2.855-2.11V47.333c-1-.472-1.92-1.172-2.856-2.111-2.861-2.86-3.396-7.06-1.928-10.576L40.983 20.333 3.229 58.123c-3.175 3.177-3.155 8.325.02 11.5l55.126 55.114c3.173 3.174 8.325 3.174 11.503 0l54.86-54.858c3.175-3.176 3.178-8.327.004-11.501z\"/>` },\n\n /* ─── Communication ──────────────────────────────────────── */\n { id: 'message', label: '消息', category: 'comm', body: `<path d=\"M8 9h8\" /><path d=\"M8 13h6\" /><path d=\"M9 18h-3a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-3l-3 3l-3 -3\" />` },\n { id: 'rightclick', label: '鼠标', category: 'comm', body: `<path d=\"M6 7a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v10a4 4 0 0 1 -4 4h-4a4 4 0 0 1 -4 -4l0 -10\" /><path d=\"M12 7l0 4\" />` },\n { id: 'phone', label: '手机', category: 'comm', body: `<path d=\"M6 5a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2v-14\" /><path d=\"M11 4h2\" /><path d=\"M12 17v.01\" />` },\n { id: 'computer', label: '电脑', category: 'comm', ratio: 1.3, body: `<path d=\"M3 5a1 1 0 0 1 1 -1h16a1 1 0 0 1 1 1v10a1 1 0 0 1 -1 1h-16a1 1 0 0 1 -1 -1v-10\" /><path d=\"M7 20h10\" /><path d=\"M9 16v4\" /><path d=\"M15 16v4\" />` },\n { id: 'tablet', label: '平板', category: 'comm', ratio: 0.75, body: `<path d=\"M5 4a1 1 0 0 1 1 -1h12a1 1 0 0 1 1 1v16a1 1 0 0 1 -1 1h-12a1 1 0 0 1 -1 -1v-16\" /><path d=\"M11 17a1 1 0 1 0 2 0a1 1 0 0 0 -2 0\" />` },\n { id: 'walkietalkie', label: '对讲机', category: 'comm', body: `<path d=\"M14 3l-9.371 3.749a1 1 0 0 0 -.629 .928v11.323a1 1 0 0 0 1 1h14a1 1 0 0 0 1 -1v-11a1 1 0 0 0 -1 -1h-14.5\" /><path d=\"M4 12h16\" /><path d=\"M7 12v-2\" /><path d=\"M17 16v.01\" /><path d=\"M13 16v.01\" />` },\n { id: 'email', label: '邮件', category: 'comm', ratio: 1.3, body: `<path d=\"M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10\" /><path d=\"M3 7l9 6l9 -6\" />` },\n\n /* ─── Logistics ──────────────────────────────────────────── */\n { id: 'car', label: '小汽车', category: 'logistics', ratio: 1.4, body: `<path d=\"M5 17a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" /><path d=\"M15 17a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" /><path d=\"M5 17h-2v-6l2 -5h9l4 5h1a2 2 0 0 1 2 2v4h-2m-4 0h-6m-6 -6h15m-6 0v-5\" />` },\n { id: 'truck', label: '卡车', category: 'logistics', ratio: 1.5, body: `<path d=\"M5 17a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" /><path d=\"M15 17a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" /><path d=\"M5 17h-2v-11a1 1 0 0 1 1 -1h9v12m-4 0h6m4 0h2v-6h-8m0 -5h5l3 5\" />` },\n { id: 'train', label: '火车', category: 'logistics', body: `<path d=\"M21 13c0 -3.87 -3.37 -7 -10 -7h-8\" /><path d=\"M3 15h16a2 2 0 0 0 2 -2\" /><path d=\"M3 6v5h17.5\" /><path d=\"M3 11v4\" /><path d=\"M8 11v-5\" /><path d=\"M13 11v-4.5\" /><path d=\"M3 19h18\" />` },\n { id: 'ship', label: '轮船', category: 'logistics', ratio: 1.4, body: `<path d=\"M2 20a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1a2.4 2.4 0 0 1 2 -1a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1a2.4 2.4 0 0 1 2 -1a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1\" /><path d=\"M4 18l-1 -5h18l-2 4\" /><path d=\"M5 13v-6h8l4 6\" /><path d=\"M7 7v-4h-1\" />` },\n { id: 'plane', label: '飞机', category: 'logistics', ratio: 1.2, body: `<path d=\"M16 10h4a2 2 0 0 1 0 4h-4l-4 7h-3l2 -7h-4l-2 2h-3l2 -4l-2 -4h3l2 2h4l-2 -7h3l4 7\" />` },\n\n /* ─── Factory ────────────────────────────────────────────── */\n { id: 'bulldozer', label: '推土机', category: 'factory', ratio: 1.4, body: `<path d=\"M2 17a2 2 0 1 0 4 0a2 2 0 0 0 -4 0\" /><path d=\"M12 17a2 2 0 1 0 4 0a2 2 0 0 0 -4 0\" /><path d=\"M19 13v4a2 2 0 0 0 2 2h1\" /><path d=\"M14 19h-10\" /><path d=\"M4 15h10\" /><path d=\"M9 11v-5h2a3 3 0 0 1 3 3v6\" /><path d=\"M5 15v-3a1 1 0 0 1 1 -1h8\" /><path d=\"M19 17h-3\" />` },\n { id: 'crane', label: '吊车', category: 'factory', body: `<path d=\"M6 21h6\" /><path d=\"M9 21v-18l-6 6h18\" /><path d=\"M9 3l10 6\" /><path d=\"M17 9v4a2 2 0 1 1 -2 2\" />` },\n { id: 'factory', label: '工厂', category: 'factory', ratio: 1.2, body: `<path d=\"M3 21h18\" /><path d=\"M5 21v-12l5 4v-4l5 4h4\" /><path d=\"M19 21v-8l-1.436 -9.574a.5 .5 0 0 0 -.495 -.426h-1.145a.5 .5 0 0 0 -.494 .418l-1.43 8.582\" /><path d=\"M9 17h1\" /><path d=\"M14 17h1\" />` },\n { id: 'windturbine', label: '风力发电机', category: 'factory', body: `<path d=\"M11 21h2\" /><path d=\"M12 21l.5 -11\" /><path d=\"M11.5 10l1 0\" /><path d=\"M12 9.2a1 1 0 1 0 0 1.6a1 1 0 0 0 0 -1.6\" /><path d=\"M12 9.3v-6.3\" /><path d=\"M12.7 10.4l5.5 3.1\" /><path d=\"M11.3 10.4l-5.5 3.1\" />` },\n { id: 'warehouse', label: '库房', category: 'factory', ratio: 1.2, body: `<path d=\"M3 21v-13l9 -4l9 4v13\" /><path d=\"M13 13h4v8h-10v-6h6\" /><path d=\"M13 21v-9a1 1 0 0 0 -1 -1h-2a1 1 0 0 0 -1 1v3\" />` },\n\n /* ─── Arrows ─────────────────────────────────────────────── */\n { id: 'arrowUp', label: '上', category: 'arrow', body: `<path d=\"M12 5l0 14\" /><path d=\"M18 11l-6 -6\" /><path d=\"M6 11l6 -6\" />` },\n { id: 'arrowDown', label: '下', category: 'arrow', body: `<path d=\"M12 5l0 14\" /><path d=\"M18 13l-6 6\" /><path d=\"M6 13l6 6\" />` },\n { id: 'arrowLeft', label: '左', category: 'arrow', body: `<path d=\"M5 12l14 0\" /><path d=\"M5 12l6 6\" /><path d=\"M5 12l6 -6\" />` },\n { id: 'arrowRight', label: '右', category: 'arrow', body: `<path d=\"M5 12l14 0\" /><path d=\"M13 18l6 -6\" /><path d=\"M13 6l6 6\" />` },\n\n /* ─── C4 architecture ────────────────────────────────────── */\n { id: 'c4Person', label: 'Person', category: 'c4', body: `<path d=\"M12 3.5a3.2 3.2 0 1 0 0 6.4a3.2 3.2 0 0 0 0 -6.4\" /><path d=\"M5.5 21v-2.5a6.5 6.5 0 0 1 13 0v2.5z\" />` },\n { id: 'c4System', label: 'Software System', category: 'c4', ratio: 1.3, body: `<rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2.5\" /><path d=\"M7 10h10\" /><path d=\"M7 13.5h7\" />` },\n { id: 'c4Container', label: 'Container', category: 'c4', ratio: 1.3, body: `<rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"1\" /><path d=\"M3 9h18\" /><path d=\"M6.5 6.8h.01\" /><path d=\"M9 6.8h.01\" />` },\n { id: 'c4Component', label: 'Component', category: 'c4', ratio: 1.3, body: `<rect x=\"6\" y=\"5\" width=\"15\" height=\"14\" rx=\"1\" /><path d=\"M3 8.5h6\" /><path d=\"M3 15.5h6\" /><rect x=\"1.5\" y=\"7\" width=\"3\" height=\"3\" /><rect x=\"1.5\" y=\"14\" width=\"3\" height=\"3\" />` },\n { id: 'c4Boundary', label: 'Boundary', category: 'c4', ratio: 1.3, body: `<rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" stroke-dasharray=\"4 3\" /><path d=\"M7 8.5h6\" />` },\n\n /* ─── Circuit ────────────────────────────────────────────── */\n { id: 'gateAnd', label: '与门', category: 'circuit', ratio: 1.4, body: `<path d=\"M22 12h-5\" /><path d=\"M2 9h5\" /><path d=\"M2 15h5\" /><path d=\"M9 5c6 0 8 3.5 8 7s-2 7 -8 7h-2v-14h2\" />` },\n { id: 'gateOr', label: '或门', category: 'circuit', ratio: 1.4, body: `<path d=\"M22 12h-6\" /><path d=\"M2 9h7\" /><path d=\"M2 15h7\" /><path d=\"M8 5c10.667 2.1 10.667 12.6 0 14c1.806 -4.667 1.806 -9.333 0 -14\" />` },\n { id: 'gateNot', label: '非门', category: 'circuit', ratio: 1.4, body: `<path d=\"M22 12h-3\" /><path d=\"M2 9h3\" /><path d=\"M2 15h3\" /><path d=\"M5 5l10 7l-10 7l0 -14\" /><path d=\"M15 12a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" />` },\n { id: 'gateNand', label: '与非门', category: 'circuit', ratio: 1.4, body: `<path d=\"M22 12h-3\" /><path d=\"M2 9h3\" /><path d=\"M2 15h3\" /><path d=\"M7 5c6 0 8 3.5 8 7s-2 7 -8 7h-2v-14h2\" /><path d=\"M15 12a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" />` },\n { id: 'gateNor', label: '或非门', category: 'circuit', ratio: 1.4, body: `<path d=\"M22 12h-4\" /><path d=\"M2 9h5\" /><path d=\"M2 15h5\" /><path d=\"M6 5c10.667 2.1 10.667 12.6 0 14c1.806 -4.667 1.806 -9.333 0 -14\" /><path d=\"M14 12a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\" />` },\n { id: 'diode', label: '二极管', category: 'circuit', ratio: 1.4, body: `<path d=\"M22 12h-6\" /><path d=\"M2 12h6\" /><path d=\"M8 7l8 5l-8 5l0 -10\" /><path d=\"M16 7v10\" />` },\n { id: 'transistor', label: '三极管', category: 'circuit', body: `<path d=\"M3 12h4\" /><path d=\"M7 6v12\" /><path d=\"M7 9.5l7 -3.5\" /><path d=\"M14 6v-3\" /><path d=\"M7 14.5l7 3.5\" /><path d=\"M14 18v3\" /><path d=\"M11 14l3 1.5l-1.5 2.7\" />` },\n { id: 'capacitor', label: '电容', category: 'circuit', ratio: 1.4, body: `<path d=\"M22 12h-8\" /><path d=\"M2 12h8\" /><path d=\"M10 7v10\" /><path d=\"M14 7v10\" />` },\n { id: 'resistor', label: '电阻', category: 'circuit', ratio: 1.6, body: `<path d=\"M2 12h2l2 -5l3 10l3 -10l3 10l3 -10l1.5 5h2.5\" />` },\n { id: 'opamp', label: '运放', category: 'circuit', ratio: 1.3, body: `<path d=\"M6 4v16l13 -8z\" /><path d=\"M2 8h4\" /><path d=\"M2 16h4\" /><path d=\"M19 12h3\" /><path d=\"M7.5 8h2\" /><path d=\"M7.5 16h2\" /><path d=\"M8.5 15v2\" />` },\n { id: 'crystal', label: '晶振', category: 'circuit', body: `<path d=\"M2 12h4\" /><path d=\"M6 7v10\" /><path d=\"M9 6h6v12h-6z\" /><path d=\"M18 7v10\" /><path d=\"M18 12h4\" />` },\n { id: 'battery', label: '电源', category: 'circuit', body: `<path d=\"M2 12h5\" /><path d=\"M17 12h5\" /><path d=\"M7 7v10\" /><path d=\"M11 4v16\" /><path d=\"M15 7v10\" /><path d=\"M19 4v16\" transform=\"translate(-4 0)\" />` },\n { id: 'powerAc', label: '交流电源', category: 'circuit', body: `<path d=\"M12 3a9 9 0 1 0 0 18a9 9 0 0 0 0 -18\" /><path d=\"M7.5 13.5c1.5 -3 3 -3 4.5 0s3 3 4.5 0\" />` },\n { id: 'powerDc', label: '直流电源', category: 'circuit', body: `<path d=\"M12 3a9 9 0 1 0 0 18a9 9 0 0 0 0 -18\" /><path d=\"M6.5 10h5\" /><path d=\"M6.5 14h5\" /><path d=\"M14 10h3.5\" /><path d=\"M15.75 12v0\" />` },\n { id: 'ground', label: '接地', category: 'circuit', body: `<path d=\"M12 3v9\" /><path d=\"M5 12h14\" /><path d=\"M8 16h8\" /><path d=\"M10 20h4\" />` },\n\n /* ─── Player controls ────────────────────────────────────── */\n { id: 'volumeUp', label: '音量加', category: 'player', body: `<path d=\"M15 8a5 5 0 0 1 0 8\" /><path d=\"M17.7 5a9 9 0 0 1 0 14\" /><path d=\"M6 15h-2a1 1 0 0 1 -1 -1v-4a1 1 0 0 1 1 -1h2l3.5 -4.5a.8 .8 0 0 1 1.5 .5v14a.8 .8 0 0 1 -1.5 .5l-3.5 -4.5\" />` },\n { id: 'volumeDown', label: '音量减', category: 'player', body: `<path d=\"M15 8a5 5 0 0 1 0 8\" /><path d=\"M6 15h-2a1 1 0 0 1 -1 -1v-4a1 1 0 0 1 1 -1h2l3.5 -4.5a.8 .8 0 0 1 1.5 .5v14a.8 .8 0 0 1 -1.5 .5l-3.5 -4.5\" />` },\n { id: 'play', label: '播放', category: 'player', body: `<path d=\"M7 4v16l13 -8l-13 -8\" />` },\n { id: 'pause', label: '暂停', category: 'player', body: `<path d=\"M6 6a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -12\" /><path d=\"M14 6a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -12\" />` },\n { id: 'settings', label: '设置', category: 'player', body: `<path d=\"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065\" /><path d=\"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0\" />` },\n { id: 'next', label: '下一首', category: 'player', body: `<path d=\"M3 5v14l8 -7l-8 -7\" /><path d=\"M14 5v14l8 -7l-8 -7\" />` },\n { id: 'prev', label: '上一首', category: 'player', body: `<path d=\"M21 5v14l-8 -7l8 -7\" /><path d=\"M10 5v14l-8 -7l8 -7\" />` },\n];\n/* eslint-enable max-len */\n\nconst ICON_MAP = new Map<string, SvgIconDef>(ICONS.map((i) => [i.id, i]));\n\nexport function getSvgIcon(id: string): SvgIconDef | undefined {\n return ICON_MAP.get(id);\n}\n\nexport function getSvgIconsByCategory(category: SvgIconCategory): SvgIconDef[] {\n return ICONS.filter((i) => i.category === category);\n}\n\nexport function getAllSvgIcons(): SvgIconDef[] {\n return ICONS;\n}\n\n/**\n * Build a standalone SVG string for the icon with the given color, suitable\n * for rasterizing into an image/texture. Bodies are outline paths that inherit\n * the stroke color from the wrapping `<g>`; `filled` bodies inherit the fill.\n * Pass `gradient` to paint the icon with a linear gradient instead of the\n * solid color (sub-paths carrying an explicit `#fff` fill stay white).\n */\nexport function buildSvgMarkup(\n id: string,\n color: string,\n gradient?: { to: string; direction?: GradientDirection },\n): string | null {\n const def = ICON_MAP.get(id);\n if (!def) return null;\n const viewBox = def.viewBox ?? '0 0 24 24';\n const useGradient = gradient?.to && gradient.to !== color;\n const paint = useGradient ? 'url(#flow-icon-grad)' : color;\n const defs = useGradient ? buildSvgGradientDef(color, gradient!.to, gradient!.direction, 'flow-icon-grad') : '';\n let group: string;\n if (def.brand) {\n // Multi-color brand logo: render verbatim (paths carry their own fills).\n // The wrapping fill only supplies a color for paths that lack one.\n group = `<g fill=\"${paint}\">${def.body}</g>`;\n } else if (def.filled) {\n group = `<g fill=\"${paint}\">${def.body}</g>`;\n } else {\n group = `<g fill=\"none\" stroke=\"${paint}\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">${def.body}</g>`;\n }\n return `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"${viewBox}\" width=\"24\" height=\"24\">${defs}${group}</svg>`;\n}\n"],"mappings":"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"}