cloudmap 1.0.0__py3-none-any.whl

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.
@@ -0,0 +1,15 @@
1
+ """Load resources from a JSON fixture that mirrors `az graph query` output.
2
+
3
+ Accepts either a bare list of resources, or the object shape the CLI returns
4
+ (`{"data": [...]}`), so the same file works for fixtures and captured live data.
5
+ """
6
+
7
+ import json
8
+
9
+
10
+ def load_fixture(path):
11
+ with open(path, encoding="utf-8") as f:
12
+ data = json.load(f)
13
+ if isinstance(data, dict):
14
+ return data.get("data") or data.get("resources") or []
15
+ return data
@@ -0,0 +1,227 @@
1
+ import json
2
+ import os
3
+ import sys
4
+
5
+ try:
6
+ import questionary
7
+ from questionary import Style
8
+ from rich.console import Console
9
+ from rich.panel import Panel
10
+ except ImportError:
11
+ questionary = None
12
+
13
+ def interactive_main():
14
+ if questionary is None:
15
+ print("Interactive mode requires 'questionary' and 'rich'. Install with: pip install questionary rich", file=sys.stderr)
16
+ return 1
17
+
18
+ from .ingest.azure import _az, _graph_paged
19
+
20
+ console = Console()
21
+
22
+ # Beautiful custom theme for the prompts
23
+ custom_style = Style([
24
+ ('qmark', 'fg:#00d7ff bold'), # Token in front of the question
25
+ ('question', 'bold'), # Question text
26
+ ('answer', 'fg:#00ff00 bold'), # Submitted answer text behind the question
27
+ ('pointer', 'fg:#00d7ff bold'), # Pointer used in select and checkbox prompts
28
+ ('highlighted', 'fg:#00d7ff bold'), # Pointed-at choice in select and checkbox prompts
29
+ ('selected', 'fg:#00d7ff'), # Style for a selected item of a checkbox
30
+ ('separator', 'fg:#777777'), # Separator in lists
31
+ ('instruction', 'fg:#777777 italic')# User instructions for select, rawselect, checkbox
32
+ ])
33
+
34
+ console.print(Panel.fit(
35
+ "[bold cyan]🗺️ CloudMap Interactive Wizard[/bold cyan]\n"
36
+ "[dim]Trace the blast radius of your Azure resources with style.[/dim]",
37
+ border_style="cyan"
38
+ ))
39
+
40
+ # 1. Get subscriptions (Optimized query: only enabled, minimal fields)
41
+ with console.status("[bold cyan]Fetching Azure Subscriptions...[/bold cyan]", spinner="dots"):
42
+ try:
43
+ subs_json = _az(["account", "list", "--query", "[?state=='Enabled'].{name:name, id:id, isDefault:isDefault, tenantId:tenantId}", "-o", "json"])
44
+ subs = json.loads(subs_json)
45
+ except Exception as e:
46
+ console.print(f"[bold red]Error:[/bold red] Azure CLI ('az') failed: {e}")
47
+ return 1
48
+
49
+ if not subs:
50
+ console.print("[bold red]No active subscriptions found. Are you logged in? Run 'az login'.[/bold red]")
51
+ return 1
52
+
53
+ # Sort so default is at the top
54
+ subs.sort(key=lambda x: not x.get('isDefault', False))
55
+
56
+ sub_choices = []
57
+ for s in subs:
58
+ default_tag = " [bold green](Default)[/bold green]" if s.get('isDefault') else ""
59
+ sub_choices.append(questionary.Choice(title=f"{s['name']}{default_tag} [dim]{s['id']}[/dim]", value={"id": s['id'], "tenantId": s.get('tenantId')}))
60
+
61
+ chosen_sub = questionary.select(
62
+ "Select an Azure Subscription:",
63
+ choices=sub_choices,
64
+ style=custom_style,
65
+ instruction="(Use arrow keys)"
66
+ ).ask()
67
+
68
+ if not chosen_sub:
69
+ return 0
70
+
71
+ sub_id = str(chosen_sub["id"]).strip()
72
+ tenant_id = str(chosen_sub.get("tenantId", "")).strip()
73
+
74
+ # Globally pin the subscription so _graph_paged and _az use it correctly across tenants
75
+ os.environ["CLOUDMAP_ALLOW_SUBSCRIPTION"] = sub_id
76
+
77
+ # 2. Get resources (Optimized ARG query)
78
+ query = """
79
+ Resources
80
+ | where type in (
81
+ 'microsoft.web/sites',
82
+ 'microsoft.containerservice/managedclusters',
83
+ 'microsoft.app/containerapps',
84
+ 'microsoft.compute/virtualmachines',
85
+ 'microsoft.apimanagement/service',
86
+ 'microsoft.sql/servers/databases',
87
+ 'microsoft.dbforpostgresql/flexibleservers',
88
+ 'microsoft.storage/storageaccounts',
89
+ 'microsoft.keyvault/vaults',
90
+ 'microsoft.logic/workflows',
91
+ 'microsoft.servicebus/namespaces',
92
+ 'microsoft.eventhub/namespaces',
93
+ 'microsoft.cognitiveservices/accounts',
94
+ 'microsoft.machinelearningservices/workspaces',
95
+ 'microsoft.search/searchservices',
96
+ 'microsoft.documentdb/databaseaccounts',
97
+ 'microsoft.cache/redis'
98
+ )
99
+ | project id, name, type, resourceGroup
100
+ | order by name asc
101
+ """
102
+ query = query.replace('\n', ' ').strip()
103
+
104
+ with console.status("[bold cyan]Scanning for Workloads via Azure Resource Graph...[/bold cyan]", spinner="dots"):
105
+ try:
106
+ data, _ = _graph_paged(query, [sub_id])
107
+ except Exception as e:
108
+ console.print(f"[bold red]Failed to fetch resources from ARG: {e}[/bold red]")
109
+ return 1
110
+
111
+ if not data:
112
+ console.print("[bold yellow]No workloads (Web Apps / AKS / Container Apps) found in this subscription.[/bold yellow]")
113
+ return 0
114
+
115
+ # 2.5 Select Resource Group (Cascading)
116
+ # Ensure resourceGroup is never None for sorting and filtering
117
+ for r in data:
118
+ if not r.get('resourceGroup'):
119
+ r['resourceGroup'] = 'Unknown'
120
+
121
+ unique_rgs = sorted(list(set(r['resourceGroup'] for r in data)))
122
+ rg_choices = [questionary.Choice(title="🌟 [All Resource Groups]", value="ALL")]
123
+ for rg in unique_rgs:
124
+ rg_choices.append(questionary.Choice(title=f"📁 {rg}", value=rg))
125
+
126
+ selected_rg = questionary.select(
127
+ "Select a Resource Group:",
128
+ choices=rg_choices,
129
+ style=custom_style,
130
+ instruction="(Use arrow keys or type to search)"
131
+ ).ask()
132
+
133
+ if not selected_rg:
134
+ return 0
135
+
136
+ if selected_rg != "ALL":
137
+ data = [r for r in data if r['resourceGroup'] == selected_rg]
138
+
139
+ # 3. Select Resource
140
+ res_choices = []
141
+ for r in data:
142
+ rtype = r['type'].split('/')[-1]
143
+ icon = "☸️ " if "managedclusters" in r['type'].lower() else ("🌐" if "sites" in r['type'].lower() else "📦")
144
+ # Format: Icon Name (Type) [RG] (only show RG dim if ALL was selected)
145
+ rg_dim = f" [dim]RG: {r['resourceGroup']}[/dim]" if selected_rg == "ALL" else ""
146
+ display = f"{icon} {r['name'].ljust(30)} {rtype.ljust(18)}{rg_dim}"
147
+ res_choices.append(questionary.Choice(title=display, value={"id": r['id'], "name": r['name']}))
148
+
149
+ selected_res = questionary.select(
150
+ "Select a resource to trace:",
151
+ choices=res_choices,
152
+ style=custom_style,
153
+ instruction="(Use arrow keys or type to search)"
154
+ ).ask()
155
+
156
+ if not selected_res:
157
+ return 0
158
+
159
+ res_id = selected_res["id"]
160
+ res_name = selected_res["name"]
161
+
162
+ # 3. Enrichment Mode
163
+ enrich = questionary.select(
164
+ "Deep-enrich dependencies? (Parses App Configs & K8s Manifests)",
165
+ choices=[
166
+ questionary.Choice([("class:highlighted", "✦ auto"), ("", " (Deep-enrich the selected resource only - "), ("class:answer", "Fast & Recommended"), ("", ")")], "auto"),
167
+ questionary.Choice([("class:text", "✦ all"), ("", " (Deep-enrich ALL workloads in scope - "), ("class:warning", "Slower"), ("", ")")], "all"),
168
+ questionary.Choice([("class:text", "✦ none"), ("", " (ARM topology only - "), ("class:error", "Misses App Settings"), ("", ")")], "none")
169
+ ],
170
+ style=custom_style
171
+ ).ask()
172
+
173
+ if not enrich:
174
+ return 0
175
+
176
+ # 3.2 AI Edge Proposals (Phase 3)
177
+ use_llm = questionary.confirm(
178
+ "Use local AI (Ollama) to discover hidden dependencies? (Slower, but finds undocumented links)",
179
+ default=False,
180
+ style=custom_style
181
+ ).ask()
182
+
183
+ if use_llm is None: # User aborted with Ctrl+C
184
+ return 0
185
+
186
+ # 3.5 Output Location
187
+ out_location = questionary.select(
188
+ "Where should we save the results folder?",
189
+ choices=[
190
+ questionary.Choice(title="📂 Current directory (./)", value="."),
191
+ questionary.Choice(title="📁 Custom path...", value="CUSTOM")
192
+ ],
193
+ style=custom_style
194
+ ).ask()
195
+
196
+ if not out_location:
197
+ return 0
198
+
199
+ if out_location == "CUSTOM":
200
+ out_location = questionary.path(
201
+ "Enter output directory path:",
202
+ default="./",
203
+ only_directories=True,
204
+ style=custom_style
205
+ ).ask()
206
+ if not out_location:
207
+ return 0
208
+
209
+ target_dir = os.path.join(out_location, res_name)
210
+
211
+ # 4. Generate trace
212
+ console.print(f"\n[bold green]🚀 Launching Trace for [white]{res_name}[/white]...[/bold green]\n")
213
+
214
+ os.environ["CLOUDMAP_ALLOW_SUBSCRIPTION"] = sub_id
215
+
216
+ args = [
217
+ "trace", res_id,
218
+ "--live", "--allow-live",
219
+ "--single-sub",
220
+ "--enrich", enrich,
221
+ "--out-dir", out_location
222
+ ]
223
+ if use_llm:
224
+ args.append("--llm")
225
+
226
+ from .cli import main as cli_main
227
+ return cli_main(args)
@@ -0,0 +1,49 @@
1
+ """The one place cloudmap talks to a model - and it talks to a LOCAL one.
2
+
3
+ Keeping the transport in a single module is a design promise rather than tidiness:
4
+ there is exactly one outbound call in the whole tool, it points at localhost
5
+ (ollama), and it serves the only two jobs a model is allowed to do here -
6
+ proposing candidate edges that a deterministic rule then verifies, and narrating
7
+ an answer the graph already produced. No resource JSON ever reaches a third party.
8
+
9
+ Every failure returns an empty value instead of raising: cloudmap must stay fully
10
+ useful with no model installed, so "no model" is a normal state, not an error.
11
+ """
12
+
13
+ import json
14
+ import os
15
+ import urllib.request
16
+
17
+ OLLAMA_URL = os.environ.get("CLOUDMAP_OLLAMA_URL", "http://localhost:11434/api/generate")
18
+ DEFAULT_MODEL = os.environ.get("CLOUDMAP_LLM_MODEL", "qwen2.5-coder:3b")
19
+
20
+
21
+ def generate(prompt, model=None, timeout=600, json_format=True):
22
+ """Ask the local model once. Returns the response text, or "" on any failure
23
+ (ollama absent, not running, timeout, malformed payload)."""
24
+ body = {
25
+ "model": model or DEFAULT_MODEL,
26
+ "prompt": prompt,
27
+ "stream": False,
28
+ "options": {"temperature": 0},
29
+ }
30
+ if json_format:
31
+ body["format"] = "json"
32
+ try:
33
+ req = urllib.request.Request(
34
+ OLLAMA_URL, data=json.dumps(body).encode(),
35
+ headers={"Content-Type": "application/json"})
36
+ resp = json.load(urllib.request.urlopen(req, timeout=timeout))
37
+ except Exception:
38
+ return ""
39
+ return resp.get("response", "") or ""
40
+
41
+
42
+ def generate_json(prompt, model=None, timeout=600):
43
+ """generate() plus a strict JSON parse. Returns {} on any failure, so callers
44
+ never have to distinguish "model down" from "model answered nonsense"."""
45
+ try:
46
+ parsed = json.loads(generate(prompt, model=model, timeout=timeout, json_format=True))
47
+ except Exception:
48
+ return {}
49
+ return parsed if isinstance(parsed, dict) else {}
cloudmap/model.py ADDED
@@ -0,0 +1,43 @@
1
+ """Core data model: the unified Node / Edge / Graph that every ingestor feeds
2
+ and every renderer reads. Deliberately provider-neutral so a future GCP/AWS
3
+ ingestor could reuse it unchanged."""
4
+
5
+ from dataclasses import dataclass, field
6
+ from typing import Any
7
+
8
+
9
+ @dataclass
10
+ class Node:
11
+ id: str # ARM resource id (original casing kept for display)
12
+ name: str
13
+ type: str # lowercased ARM type, e.g. microsoft.web/sites
14
+ resource_group: str = ""
15
+ subscription: str = ""
16
+ location: str = ""
17
+ kind: str = ""
18
+ tags: dict[str, str] = field(default_factory=dict)
19
+ raw: dict[str, Any] = field(default_factory=dict) # original resource (properties, identity)
20
+ external: bool = False # referenced but not verified as an ARM resource in scope
21
+ note: str = "" # how it was discovered / why it's external
22
+
23
+
24
+ @dataclass
25
+ class Edge:
26
+ source: str # node id
27
+ target: str # node id
28
+ kind: str # relationship label, e.g. hosted-on, reads-secret
29
+ origin: str = "extracted" # "extracted" = a deterministic rule found proof;
30
+ # "model" = proposed by the LLM (a guess, marked as such)
31
+ evidence: str = "" # WHY this edge exists: the property/setting/rule behind it
32
+ detail: str = ""
33
+
34
+
35
+ @dataclass
36
+ class Graph:
37
+ nodes: dict[str, Node] # id -> Node
38
+ edges: list[Edge] # list[Edge]
39
+ distances: dict[str, int] = field(default_factory=dict) # id -> hop distance from seed
40
+ # provenance of the map ITSELF (seed, complete, truncated, read_gaps) as written
41
+ # to the JSON artifact. Carried so a reloaded map stays honest about its limits:
42
+ # a question answered from an incomplete map gets the same warning the map has.
43
+ meta: dict[str, Any] = field(default_factory=dict)
File without changes
@@ -0,0 +1,72 @@
1
+ """Official Azure service icons, inlined so the HTML viewer stays self-contained.
2
+
3
+ The SVGs are the `azure2` set that draw.io ships (jgraph/drawio, Apache-2.0,
4
+ src/main/webapp/img/lib/azure2/) - the same icons the drawio renderer references
5
+ by path. Here they are EMBEDDED because the HTML viewer's promise is one file,
6
+ openable from disk, fetching nothing. Internal SVG ids are namespaced per icon so
7
+ inlining many icons on one page cannot make their gradients collide. Only the
8
+ icons of the types actually present in a map are written into a given HTML file.
9
+
10
+ Keys are lowercased ARM types, matching Node.type.
11
+ """
12
+
13
+ # fmt: off
14
+ AZURE_SVG = {
15
+ "microsoft.apimanagement/service":
16
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az0-f78ef37b-fde4-461c-94e2-dccff32dd5d7" width="17" height="15.656073" viewBox="0 0 17 15.656073" version="1.1"><defs id="az0-defs54023"><linearGradient id="az0-bf8a9583-aae9-48ff-87d8-fb8f44e7d6bd" x1="9" y1="16.82" x2="9" y2="1.1799999" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#198ab3" id="az0-stop54005" /><stop offset="0.09" stop-color="#1f9dc4" id="az0-stop54007" /><stop offset="0.24" stop-color="#28b5d9" id="az0-stop54009" /><stop offset="0.4" stop-color="#2dc6e9" id="az0-stop54011" /><stop offset="0.57" stop-color="#31d1f2" id="az0-stop54013" /><stop offset="0.78" stop-color="#32d4f5" id="az0-stop54015" /></linearGradient><linearGradient id="az0-f9b1bb8c-728e-4abf-bce5-6c11ac170c5b" x1="8.3599997" y1="11.35" x2="8.3599997" y2="14.46" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#c69aeb" id="az0-stop54018" /><stop offset="1" stop-color="#6f4bb2" id="az0-stop54020" /></linearGradient></defs><title id="az0-title54025">Icon-web-42</title><path d="M 13.68,4.7110725 A 4.85,4.85 0 0 0 8.73,0.00107249 5,5 0 0 0 3.98,3.2910725 a 4.61,4.61 0 0 0 -3.98,4.53 4.67,4.67 0 0 0 4.79,4.4999995 3,3 0 0 0 0.42,0 h 1.2 a 1.47,1.47 0 0 1 -0.11,-0.56 v 0 a 1.51,1.51 0 0 1 0.2,-0.73 H 5.1 4.79 a 3.41,3.41 0 0 1 -3.52,-3.2099995 3.33,3.33 0 0 1 2.91,-3.27 l 0.76,-0.12 0.25,-0.73 a 3.73,3.73 0 0 1 3.54,-2.43 3.6,3.6 0 0 1 3.68,3.45 v 1.1 l 1.09,0.15 a 2.59,2.59 0 0 1 2.26,2.49 2.63,2.63 0 0 1 -2.62,2.5399995 h -0.15 -0.08 -1 a 3.92,3.92 0 0 0 -3.87,-3.1799995 0.64,0.64 0 1 0 0,1.27 2.65,2.65 0 0 1 0,5.2899995 0.64,0.64 0 1 0 0,1.27 3.92,3.92 0 0 0 3.87,-3.34 h 1.05 a 0.64,0.64 0 0 0 0.2,0 3.91,3.91 0 0 0 3.84,-3.8499995 3.86,3.86 0 0 0 -3.32,-3.75 z" id="az0-path54027" style="fill:url(#az0-bf8a9583-aae9-48ff-87d8-fb8f44e7d6bd)" /><rect x="6.3000002" y="10.171073" width="3.1199999" height="3.1199999" rx="1.54" id="az0-rect54029" style="fill:url(#az0-f9b1bb8c-728e-4abf-bce5-6c11ac170c5b)" /></svg>',
17
+ "microsoft.cache/redis":
18
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az1-a4c0a6df-707e-4ae7-9b86-742e4f9651e0" width="17" height="13.86" viewBox="0 0 17 13.86" version="1.1"><defs id="az1-defs13093"><linearGradient id="az1-ac420e47-f190-46df-ab14-7e1f8fa3a93d" x1="9.5" y1="7.3699999" x2="17.5" y2="7.3699999" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#005ba1" id="az1-stop13060" /><stop offset="0.07" stop-color="#0060a9" id="az1-stop13062" /><stop offset="0.36" stop-color="#0071c8" id="az1-stop13064" /><stop offset="0.52" stop-color="#0078d4" id="az1-stop13066" /><stop offset="1" stop-color="#005ba1" id="az1-stop13068" /></linearGradient><linearGradient id="az1-a51ffd84-af0a-457a-abee-1f70656da56f" x1="0.5" y1="7.3699999" x2="8.5" y2="7.3699999" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#005ba1" id="az1-stop13071" /><stop offset="0.07" stop-color="#0060a9" id="az1-stop13073" /><stop offset="0.36" stop-color="#0071c8" id="az1-stop13075" /><stop offset="0.52" stop-color="#0078d4" id="az1-stop13077" /><stop offset="1" stop-color="#005ba1" id="az1-stop13079" /></linearGradient><linearGradient id="az1-bbb4b87e-b1f0-4042-b6d6-9b91b5dac799" x1="5" y1="11.9" x2="13" y2="11.9" gradientUnits="userSpaceOnUse" gradientTransform="translate(0.5,2.07)"><stop offset="0" stop-color="#005ba1" id="az1-stop13082" /><stop offset="0.07" stop-color="#0060a9" id="az1-stop13084" /><stop offset="0.36" stop-color="#0071c8" id="az1-stop13086" /><stop offset="0.52" stop-color="#0078d4" id="az1-stop13088" /><stop offset="1" stop-color="#005ba1" id="az1-stop13090" /></linearGradient></defs><title id="az1-title13095">Icon-databases-137</title><path d="M 13,2.55 C 10.79,2.55 9,1.98 9,1.27 v 6.79 c 0,0.69 1.76,1.26 3.95,1.27 H 13 c 2.21,0 4,-0.57 4,-1.27 V 1.27 c 0,0.71 -1.79,1.28 -4,1.28 z" id="az1-path13097" style="fill:url(#az1-ac420e47-f190-46df-ab14-7e1f8fa3a93d)" /><path d="M 17,1.27 C 17,1.98 15.21,2.55 13,2.55 10.79,2.55 9,1.98 9,1.27 9,0.56 10.79,0 13,0 c 2.21,0 4,0.57 4,1.27" id="az1-path13099" style="fill:#e8e8e8" /><path d="m 16.07,1.17 c 0,0.45 -1.38,0.81 -3.07,0.81 -1.69,0 -3.07,-0.36 -3.07,-0.81 0,-0.45 1.38,-0.81 3.07,-0.81 1.69,0 3.07,0.36 3.07,0.81" id="az1-path13101" style="fill:#50e6ff" /><path d="M 13,1.36 A 8.65,8.65 0 0 0 10.57,1.66 7.8,7.8 0 0 0 13,1.98 7.8,7.8 0 0 0 15.43,1.66 8.65,8.65 0 0 0 13,1.36 Z" id="az1-path13103" style="fill:#32bedd" /><path d="M 4,2.55 C 1.79,2.55 0,1.98 0,1.27 v 6.79 c 0,0.69 1.76,1.26 4,1.27 v 0 c 2.21,0 4,-0.57 4,-1.27 V 1.27 C 8,1.98 6.21,2.55 4,2.55 Z" id="az1-path13105" style="fill:url(#az1-a51ffd84-af0a-457a-abee-1f70656da56f)" /><path d="M 8,1.27 C 8,1.98 6.21,2.55 4,2.55 1.79,2.55 0,1.98 0,1.27 0,0.56 1.79,0 4,0 6.21,0 8,0.57 8,1.27" id="az1-path13107" style="fill:#e8e8e8" /><path d="M 7.07,1.17 C 7.07,1.62 5.69,1.98 4,1.98 2.31,1.98 0.93,1.62 0.93,1.17 0.93,0.72 2.31,0.36 4,0.36 c 1.69,0 3.07,0.36 3.07,0.81" id="az1-path13109" style="fill:#50e6ff" /><path d="M 4,1.36 A 8.65,8.65 0 0 0 1.57,1.66 7.8,7.8 0 0 0 4,1.98 7.8,7.8 0 0 0 6.43,1.66 8.65,8.65 0 0 0 4,1.36 Z" id="az1-path13111" style="fill:#32bedd" /><g id="az1-g13121" transform="translate(-0.5,-2.07)"><path d="M 9,9.15 C 6.79,9.15 5,8.58 5,7.87 v 6.79 c 0,0.7 1.76,1.26 3.95,1.27 H 9 c 2.21,0 4,-0.57 4,-1.27 V 7.87 c 0,0.71 -1.79,1.28 -4,1.28 z" id="az1-path13113" style="fill:url(#az1-bbb4b87e-b1f0-4042-b6d6-9b91b5dac799)" /><path d="M 13,7.87 C 13,8.58 11.21,9.15 9,9.15 6.79,9.15 5,8.58 5,7.87 5,7.16 6.79,6.6 9,6.6 c 2.21,0 4,0.57 4,1.27" id="az1-path13115" style="fill:#e8e8e8" /><path d="M 12.07,7.77 C 12.07,8.22 10.69,8.58 9,8.58 7.31,8.58 5.93,8.22 5.93,7.77 5.93,7.32 7.31,7 9,7 c 1.69,0 3.07,0.36 3.07,0.81" id="az1-path13117" style="fill:#50e6ff" /><path d="M 9,8 A 8.65,8.65 0 0 0 6.57,8.3 7.8,7.8 0 0 0 9,8.58 7.8,7.8 0 0 0 11.43,8.26 8.65,8.65 0 0 0 9,8 Z" id="az1-path13119" style="fill:#32bedd" /></g></svg>',
19
+ "microsoft.cognitiveservices/accounts":
20
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az2-f78f5115-be88-4d44-b34e-3f6ea743125c" width="18" height="12.770141" viewBox="0 0 18 12.770141" version="1.1"><defs id="az2-defs5095"><linearGradient id="az2-b6c43bd9-e37f-4191-93c2-d3a7a84c505e" x1="9" y1="19.129999" x2="9" y2="-0.28999999" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0078d4" id="az2-stop5084" /><stop offset="0.16" stop-color="#1380da" id="az2-stop5086" /><stop offset="0.53" stop-color="#3c91e5" id="az2-stop5088" /><stop offset="0.82" stop-color="#559cec" id="az2-stop5090" /><stop offset="1" stop-color="#5ea0ef" id="az2-stop5092" /></linearGradient></defs><title id="az2-title5097">Icon-machinelearning-162</title><path d="m 18,8.7623452 a 4,4 0 0 0 -3.51,-3.88 5.1,5.1 0 0 0 -5.25,-4.88 5.25,5.25 0 0 0 -5.02,3.38 4.8,4.8 0 0 0 -4.22,4.67 4.9,4.9 0 0 0 5.07,4.7099998 h 0.44 8.21 a 0.78,0.78 0 0 0 0.22,0 A 4.1,4.1 0 0 0 18,8.7623452 Z" id="az2-path5099" style="fill:url(#az2-b6c43bd9-e37f-4191-93c2-d3a7a84c505e)" /><path d="M 5.42,7.7723452 H 4.54 a 1.09,1.09 0 1 0 0,0.49 h 0.88 a 0.2,0.2 0 0 1 0.2,0.2 V 12.762345 H 6.11 V 8.4623452 a 0.69,0.69 0 0 0 -0.69,-0.69 z m -1.95,0.88 a 0.64,0.64 0 1 1 0.64,-0.64 0.64,0.64 0 0 1 -0.64,0.64 z" id="az2-path5101" style="fill:#9cebff" /><path d="m 8.94,7.9923452 v -1 a 0.7,0.7 0 0 0 -0.7,-0.7 H 6.69 a 0.2,0.2 0 0 1 -0.2,-0.2 v -5.31 l -0.23,0.12 -0.26,0.14 v 5 a 0.69,0.69 0 0 0 0.69,0.69 h 1.55 a 0.21,0.21 0 0 1 0.21,0.21 v 1 a 1.08,1.08 0 0 0 -0.85,1.06 1.09,1.09 0 1 0 1.34,-1.06 z m -0.25,1.7 v 0 a 0.64,0.64 0 1 1 0.64,-0.64 0.64,0.64 0 0 1 -0.64,0.64 z" id="az2-path5103" style="fill:#f2f2f2" /><path d="m 14.53,5.8823452 a 1.09,1.09 0 0 0 -0.25,2.15 v 0.2 a 0.21,0.21 0 0 1 -0.21,0.21 h -2 v -3.52 a 0.69,0.69 0 0 0 -0.69,-0.69 h -1.03 a 1.08,1.08 0 0 0 -1.06,-0.85 1.09,1.09 0 1 0 1.06,1.34 h 1.07 a 0.2,0.2 0 0 1 0.2,0.2 v 7.8399998 h 0.49 V 8.9323452 h 2 a 0.7,0.7 0 0 0 0.7,-0.7 v -0.2 a 1.09,1.09 0 0 0 0.85,-1.06 v 0 a 1.09,1.09 0 0 0 -1.13,-1.09 z m -5.24,-0.77 v 0 a 0.64,0.64 0 1 1 0.64,-0.64 0.64,0.64 0 0 1 -0.64,0.64 z m 5.24,2.5 v 0 a 0.64,0.64 0 1 1 0.63,-0.64 0.64,0.64 0 0 1 -0.63,0.64 z" id="az2-path5105" style="fill:#9cebff" /></svg>',
21
+ "microsoft.containerregistry/registries":
22
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az3-e9f7ba73-56b8-4864-96ff-dce80bef729a" width="17.99" height="16.123848" viewBox="0 0 17.99 16.123848" version="1.1"><defs id="az3-defs10724"><linearGradient id="az3-bdf27dc6-025c-4805-8bfd-3a05defd3fbd" x1="8.6370001" y1="-1.9910001" x2="8.6370001" y2="16.739" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#5ea0ef" id="az3-stop10714" /><stop offset="1" stop-color="#0078d4" id="az3-stop10716" /></linearGradient><linearGradient id="az3-fcd6c6c7-e2eb-4a32-b914-3a8485585a1b" x1="12.96" y1="8.5609999" x2="12.96" y2="6.1409998" gradientTransform="matrix(1,0,0,-1,0,21.616153)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#333132" id="az3-stop10719" /><stop offset="1" stop-color="#5b5a5c" id="az3-stop10721" /></linearGradient></defs><path d="m 7.43,6.5618471 2.589,-1.573 7.255,2.731 a 3.664,3.664 0 0 0 -1.044,-1.846 l -0.01,-0.05 A 4.194,4.194 0 0 0 14,4.7038471 4.91,4.91 0 0 0 8.9,0.00384713 5.071,5.071 0 0 0 4.06,3.2938471 4.621,4.621 0 0 0 0,7.7738471 4.73,4.73 0 0 0 4.89,12.313847 h 2.54 z" id="az3-path10726" style="fill:url(#az3-bdf27dc6-025c-4805-8bfd-3a05defd3fbd)" /><polygon points="17.99,13.119 17.99,10.139 10.07,7.159 10.08,11.439 " id="az3-polygon10728" style="fill:#767676" transform="translate(0,-1.6161529)" /><polyline points="10.07 7.159 7.93 8.459 7.93 12.439 10.08 11.439" id="az3-polyline10730" style="fill:#999999" transform="translate(0,-1.6161529)" /><polygon points="14.4,9.369 13.68,9.119 13.68,11.499 14.4,11.699 " id="az3-polygon10732" style="fill:#a3a3a3" transform="translate(0,-1.6161529)" /><polygon points="12.24,11.119 12.96,11.319 12.96,8.889 12.24,8.629 " id="az3-polygon10734" style="fill:#a3a3a3" transform="translate(0,-1.6161529)" /><polygon points="15.84,9.859 15.12,9.619 15.12,11.889 15.82,12.079 " id="az3-polygon10736" style="fill:#a3a3a3" transform="translate(0,-1.6161529)" /><polygon points="11.53,8.399 10.81,8.159 10.81,10.749 11.53,10.929 " id="az3-polygon10738" style="fill:#a3a3a3" transform="translate(0,-1.6161529)" /><polygon points="16.55,12.269 17.27,12.469 17.27,10.349 16.55,10.099 " id="az3-polygon10740" style="fill:#a3a3a3" transform="translate(0,-1.6161529)" /><path id="az3-ef0d1b54-a1e7-4cb9-a4e5-8a8518e7c127" d="m 8.66,9.7528471 -0.36,0.21 v -2.83 l 0.36,-0.19 z m 0.71,-3.22 -0.37,0.24 v 2.75 l 0.37,-0.2 z" style="fill:#b3b3b3" /><polygon points="7.93,12.439 10.08,11.439 17.99,13.119 15.83,13.859 " id="az3-polygon10743" style="fill:url(#az3-fcd6c6c7-e2eb-4a32-b914-3a8485585a1b)" transform="translate(0,-1.6161529)" /><polygon points="10.08,12.089 17.99,13.559 17.99,16.169 10.04,17.679 " id="az3-polygon10745" style="fill:#767676" transform="translate(0,-1.6161529)" /><polygon points="11.53,13.299 11.53,16.639 10.81,16.759 10.81,13.209 " id="az3-polygon10747" style="fill:#a3a3a3" transform="translate(0,-1.6161529)" /><polygon points="12.24,13.389 12.96,13.499 12.96,16.399 12.24,16.529 " id="az3-polygon10749" style="fill:#a3a3a3" transform="translate(0,-1.6161529)" /><polygon points="14.4,13.659 14.4,16.159 13.68,16.289 13.68,13.569 " id="az3-polygon10751" style="fill:#a3a3a3" transform="translate(0,-1.6161529)" /><polygon points="15.12,13.749 15.83,13.859 15.83,15.909 15.12,16.039 " id="az3-polygon10753" style="fill:#a3a3a3" transform="translate(0,-1.6161529)" /><polygon points="16.55,13.929 17.24,14.019 17.29,15.679 16.55,15.809 " id="az3-polygon10755" style="fill:#a3a3a3" transform="translate(0,-1.6161529)" /><path id="az3-b9f25eb4-4c88-45c2-bc4d-f992757d7e0e" d="m 7.93,14.783847 v -3.26 l 2.16,-1 v 5.6 z" style="fill:#999999" /><path id="az3-eb9200a7-4693-4427-bdae-b33ce90ff7f2" d="m 8.61,14.772847 -0.32,-0.16 v -2.76 l 0.32,-0.15 z m 0.77,-3.45 -0.38,0.19 v 3.48 l 0.37,0.19 v -3.86 z" style="fill:#b3b3b3" /></svg>',
23
+ "microsoft.containerservice/managedclusters":
24
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az4-af6a2c42-bd48-4857-a479-aecf8b3de4f6" width="18.08" height="15.9" viewBox="0 0 18.08 15.9" version="1.1"><defs id="az4-defs7900"><linearGradient id="az4-b70c9cf1-bab8-47e0-bbdb-ce1cd664d268" x1="2.9400001" y1="3.74" x2="8.6700001" y2="3.74" gradientUnits="userSpaceOnUse" gradientTransform="translate(0,1.22)"><stop offset="0" stop-color="#b77af4" id="az4-stop7865" /><stop offset="1" stop-color="#773adc" id="az4-stop7867" /></linearGradient><linearGradient id="az4-beb69953-bd96-4515-8843-ac12546af936" x1="9.1300001" y1="3.79" x2="14.85" y2="3.79" gradientUnits="userSpaceOnUse" gradientTransform="translate(0,1.22)"><stop offset="0" stop-color="#b77af4" id="az4-stop7870" /><stop offset="1" stop-color="#773adc" id="az4-stop7872" /></linearGradient><linearGradient id="az4-a39c76e8-547e-4eb4-bc25-d81c0f8cda62" x1="0.0099999998" y1="9.1199999" x2="5.73" y2="9.1199999" gradientUnits="userSpaceOnUse" gradientTransform="translate(0,1.22)"><stop offset="0" stop-color="#b77af4" id="az4-stop7875" /><stop offset="1" stop-color="#773adc" id="az4-stop7877" /></linearGradient><linearGradient id="az4-f0a2a491-17dc-4bb8-bbfc-ee58a5cf47da" x1="6.1799998" y1="9.0799999" x2="11.9" y2="9.0799999" gradientUnits="userSpaceOnUse" gradientTransform="translate(0,1.22)"><stop offset="0" stop-color="#b77af4" id="az4-stop7880" /><stop offset="1" stop-color="#773adc" id="az4-stop7882" /></linearGradient><linearGradient id="az4-efc6a56d-8585-417d-931a-1dac2114ccd0" x1="12.35" y1="9.1300001" x2="18.08" y2="9.1300001" gradientUnits="userSpaceOnUse" gradientTransform="translate(0,1.22)"><stop offset="0" stop-color="#b77af4" id="az4-stop7885" /><stop offset="1" stop-color="#773adc" id="az4-stop7887" /></linearGradient><linearGradient id="az4-e399aa93-341f-4df2-9c02-603b82b484c2" x1="2.8699999" y1="14.56" x2="8.6000004" y2="14.56" gradientUnits="userSpaceOnUse" gradientTransform="translate(0,1.22)"><stop offset="0" stop-color="#b77af4" id="az4-stop7890" /><stop offset="1" stop-color="#773adc" id="az4-stop7892" /></linearGradient><linearGradient id="az4-a152bba0-ba2b-483a-b8c1-0ae7de355990" x1="9.0500002" y1="14.6" x2="14.78" y2="14.6" gradientUnits="userSpaceOnUse" gradientTransform="translate(0,1.22)"><stop offset="0" stop-color="#b77af4" id="az4-stop7895" /><stop offset="1" stop-color="#773adc" id="az4-stop7897" /></linearGradient></defs><title id="az4-title7902">Icon-compute-23</title><polygon points="2.94,5.65 5.8,6.26 8.67,5.11 8.67,2.2 5.8,1.22 2.94,1.75 " id="az4-polygon7904" style="fill:url(#az4-b70c9cf1-bab8-47e0-bbdb-ce1cd664d268)" transform="translate(0,-1.22)" /><path d="M 5.91,4.98 8.53,3.92 A 0.2,0.2 0 0 0 8.65,3.78 V 1.14 A 0.21,0.21 0 0 0 8.52,0.96 L 5.87,0.06 H 5.75 L 3.15,0.54 A 0.2,0.2 0 0 0 3,0.72 V 4.25 A 0.19,0.19 0 0 0 3.15,4.44 L 5.78,4.99 A 0.32,0.32 0 0 0 5.91,4.98 Z" id="az4-path7906" style="fill:none" /><path d="m 2.94,0.53 v 3.9 l 2.89,0.61 v -5 z M 4.16,4.13 3.35,3.97 v -3 L 4.16,0.84 Z M 5.42,4.36 4.49,4.21 V 0.78 L 5.42,0.62 Z" id="az4-path7908" style="fill:#341a6e" /><polygon points="9.13,5.7 11.99,6.31 14.85,5.15 14.85,2.25 11.99,1.27 9.13,1.8 " id="az4-polygon7910" style="fill:url(#az4-beb69953-bd96-4515-8843-ac12546af936)" transform="translate(0,-1.22)" /><path d="m 9.13,0.58 v 3.9 L 12,5.09 v -5 z m 1.21,3.6 -0.81,-0.16 v -3 L 10.34,0.89 Z M 11.6,4.41 10.67,4.26 V 0.83 L 11.6,0.66 Z" id="az4-path7912" style="fill:#341a6e" /><polygon points="0.01,11.03 2.87,11.64 5.74,10.49 5.74,7.58 2.87,6.6 0.01,7.13 " id="az4-polygon7914" style="fill:url(#az4-a39c76e8-547e-4eb4-bc25-d81c0f8cda62)" transform="translate(0,-1.22)" /><path d="m 0,5.91 v 3.87 l 2.89,0.61 v -5 z M 1.21,9.52 0.4,9.35 v -3 L 1.21,6.21 Z M 2.48,9.78 1.55,9.63 V 6.16 L 2.48,6 Z" id="az4-path7916" style="fill:#341a6e" /><polygon points="6.18,10.99 9.04,11.61 11.9,10.45 11.9,7.54 9.04,6.56 6.18,7.09 " id="az4-polygon7918" style="fill:url(#az4-f0a2a491-17dc-4bb8-bbfc-ee58a5cf47da)" transform="translate(0,-1.22)" /><path d="m 6.18,5.87 v 3.91 l 2.88,0.61 v -5 z M 7.39,9.48 6.58,9.31 v -3 L 7.39,6.17 Z M 8.65,9.7 7.72,9.55 V 6.12 L 8.65,5.96 Z" id="az4-path7920" style="fill:#341a6e" /><polygon points="12.35,11.04 15.21,11.65 18.08,10.5 18.08,7.59 15.21,6.61 12.35,7.14 " id="az4-polygon7922" style="fill:url(#az4-efc6a56d-8585-417d-931a-1dac2114ccd0)" transform="translate(0,-1.22)" /><path d="m 12.35,5.92 v 3.86 l 2.89,0.61 v -5 z m 1.22,3.61 -0.81,-0.17 v -3 L 13.57,6.22 Z M 14.83,9.75 13.9,9.6 V 6.17 l 0.93,-0.16 z" id="az4-path7924" style="fill:#341a6e" /><polygon points="2.87,16.46 5.73,17.08 8.6,15.92 8.6,13.02 5.73,12.04 2.87,12.56 " id="az4-polygon7926" style="fill:url(#az4-e399aa93-341f-4df2-9c02-603b82b484c2)" transform="translate(0,-1.22)" /><path d="m 5.84,15.78 2.61,-1 A 0.18,0.18 0 0 0 8.57,14.6 V 12 A 0.2,0.2 0 0 0 8.44,11.78 L 5.8,10.88 a 0.17,0.17 0 0 0 -0.12,0 l -2.6,0.47 a 0.19,0.19 0 0 0 -0.16,0.19 v 3.54 a 0.19,0.19 0 0 0 0.15,0.19 l 2.63,0.51 a 0.23,0.23 0 0 0 0.14,0 z" id="az4-path7928" style="fill:none" /><path d="m 2.87,11.34 v 3.9 l 2.89,0.62 v -5.08 z m 1.22,3.61 -0.81,-0.17 v -3 l 0.81,-0.14 z m 1.26,0.23 -0.93,-0.15 v -3.44 l 0.93,-0.16 z" id="az4-path7930" style="fill:#341a6e" /><polygon points="9.05,16.51 11.91,17.12 14.78,15.97 14.78,13.06 11.91,12.08 9.05,12.61 " id="az4-polygon7932" style="fill:url(#az4-a152bba0-ba2b-483a-b8c1-0ae7de355990)" transform="translate(0,-1.22)" /><path d="m 9.05,11.39 v 3.9 l 2.89,0.61 v -5 z M 10.27,15 9.46,14.83 v -3 l 0.81,-0.14 z m 1.26,0.22 -0.93,-0.15 v -3.43 l 0.93,-0.16 z" id="az4-path7934" style="fill:#341a6e" /></svg>',
25
+ "microsoft.dbformysql/flexibleservers":
26
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az5-e05c9575-4c38-4bcd-90eb-276caf26e3d0" width="12.82" height="17" viewBox="0 0 12.82 17" version="1.1"><defs id="az5-defs11941"><linearGradient id="az5-e291aba6-8038-4db1-a04d-c7be74f5a3e6" x1="2.5899999" y1="10.16" x2="15.41" y2="10.16" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#005ba1" id="az5-stop11926" /><stop offset="0.07" stop-color="#0060a9" id="az5-stop11928" /><stop offset="0.36" stop-color="#0071c8" id="az5-stop11930" /><stop offset="0.52" stop-color="#0078d4" id="az5-stop11932" /><stop offset="0.64" stop-color="#0074cd" id="az5-stop11934" /><stop offset="0.82" stop-color="#006abb" id="az5-stop11936" /><stop offset="1" stop-color="#005ba1" id="az5-stop11938" /></linearGradient></defs><title id="az5-title11943">Icon-databases-122</title><path d="M 6.41,4.64 C 2.87,4.64 0,3.64 0,2.32 v 12.36 c 0,1.27 2.82,2.3 6.32,2.32 h 0.09 c 3.54,0 6.41,-1 6.41,-2.32 V 2.32 c 0,1.29 -2.87,2.32 -6.41,2.32 z" id="az5-path11945" style="fill:url(#az5-e291aba6-8038-4db1-a04d-c7be74f5a3e6)" /><path d="M 12.82,2.32 C 12.82,3.61 9.95,4.64 6.41,4.64 2.87,4.64 0,3.64 0,2.32 0,1 2.87,0 6.41,0 c 3.54,0 6.41,1 6.41,2.32" id="az5-path11947" style="fill:#e8e8e8" /><path d="m 11.33,2.13 c 0,0.82 -2.21,1.48 -4.92,1.48 -2.71,0 -4.92,-0.66 -4.92,-1.48 0,-0.82 2.21,-1.47 4.92,-1.47 2.71,0 4.92,0.66 4.92,1.47" id="az5-path11949" style="fill:#50e6ff" /><path d="M 6.41,2.5 A 11.55,11.55 0 0 0 2.52,3.07 11.42,11.42 0 0 0 6.41,3.61 11.15,11.15 0 0 0 10.3,3.03 11.84,11.84 0 0 0 6.41,2.5 Z" id="az5-path11951" style="fill:#198ab3" /><path d="m 10.05,8.5 v 1.63 h -1 A 0.39,0.39 0 0 1 8.76,9.99 V 8.5 H 7.41 v 1.78 a 0.92,0.92 0 0 0 1,0.89 H 9.9 l 0.26,-0.13 c 0,0 -0.11,0.41 -0.26,0.43 H 7.52 v 1 h 2.66 A 1.21,1.21 0 0 0 11.41,11.2 V 8.5 Z" id="az5-path11953" style="fill:#f2f2f2" /><path d="m 6.94,8.5 c 0,0 0,0 0,0 V 8.01 A 0.7,0.7 0 0 0 6.46,7.24 1.74,1.74 0 0 0 5.96,7.16 0.94,0.94 0 0 0 5.05,7.74 l -0.78,1.9 -1,-1.9 A 0.93,0.93 0 0 0 2.41,7.16 1.44,1.44 0 0 0 1.9,7.25 C 1.55,7.36 1.47,7.59 1.47,7.98 v 3.31 H 2.64 V 9.06 l 0.63,1.57 a 1.08,1.08 0 0 0 1,0.66 c 0.44,0 0.62,-0.26 0.8,-0.66 L 5.74,9.12 v 2.15 h 1.18 v -2.77 0 z" id="az5-path11955" style="fill:#f2f2f2" /></svg>',
27
+ "microsoft.dbforpostgresql/flexibleservers":
28
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az6-fc890127-728b-4ac0-b5da-86cdfc191e86" width="12.82" height="17" viewBox="0 0 12.82 17" version="1.1"><defs id="az6-defs12110"><linearGradient id="az6-a28dee20-4c71-46b5-b957-804c67da725a" x1="2.4400001" y1="10.67" x2="15.27" y2="10.67" gradientTransform="rotate(-0.01,-2864.719,-802.36945)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#005ba1" id="az6-stop12095" /><stop offset="0.07" stop-color="#0060a9" id="az6-stop12097" /><stop offset="0.36" stop-color="#0071c8" id="az6-stop12099" /><stop offset="0.52" stop-color="#0078d4" id="az6-stop12101" /><stop offset="0.64" stop-color="#0074cd" id="az6-stop12103" /><stop offset="0.82" stop-color="#006abb" id="az6-stop12105" /><stop offset="1" stop-color="#005ba1" id="az6-stop12107" /></linearGradient></defs><title id="az6-title12112">Icon-databases-131</title><path d="M 6.41,4.64 C 2.87,4.64 0,3.64 0,2.32 v 12.36 c 0,1.27 2.82,2.3 6.32,2.32 h 0.09 c 3.54,0 6.41,-1 6.41,-2.32 V 2.32 c 0,1.28 -2.87,2.32 -6.41,2.32 z" id="az6-path12114" style="fill:url(#az6-a28dee20-4c71-46b5-b957-804c67da725a)" /><path d="M 12.82,2.32 C 12.82,3.6 9.95,4.64 6.41,4.64 2.87,4.64 0,3.64 0,2.32 0,1 2.87,0 6.41,0 c 3.54,0 6.41,1 6.41,2.32" id="az6-path12116" style="fill:#e8e8e8" /><path d="m 11.32,2.13 c 0,0.82 -2.2,1.48 -4.91,1.48 -2.71,0 -4.92,-0.66 -4.92,-1.47 0,-0.81 2.2,-1.48 4.92,-1.48 2.72,0 4.91,0.66 4.91,1.47" id="az6-path12118" style="fill:#50e6ff" /><path d="M 6.41,2.5 A 11.65,11.65 0 0 0 2.51,3.07 11.53,11.53 0 0 0 6.41,3.61 11.47,11.47 0 0 0 10.3,3.03 11.93,11.93 0 0 0 6.41,2.5 Z" id="az6-path12120" style="fill:#198ab3" /><path d="m 9.41,8.5 c 0,0.08 0,0.24 0,0.42 A 5.12,5.12 0 0 0 9.33,9.55 c 0,0.12 0,0.3 0.05,0.46 0.05,0.16 0,0.27 0,0.36 a 1.68,1.68 0 0 1 -0.25,0.86 0.43,0.43 0 0 0 0,0.07 l 0.1,0.12 a 10.55,10.55 0 0 0 1.06,-2.38 v 0 C 10.57,8.09 10.6,7.41 10.38,7.12 A 2.58,2.58 0 0 0 7.7,6.26 3.29,3.29 0 0 1 8.61,6.93 2.28,2.28 0 0 1 9.41,8.5 Z M 9.1,8.58 A 1.15,1.15 0 0 0 8.31,8.67 c -0.29,0.18 -0.2,0.55 0,1 a 7.77,7.77 0 0 0 0.35,0.85 l 0.09,0.16 v 0 c 0.05,0.08 0.08,0.15 0.11,0.2 l 0.08,0.13 a 1.28,1.28 0 0 0 0.18,-0.65 2.86,2.86 0 0 0 0,-0.33 c 0,-0.17 0,-0.36 -0.05,-0.49 A 6.1,6.1 0 0 1 9.15,8.85 C 9.12,8.74 9.13,8.63 9.14,8.55 Z M 8.8,8.99 a 0.4,0.4 0 0 1 -0.18,0.1 v 0 A 0.33,0.33 0 0 1 8.48,9.09 0.23,0.23 0 0 1 8.41,8.9 v 0 c 0,-0.07 0.11,-0.13 0.24,-0.15 h 0.19 c 0,0 0.09,0 0.09,0.08 A 0.2,0.2 0 0 1 8.84,8.96 Z M 4.11,9.88 c 0,-0.07 0,-0.13 0,-0.17 a 1,1 0 0 0 0,-0.17 5.55,5.55 0 0 1 0,-1 5.22,5.22 0 0 1 0.3,-1.1 A 2.41,2.41 0 0 1 4.99,6.5 4.78,4.78 0 0 0 3.64,6.3 1.87,1.87 0 0 0 2.54,6.6 2,2 0 0 0 1.91,8.42 a 12.27,12.27 0 0 0 0.5,2.24 c 0.34,1.14 0.73,1.84 1.07,1.95 v 0 c 0.15,0.05 0.31,0 0.47,-0.21 0.28,-0.34 0.54,-0.63 0.69,-0.8 A 1.88,1.88 0 0 1 4.15,9.85 Z m 0.26,0.4 a 2.18,2.18 0 0 0 0.06,0.56 1.5,1.5 0 0 0 0.26,0.44 1.07,1.07 0 0 0 0.35,0.25 1.09,1.09 0 0 0 0.39,0.08 c 0,-0.17 0.14,-0.38 0.23,-0.6 a 4.35,4.35 0 0 0 0.21,-0.59 6.61,6.61 0 0 0 0,-1.11 c 0,-0.09 0,-0.19 -0.06,-0.3 A 0.45,0.45 0 0 0 5.69,8.74 v 0 A 0.66,0.66 0 0 0 5.41,8.58 H 5.21 A 1.56,1.56 0 0 0 4.73,8.72 2,2 0 0 0 4.41,8.91 v 0.11 c 0,0.2 0,0.41 0,0.61 v 0 a 0.86,0.86 0 0 1 0,0.15 v 0.39 0 z M 5.03,8.94 v 0 a 0.46,0.46 0 0 1 0.28,0 A 0.6,0.6 0 0 1 5.5,9 c 0.09,0 0.1,0.11 0.09,0.14 v 0 A 0.37,0.37 0 0 1 5.47,9.27 0.3,0.3 0 0 1 5.41,9.23 v 0 A 0.34,0.34 0 0 1 5.13,8.95 Z m 0.74,3 A 0.23,0.23 0 0 0 5.64,12 L 5.5,12.17 c -0.17,0.21 -0.24,0.28 -0.73,0.38 a 0.52,0.52 0 0 0 -0.26,0.1 0.58,0.58 0 0 0 0.24,0.11 1.18,1.18 0 0 0 0.72,0 1.7,1.7 0 0 0 0.39,-0.26 0.61,0.61 0 0 0 0.2,-0.31 0.36,0.36 0 0 0 -0.1,-0.28 0.15,0.15 0 0 0 -0.15,-0.02 z m 4.61,0 a 1.63,1.63 0 0 1 -1.13,0 0.22,0.22 0 0 0 -0.14,0 0.3,0.3 0 0 0 -0.17,0.14 1.09,1.09 0 0 0 0,0.31 1.8,1.8 0 0 0 1.1,-0.1 1.36,1.36 0 0 0 0.48,-0.34 z M 7.98,9.8 C 7.84,9.39 7.64,8.8 8.16,8.44 A 1.35,1.35 0 0 1 9.05,8.29 3.18,3.18 0 0 0 8.41,7.14 L 8.31,7.04 8.25,6.98 v 0 A 0.34,0.34 0 0 0 8.19,6.92 v 0 0 A 2.34,2.34 0 0 0 7.52,6.5 2.63,2.63 0 0 0 6.41,6.28 1.52,1.52 0 0 0 5.71,6.39 1.77,1.77 0 0 0 5.41,6.5 a 2.1,2.1 0 0 0 -0.74,1 5.84,5.84 0 0 0 -0.21,1 1.66,1.66 0 0 1 1,-0.23 0.84,0.84 0 0 1 0.77,0.91 7.26,7.26 0 0 1 0,1.27 A 3.87,3.87 0 0 1 6,11.08 c -0.06,0.17 -0.14,0.35 -0.18,0.49 a 0.5,0.5 0 0 1 0.38,0.14 0.66,0.66 0 0 1 0.19,0.53 h 0.02 c 0,0.08 0,0.16 0,0.24 a 6.55,6.55 0 0 0 0.24,2.44 0.54,0.54 0 0 0 0.24,0.21 0.6,0.6 0 0 0 0.31,0.1 1.3,1.3 0 0 0 1,-0.34 1.05,1.05 0 0 0 0.29,-0.66 c 0.07,-0.45 0.22,-1.7 0.24,-2 v 0 A 0.72,0.72 0 0 1 8.82,11.79 0.63,0.63 0 0 1 9.09,11.55 5.36,5.36 0 0 1 8.02,9.74 Z" id="az6-path12122" style="fill:#f2f2f2" /></svg>',
29
+ "microsoft.documentdb/databaseaccounts":
30
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az7-b089cfca-0de1-451c-a1ca-6680ea50cb4f" width="16.999975" height="16.912003" viewBox="0 0 16.999975 16.912003" version="1.1"><defs id="az7-defs11436"><radialGradient id="az7-b25d0836-964a-4c84-8c20-855f66e8345e" cx="-105.006" cy="-10.409" r="5.954" gradientTransform="matrix(1.036,0,0,1.027,118.23902,20.187997)" gradientUnits="userSpaceOnUse"><stop offset="0.183" stop-color="#5ea0ef" id="az7-stop11428" /><stop offset="1" stop-color="#0078d4" id="az7-stop11430" /></radialGradient><clipPath id="az7-b36c7f5d-2ef1-4760-8a25-eeb9661f4e47"><path d="M 14.969,7.53 A 6.137,6.137 0 1 1 7.574,2.987 6.137,6.137 0 0 1 14.969,7.53 Z" id="az7-path11433" style="fill:none" /></clipPath></defs><title id="az7-title11438">Icon-databases-121</title><path d="m 2.4539754,4.7220029 a 0.175,0.175 0 0 1 -0.176,-0.176 v 0 a 2.012,2.012 0 0 0 -2.00900002,-2.009 0.176,0.176 0 0 1 -0.176,-0.175 v 0 a 0.176,0.176 0 0 1 0.176,-0.176 2.012,2.012 0 0 0 2.00900002,-2.01000003 0.175,0.175 0 0 1 0.176,-0.1759999963893 v 0 A 0.175,0.175 0 0 1 2.6299754,0.17600287 v 0 a 2.012,2.012 0 0 0 2.009,2.00900003 0.175,0.175 0 0 1 0.176,0.176 v 0 a 0.175,0.175 0 0 1 -0.176,0.176 v 0 a 2.011,2.011 0 0 0 -2.009,2.009 0.177,0.177 0 0 1 -0.176,0.176 z" id="az7-path11440" style="fill:#50e6ff" /><path d="m 15.110975,16.912003 a 0.141,0.141 0 0 1 -0.141,-0.141 v 0 a 1.609,1.609 0 0 0 -1.607,-1.607 0.141,0.141 0 0 1 -0.141,-0.14 v 0 a 0.141,0.141 0 0 1 0.141,-0.141 v 0 a 1.608,1.608 0 0 0 1.607,-1.607 0.141,0.141 0 0 1 0.141,-0.141 v 0 a 0.141,0.141 0 0 1 0.141,0.141 v 0 a 1.608,1.608 0 0 0 1.607,1.607 0.141,0.141 0 1 1 0,0.282 v 0 a 1.609,1.609 0 0 0 -1.607,1.607 0.141,0.141 0 0 1 -0.141,0.14 z" id="az7-path11442" style="fill:#50e6ff" /><g id="az7-g11452" transform="translate(-0.50002462,-0.54399713)"><path d="M 14.969,7.53 A 6.137,6.137 0 1 1 7.574,2.987 6.137,6.137 0 0 1 14.969,7.53 Z" id="az7-path11444" style="fill:url(#az7-b25d0836-964a-4c84-8c20-855f66e8345e)" /><g clip-path="url(#az7-b36c7f5d-2ef1-4760-8a25-eeb9661f4e47)" id="az7-g11450"><path d="M 5.709,13.115 A 1.638,1.638 0 1 0 5.714,9.84 1.307,1.307 0 0 0 5.721,9.7 1.651,1.651 0 0 0 4.06,8.064 H 2.832 a 6.251,6.251 0 0 0 1.595,5.051 z" id="az7-path11446" style="fill:#f2f2f2" /><path d="m 15.045,7.815 c 0,-0.015 0,-0.03 -0.007,-0.044 a 5.978,5.978 0 0 0 -1.406,-2.88 1.825,1.825 0 0 0 -0.289,-0.09 1.806,1.806 0 0 0 -2.3,1.663 2,2 0 0 0 -0.2,-0.013 1.737,1.737 0 0 0 -0.581,3.374 1.451,1.451 0 0 0 0.541,0.1 h 2.03 a 13.453,13.453 0 0 0 2.212,-2.11 z" id="az7-path11448" style="fill:#f2f2f2" /></g></g><path d="m 16.690975,3.2880029 c -0.629,-1.047 -2.1,-1.455 -4.155,-1.149 a 14.606,14.606 0 0 0 -2.082,0.452 6.456,6.456 0 0 1 1.528,0.767 c 0.241,-0.053 0.483,-0.116 0.715,-0.151 a 7.49,7.49 0 0 1 1.103,-0.089 2.188,2.188 0 0 1 1.959,0.725 v 0 c 0.383,0.638 0.06,1.729 -0.886,3 a 16.723,16.723 0 0 1 -4.749,4.0510001 16.758,16.758 0 0 1 -5.8239996,2.262 c -1.564,0.234 -2.682,0 -3.065,-0.636 -0.38300002,-0.636 -0.06,-1.73 0.886,-2.9950001 0.117,-0.157 0.146,-0.234 0.279,-0.392 a 6.252,6.252 0 0 1 0.026,-1.63 11.552,11.552 0 0 0 -1.17,1.372 C 0.01697538,10.532003 -0.31902462,12.022003 0.30897538,13.069003 a 3.165,3.165 0 0 0 2.90000002,1.249 8.434,8.434 0 0 0 1.251,-0.1 17.855,17.855 0 0 0 6.2189996,-2.4 17.808,17.808 0 0 0 5.061,-4.3320001 c 1.243,-1.661 1.579,-3.15 0.951,-4.198 z" id="az7-path11454" style="fill:#50e6ff" /></svg>',
31
+ "microsoft.eventhub/namespaces":
32
+ '<svg xmlns="http://www.w3.org/2000/svg" width="17.00079" height="15.14" viewBox="0 0 17.00079 15.14" version="1.1" id="az8-svg5903"><defs id="az8-defs5907" /><title id="az8-title5856">Icon-analytics-144</title><g id="az8-g5899" transform="translate(-0.49920995,-1.5099995)"><g id="az8-a53a4de8-371c-49da-a662-c4631299fc03"><path d="M 10.83,8.42 A 0.26,0.26 0 0 1 10.59,8.69 H 8.5 A 0.26,0.26 0 0 1 8.23,8.45 V 6.89 A 0.26,0.26 0 0 1 8.47,6.62 h 2.09 a 0.26,0.26 0 0 1 0.27,0.24 z" id="az8-path5858" style="fill:#76bc2d" /><path d="M 14.54,10 A 0.26,0.26 0 0 1 14.3,10.27 H 12.21 A 0.26,0.26 0 0 1 11.94,10.03 V 8.48 a 0.26,0.26 0 0 1 0.24,-0.27 h 2.09 a 0.26,0.26 0 0 1 0.27,0.24 z" id="az8-path5860" style="fill:#76bc2d" /><path d="m 10.83,11.6 a 0.26,0.26 0 0 1 -0.24,0.27 H 8.5 A 0.26,0.26 0 0 1 8.23,11.63 V 10.07 A 0.26,0.26 0 0 1 8.47,9.8 h 2.09 a 0.26,0.26 0 0 1 0.27,0.24 z" id="az8-path5862" style="fill:#76bc2d" /><path d="M 7.12,6.84 A 0.25,0.25 0 0 1 6.89,7.1 H 4.74 A 0.26,0.26 0 0 1 4.47,6.87 V 5.25 A 0.26,0.26 0 0 1 4.71,5 H 6.8 c 0.22,0 0.32,0.11 0.32,0.27 z" id="az8-path5864" style="fill:#86d633" /><path d="M 7.12,10 A 0.25,0.25 0 0 1 6.89,10.27 H 4.74 A 0.26,0.26 0 0 1 4.47,10 V 8.42 A 0.26,0.26 0 0 1 4.71,8.16 H 6.8 c 0.22,0 0.32,0.11 0.32,0.26 z" id="az8-path5866" style="fill:#76bc2d" /><path d="M 7.12,13.19 A 0.25,0.25 0 0 1 6.89,13.46 H 4.74 A 0.26,0.26 0 0 1 4.47,13.22 V 11.6 A 0.25,0.25 0 0 1 4.71,11.34 H 6.8 c 0.22,0 0.32,0.1 0.32,0.26 z" id="az8-path5868" style="fill:#76bc2d" /><g id="az8-g5874"><path d="m 1.07,1.51 h 1.29 v 3.6 A 0.29,0.29 0 0 1 2.07,5.4 H 0.79 A 0.29,0.29 0 0 1 0.5,5.11 v -3 a 0.57,0.57 0 0 1 0.57,-0.6 z" id="az8-path5870" style="fill:#999999" /><path d="m 1.07,1.51 h 1.29 v 3.6 A 0.29,0.29 0 0 1 2.07,5.4 H 0.79 A 0.29,0.29 0 0 1 0.5,5.11 v -3 a 0.57,0.57 0 0 1 0.57,-0.6 z" id="az8-path5872" style="opacity:0.5;fill:#999999" /></g><g id="az8-g5880"><path d="m 15.64,1.51 h 1.29 a 0.57,0.57 0 0 1 0.57,0.57 v 3 A 0.29,0.29 0 0 1 17.21,5.37 H 15.92 A 0.29,0.29 0 0 1 15.63,5.08 V 1.51 Z" id="az8-path5876" style="fill:#999999" /><path d="m 15.64,1.51 h 1.29 a 0.57,0.57 0 0 1 0.57,0.57 v 3 A 0.29,0.29 0 0 1 17.21,5.37 H 15.92 A 0.29,0.29 0 0 1 15.63,5.08 V 1.51 Z" id="az8-path5878" style="opacity:0.5;fill:#999999" /></g><path d="m 8.66,-6.08 h 1.25 v 17 H 8.66 A 0.57,0.57 0 0 1 8.09,10.35 V -5.52 a 0.57,0.57 0 0 1 0.57,-0.56 z" transform="rotate(90,9,2.42)" id="az8-path5882" style="fill:#949494" /><g id="az8-g5888"><path d="m 0.79,12.76 h 1.29 a 0.29,0.29 0 0 1 0.29,0.29 v 3.6 H 1.07 A 0.57,0.57 0 0 1 0.5,16.08 V 13 a 0.29,0.29 0 0 1 0.29,-0.24 z" id="az8-path5884" style="fill:#999999" /><path d="m 0.79,12.76 h 1.29 a 0.29,0.29 0 0 1 0.29,0.29 v 3.6 H 1.07 A 0.57,0.57 0 0 1 0.5,16.08 V 13 a 0.29,0.29 0 0 1 0.29,-0.24 z" id="az8-path5886" style="opacity:0.5;fill:#999999" /></g><g id="az8-g5894"><path d="m 15.92,12.76 h 1.29 a 0.29,0.29 0 0 1 0.29,0.29 v 3 a 0.57,0.57 0 0 1 -0.57,0.57 H 15.64 V 13 a 0.29,0.29 0 0 1 0.28,-0.24 z" id="az8-path5890" style="fill:#999999" /><path d="m 15.92,12.76 h 1.29 a 0.29,0.29 0 0 1 0.29,0.29 v 3 a 0.57,0.57 0 0 1 -0.57,0.57 H 15.64 V 13 a 0.29,0.29 0 0 1 0.28,-0.24 z" id="az8-path5892" style="opacity:0.5;fill:#999999" /></g><path d="m 8.66,7.24 h 1.25 v 17 H 8.66 A 0.57,0.57 0 0 1 8.09,23.67 V 7.81 A 0.57,0.57 0 0 1 8.66,7.24 Z" transform="rotate(-90,9,15.74)" id="az8-path5896" style="fill:#949494" /></g></g></svg>',
33
+ "microsoft.insights/components":
34
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az9-b6f6d99e-f330-481d-836f-ea58cc42217f" width="11.898839" height="17.000299" viewBox="0 0 11.898839 17.000299" version="1.1"><defs id="az9-defs16023"><radialGradient id="az9-a7a1c431-6c6d-4a8f-9a69-8da437e5b0c5" cx="9" cy="7.3499999" r="6.4200001" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#b77af4" id="az9-stop15987" /><stop offset="0.21" stop-color="#b378f2" id="az9-stop15989" /><stop offset="0.43" stop-color="#a672ed" id="az9-stop15991" /><stop offset="0.65" stop-color="#9267e4" id="az9-stop15993" /><stop offset="0.88" stop-color="#7559d8" id="az9-stop15995" /><stop offset="1" stop-color="#624fd0" id="az9-stop15997" /></radialGradient><linearGradient id="az9-ec0c4f0d-5c8e-4882-96a1-89d61808eb49" x1="9.0200005" y1="3.9100001" x2="9.0799999" y2="11.49" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f2f2f2" id="az9-stop16000" /><stop offset="0.23" stop-color="#f1f1f2" stop-opacity="0.99" id="az9-stop16002" /><stop offset="0.37" stop-color="#ededf1" stop-opacity="0.95" id="az9-stop16004" /><stop offset="0.48" stop-color="#e7e5f0" stop-opacity="0.89" id="az9-stop16006" /><stop offset="0.58" stop-color="#dedbee" stop-opacity="0.81" id="az9-stop16008" /><stop offset="0.67" stop-color="#d3ceeb" stop-opacity="0.7" id="az9-stop16010" /><stop offset="0.76" stop-color="#c4bee8" stop-opacity="0.57" id="az9-stop16012" /><stop offset="0.84" stop-color="#b4abe5" stop-opacity="0.41" id="az9-stop16014" /><stop offset="0.92" stop-color="#a095e1" stop-opacity="0.22" id="az9-stop16016" /><stop offset="0.99" stop-color="#8b7ddc" stop-opacity="0.02" id="az9-stop16018" /><stop offset="1" stop-color="#897bdc" stop-opacity="0" id="az9-stop16020" /></linearGradient></defs><title id="az9-title16025">Icon-manage-310</title><path d="m 7.1794195,16.8903 0.81,-0.87 v -2.32 h -4.04 v 2.32 l 0.81,0.87 a 0.32,0.32 0 0 0 0.19,0.11 h 2 a 0.32,0.32 0 0 0 0.23,-0.11 z" id="az9-path16027" style="fill:#cecece" /><path d="M 5.9494195,2.9972545e-4 A 5.89,5.89 0 0 0 0.03941949,6.5702997 c 0.27,2.47 2.62000001,3.6200003 3.29000001,6.7500003 a 0.49,0.49 0 0 0 0.47,0.38 h 4.3 a 0.49,0.49 0 0 0 0.47,-0.38 c 0.67,-3.13 2.9999995,-4.2800003 3.2899995,-6.7500003 A 5.89,5.89 0 0 0 5.9494195,2.9972545e-4 Z m -2,13.70000027455" id="az9-path16029" style="fill:url(#az9-a7a1c431-6c6d-4a8f-9a69-8da437e5b0c5)" /><path d="m 8.4094195,3.2902997 a 1.4,1.4 0 0 0 -1.35,1.44 v 0.77 h -2.11 v -0.77 a 1.41,1.41 0 0 0 -1.41,-1.44 1.4,1.4 0 0 0 -1.35,1.44 1.41,1.41 0 0 0 1.35,1.45 h 0.64 V 12.1803 a 0.36,0.36 0 0 0 0.72,0 V 6.1802997 h 2.16 V 12.1803 a 0.36,0.36 0 1 0 0.72,0 V 6.1802997 h 0.63 a 1.4,1.4 0 0 0 1.35,-1.45 1.4,1.4 0 0 0 -1.35,-1.44 z m -4.23,2.21 h -0.68 a 0.74,0.74 0 0 1 -0.68,-0.77 0.74,0.74 0 0 1 0.68,-0.77 0.74,0.74 0 0 1 0.68,0.77 z m 4.28,0 h -0.68 v -0.81 a 0.68,0.68 0 1 1 1.35,0 0.73,0.73 0 0 1 -0.67,0.81 z" id="az9-path16031" style="fill:url(#az9-ec0c4f0d-5c8e-4882-96a1-89d61808eb49)" /><polygon points="11.04,14.56 6.96,15.36 6.96,15.8 11.04,15.01 " id="az9-polygon16033" style="fill:#999999" transform="translate(-3.0505805,-0.49970027)" /><polygon points="6.96,16.48 6.96,16.52 7.27,16.86 11.04,16.11 11.04,15.67 " id="az9-polygon16035" style="fill:#999999" transform="translate(-3.0505805,-0.49970027)" /></svg>',
35
+ "microsoft.keyvault/vaults":
36
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az10-bc93169a-24c4-4686-9f37-c7e4f53b3d34" width="17" height="17" viewBox="0 0 17 17" version="1.1"><defs id="az10-defs73834"><radialGradient id="az10-fb114c93-7c16-4540-899a-0796041629e6" cx="9" cy="9" r="8.5" gradientUnits="userSpaceOnUse"><stop offset="0.18" stop-color="#5ea0ef" id="az10-stop73808" /><stop offset="0.56" stop-color="#5c9fee" id="az10-stop73810" /><stop offset="0.69" stop-color="#559ced" id="az10-stop73812" /><stop offset="0.78" stop-color="#4a97e9" id="az10-stop73814" /><stop offset="0.86" stop-color="#3990e4" id="az10-stop73816" /><stop offset="0.93" stop-color="#2387de" id="az10-stop73818" /><stop offset="0.99" stop-color="#087bd6" id="az10-stop73820" /><stop offset="1" stop-color="#0078d4" id="az10-stop73822" /></radialGradient><radialGradient id="az10-ec478bd3-5b38-4e7f-b661-11f355578bff" cx="38.950001" cy="182.07001" r="9.8800001" gradientTransform="matrix(0.94,0,0,0.94,-28.21,-162.74)" gradientUnits="userSpaceOnUse"><stop offset="0.27" stop-color="#ffd70f" id="az10-stop73825" /><stop offset="0.49" stop-color="#ffcb12" id="az10-stop73827" /><stop offset="0.88" stop-color="#feac19" id="az10-stop73829" /><stop offset="1" stop-color="#fea11b" id="az10-stop73831" /></radialGradient></defs><title id="az10-title73836">Icon-security-245</title><path id="az10-aacf8311-a317-400f-b613-74bd00da5ce3" d="M 8.5,0 A 8.5,8.5 0 1 0 17,8.5 8.51,8.51 0 0 0 8.5,0 Z m 0,15.84 A 7.34,7.34 0 1 1 15.84,8.5 7.34,7.34 0 0 1 8.5,15.84 Z" style="fill:url(#az10-fb114c93-7c16-4540-899a-0796041629e6)" /><circle cx="8.5" cy="8.5" r="7.3400002" id="az10-circle73839" style="fill:#ffffff" /><g id="az10-g73845" transform="translate(-0.5,-0.5)"><path id="az10-bd983c41-db73-40ec-a4f4-da1213fc9924" d="m 13.44,7.33 a 1.84,1.84 0 0 0 0,-2.59 v 0 L 10.29,1.58 a 1.83,1.83 0 0 0 -2.58,0 v 0 L 4.56,4.74 a 1.84,1.84 0 0 0 0,2.59 L 7.18,10 a 0.51,0.51 0 0 1 0.15,0.36 v 4.88 a 0.63,0.63 0 0 0 0.18,0.44 l 1.2,1.2 a 0.41,0.41 0 0 0 0.58,0 l 1.16,-1.16 v 0 l 0.68,-0.68 a 0.25,0.25 0 0 0 0,-0.34 l -0.49,-0.49 a 0.27,0.27 0 0 1 0,-0.37 l 0.49,-0.49 a 0.25,0.25 0 0 0 0,-0.34 l -0.49,-0.49 a 0.27,0.27 0 0 1 0,-0.37 l 0.49,-0.49 a 0.25,0.25 0 0 0 0,-0.34 L 10.45,10.63 V 10.38 Z M 9,2.35 A 1.035,1.035 0 0 1 9,4.42 1.035,1.035 0 1 1 9,2.35 Z" style="fill:url(#az10-ec478bd3-5b38-4e7f-b661-11f355578bff)" /><path id="az10-ad2e7e44-9bfd-4775-8bf4-8ef26a544921" d="m 8.18,15.3 v 0 a 0.23,0.23 0 0 0 0.38,-0.17 v -4 a 0.24,0.24 0 0 0 -0.11,-0.2 v 0 a 0.22,0.22 0 0 0 -0.34,0.2 v 4 a 0.28,0.28 0 0 0 0.07,0.17 z" style="opacity:0.75;fill:#ff9300" /><rect id="az10-a996fbff-3936-4b24-b407-369336c143ba" x="6.48" y="5.79" width="5.1700001" height="0.61000001" rx="0.28" style="opacity:0.75;fill:#ff9300" /><rect id="az10-bb12d31c-3352-4a18-87dd-a169a4a8721d" x="6.48" y="6.7800002" width="5.1700001" height="0.61000001" rx="0.28" style="opacity:0.75;fill:#ff9300" /></g></svg>',
37
+ "microsoft.managedidentity/userassignedidentities":
38
+ '<svg contentScriptType="text/ecmascript" zoomAndPan="magnify" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="full" contentStyleType="text/css" id="az11-f807cdde-18f2-4574-ba14-f0b1eef94a4a" version="1.1" width="17.700001" preserveAspectRatio="xMidYMid meet" viewBox="0 0 17.700001 17.001848" height="17.001848" xmlns="http://www.w3.org/2000/svg"><defs id="az11-defs2523"><linearGradient gradientTransform="translate(0.15,1)" x1="13.18" y1="13.01" x2="8.6300001" gradientUnits="userSpaceOnUse" y2="4.3800001" id="az11-bb67b154-af8f-4a53-a9ce-aa046b9398e9"><stop offset="0" stop-color="#1988d9" id="az11-stop2507"/><stop offset="0.9" stop-color="#54aef0" id="az11-stop2509"/></linearGradient><linearGradient gradientTransform="translate(0.15,1)" x1="11.22" y1="10.5" x2="14.37" gradientUnits="userSpaceOnUse" y2="15.93" id="az11-a47d7138-084a-471d-8d63-744e75b9e8a3"><stop offset="0.1" stop-color="#54aef0" id="az11-stop2512"/><stop offset="0.29" stop-color="#4fabee" id="az11-stop2514"/><stop offset="0.51" stop-color="#41a2e9" id="az11-stop2516"/><stop offset="0.74" stop-color="#2a93e0" id="az11-stop2518"/><stop offset="0.88" stop-color="#1988d9" id="az11-stop2520"/></linearGradient></defs><polygon style="fill:#50e6ff" points="8.93,17.11 0.15,11.37 1.15,10.22 8.93,15.27 16.85,10.21 17.85,11.36" transform="translate(-0.15,-1)"/><polygon style="fill:#ffffff" points="1.73,9.58 8.93,1 16.28,9.59 8.93,14.23" transform="translate(-0.15,-1)"/><polygon style="fill:#50e6ff" points="8.93,14.23 1.73,9.58 8.93,1" transform="translate(-0.15,-1)"/><polygon style="fill:url(#az11-bb67b154-af8f-4a53-a9ce-aa046b9398e9)" points="8.93,14.23 16.28,9.59 8.93,1" transform="translate(-0.15,-1)"/><polygon style="fill:#53b1e0" points="16.28,9.59 8.93,14.23 8.93,7.83" transform="translate(-0.15,-1)"/><polygon style="fill:#9cebff" points="1.73,9.58 8.93,7.83 8.93,14.23" transform="translate(-0.15,-1)"/><polygon style="fill:url(#az11-a47d7138-084a-471d-8d63-744e75b9e8a3)" points="8.93,17.11 17.85,11.36 16.85,10.21 8.93,15.27" transform="translate(-0.15,-1)"/><path style="fill:#ffca00" d="m 16.17,10.88 a 1.16,1.16 0 0 0 0,-1.65 v 0 l -2,-2 a 1.16,1.16 0 0 0 -1.64,0 v 0 l -2,2 a 1.18,1.18 0 0 0 0,1.65 l 1.67,1.67 a 0.32,0.32 0 0 1 0.09,0.23 v 3.1 a 0.36,0.36 0 0 0 0.12,0.28 l 0.76,0.76 a 0.25,0.25 0 0 0 0.37,0 l 0.73,-0.73 v 0 l 0.44,-0.44 a 0.15,0.15 0 0 0 0,-0.21 L 14.4,15.23 a 0.16,0.16 0 0 1 0,-0.24 l 0.31,-0.31 a 0.16,0.16 0 0 0 0,-0.22 L 14.4,14.15 a 0.15,0.15 0 0 1 0,-0.23 l 0.31,-0.32 a 0.15,0.15 0 0 0 0,-0.21 L 14.27,12.95 V 12.79 Z M 13.35,7.71 a 0.66,0.66 0 1 1 -0.66,0.66 0.66,0.66 0 0 1 0.66,-0.66 z"/><path style="opacity:0.75;fill:#ff9300" d="m 12.85,16 v 0 a 0.14,0.14 0 0 0 0.24,-0.11 V 13.33 A 0.16,0.16 0 0 0 13.03,13.2 v 0 a 0.14,0.14 0 0 0 -0.22,0.13 v 2.51 A 0.15,0.15 0 0 0 12.85,16 Z"/><rect rx="0.18000001" x="11.75" width="3.29" height="0.38999999" y="9.8999996" style="opacity:0.75;fill:#ff9300"/><rect rx="0.18000001" x="11.75" width="3.29" height="0.38999999" y="10.53" style="opacity:0.75;fill:#ff9300"/></svg>',
39
+ "microsoft.network/applicationgateways":
40
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az12-acac5a34-a032-49f9-9397-37f4f1b4ae9a" width="16.994371" height="16.994371" viewBox="0 0 16.994371 16.994371" version="1.1"><defs id="az12-defs63243"><linearGradient id="az12-f6d5399b-a5cb-4c09-96cc-9e3bb1af2386" x1="9" y1="19.25" x2="9" y2="-0.46000001" gradientTransform="rotate(45,0.00354733,-0.00354732)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#5e9624" id="az12-stop63224" /><stop offset="0.55" stop-color="#6dad2a" id="az12-stop63226" /><stop offset="1" stop-color="#76bc2d" id="az12-stop63228" /></linearGradient><linearGradient id="az12-a43242a2-4d95-4f6d-8870-2702ceb6aebc" x1="7.54" y1="6.4400001" x2="7.5300002" y2="5.1799998" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ccc" id="az12-stop63231" /><stop offset="0.12" stop-color="#d7d7d7" id="az12-stop63233" /><stop offset="0.42" stop-color="#ebebeb" id="az12-stop63235" /><stop offset="0.72" stop-color="#f8f8f8" id="az12-stop63237" /><stop offset="1" stop-color="#fcfcfc" id="az12-stop63239" /></linearGradient><linearGradient id="az12-eedce6dd-706a-43c4-ac66-66b73578221d" x1="19.283199" y1="15.1828" x2="19.283199" y2="13.9284" href="#az12-a43242a2-4d95-4f6d-8870-2702ceb6aebc" gradientUnits="userSpaceOnUse" /></defs><rect x="-6.1750002" y="5.841835" width="12.35" height="12.35" rx="0.56999999" transform="rotate(-45)" id="az12-rect63245" style="fill:url(#az12-f6d5399b-a5cb-4c09-96cc-9e3bb1af2386)" /><g id="az12-g63253" transform="translate(-0.49366538,-0.50281421)"><path d="m 10.89,10.51 h 2.84 a 0.11,0.11 0 0 0 0.1,-0.11 V 7.57 A 0.1,0.1 0 0 0 13.65,7.5 l -0.78,0.78 v 0.05 a 0.1,0.1 0 0 1 -0.14,0 L 9.26,4.91 a 0.1,0.1 0 0 0 -0.14,0 L 8.24,5.79 a 0.11,0.11 0 0 0 0,0.15 l 3.41,3.41 a 0.11,0.11 0 0 1 0,0.15 l -0.05,0.05 -0.78,0.78 a 0.11,0.11 0 0 0 0.07,0.18 z" id="az12-path63247" style="fill:#ffffff" /><path d="M 6.92,10.51 H 4.08 A 0.11,0.11 0 0 1 4,10.4 V 7.57 A 0.1,0.1 0 0 1 4.17,7.5 l 0.79,0.78 v 0.05 a 0.1,0.1 0 0 0 0.14,0 L 8.55,4.91 a 0.1,0.1 0 0 1 0.14,0 l 0.88,0.88 a 0.11,0.11 0 0 1 0,0.15 L 6.16,9.35 a 0.11,0.11 0 0 0 0,0.15 v 0.05 l 0.78,0.78 a 0.11,0.11 0 0 1 -0.02,0.18 z" id="az12-path63249" style="fill:#ffffff" /><path d="m 6.82,13.07 2,2 a 0.1,0.1 0 0 0 0.14,0 l 2,-2 A 0.1,0.1 0 0 0 10.89,12.9 H 9.72 A 0.11,0.11 0 0 1 9.62,12.8 V 8 A 0.1,0.1 0 0 0 9.52,7.89 H 8.28 A 0.11,0.11 0 0 0 8.17,8 v 4.8 a 0.1,0.1 0 0 1 -0.1,0.1 H 6.89 a 0.1,0.1 0 0 0 -0.07,0.17 z" id="az12-path63251" style="fill:#ffffff" /></g><path id="az12-ac0a9c0c-2e8c-4843-b02b-2fadf76b27d0" d="m 10.156335,7.2771858 a 2.71,2.71 0 0 1 -3.3200004,-4.28 v 0 a 2.71,2.71 0 0 1 3.2900004,4.3" style="fill:#0078d4" /><circle cx="7.036335" cy="5.0471859" r="0.87" id="az12-circle63256" style="fill:url(#az12-a43242a2-4d95-4f6d-8870-2702ceb6aebc)" /><g id="az12-g63266" transform="translate(-0.49366538,-0.50281421)"><path d="M 6.67,7 6.86,7.3 7,7.5 A 5.94,5.94 0 0 1 7.34,6.4 0.85,0.85 0 0 1 6.89,6.17 6.71,6.71 0 0 0 6.67,7 Z" id="az12-path63258" style="opacity:0.55;fill:#f2f2f2" /><path d="M 7.24,4.73 A 4,4 0 0 1 7,3.8 2.48,2.48 0 0 0 6.66,4.26 3.51,3.51 0 0 0 6.86,5 1,1 0 0 1 7.24,4.73 Z" id="az12-path63260" style="opacity:0.55;fill:#f2f2f2" /><path d="M 8.17,6.14 A 0.87,0.87 0 0 1 7.69,6.4 4.62,4.62 0 0 0 8.15,6.81 4.14,4.14 0 0 0 8.8,7.2 V 7.13 A 0.53,0.53 0 0 1 9,6.73 3.6,3.6 0 0 1 8.17,6.14 Z" id="az12-path63262" style="opacity:0.55;fill:#f2f2f2" /><path d="M 10.79,7.2 A 4.14,4.14 0 0 1 9.92,7.1 v 0 a 0.55,0.55 0 0 1 -0.16,0.39 3.84,3.84 0 0 0 1.08,0.08 2.93,2.93 0 0 0 0.37,-0.42 z" id="az12-path63264" style="opacity:0.55;fill:#f2f2f2" /></g><circle cx="8.866334" cy="6.6271858" r="0.56" id="az12-circle63268" style="fill:url(#az12-eedce6dd-706a-43c4-ac66-66b73578221d)" /><circle cx="10.146335" cy="5.2371855" r="0.60000002" id="az12-circle63270" style="fill:#f2f2f2" /><g id="az12-g63276" transform="translate(-0.49366538,-0.50281421)"><path d="M 9.21,4.42 A 4.29,4.29 0 0 1 11.09,4 2.24,2.24 0 0 0 10.62,3.55 4.5,4.5 0 0 0 9.13,3.9 c -0.1,0 -0.19,0.11 -0.29,0.16 v 0 A 5.85,5.85 0 0 1 8.21,3.13 L 7.87,3.26 a 5.35,5.35 0 0 0 0.65,1 3.92,3.92 0 0 0 -0.67,0.55 0.87,0.87 0 0 1 0.43,0.35 3.29,3.29 0 0 1 0.61,-0.48 9.16,9.16 0 0 0 1.17,1 0.57,0.57 0 0 1 0.2,-0.32 8.44,8.44 0 0 1 -1.05,-0.94 z" id="az12-path63272" style="opacity:0.55;fill:#f2f2f2" /><path d="m 11.55,6.09 v 0 h -0.1 v 0 h -0.08 v 0 l -0.1,-0.06 a 0.61,0.61 0 0 1 -0.2,0.3 l 0.12,0.07 v 0 l 0.11,0.06 v 0 l 0.28,0.14 v 0 a 3.58,3.58 0 0 0 0.09,-0.35 z" id="az12-path63274" style="opacity:0.55;fill:#f2f2f2" /></g><circle cx="7.036335" cy="5.0471859" r="0.87" id="az12-circle63278" style="fill:#f2f2f2" /><circle cx="8.866334" cy="6.6271858" r="0.56" id="az12-circle63280" style="fill:#f2f2f2" /></svg>',
41
+ "microsoft.network/privateendpoints":
42
+ '<svg xmlns="http://www.w3.org/2000/svg" width="53.798553mm" height="49.537819mm" viewBox="0 0 53.798553 49.537819" version="1.1" id="az13-svg8"><defs id="az13-defs2" /><g id="az13-layer1" transform="translate(-77.843845,-68.46614)"><path style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#7b7b7b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.4000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" d="m 102.94336,75.623047 v 24.320312 h 3.40039 V 75.623047 Z" id="az13-path4546" /><circle style="opacity:1;vector-effect:none;fill:#369dc6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53865981;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" id="az13-path4529" cx="104.74665" cy="73.30896" r="4.8428197" /><circle style="opacity:1;vector-effect:none;fill:#84b926;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53865981;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" id="az13-path4529-0" cx="104.7939" cy="103.04635" r="5.9295011" /><path style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#369dc6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" d="m 116.61133,88.082031 a 1.70017,1.70017 0 0 0 -1.16016,2.929688 l 12.07422,11.873051 -12.24805,12.20312 a 1.70017,1.70017 0 1 0 2.39844,2.41016 l 13.4668,-13.41797 a 1.70017,1.70017 0 0 0 -0.008,-2.41602 L 117.83594,88.587891 a 1.70017,1.70017 0 0 0 -1.22461,-0.50586 z m -23.787111,0.002 a 1.70017,1.70017 0 0 0 -1.173828,0.503907 L 78.351562,101.66406 a 1.70017,1.70017 0 0 0 -0.0078,2.41602 l 13.466797,13.41797 a 1.70017,1.70017 0 1 0 2.398437,-2.41016 L 81.960938,102.88477 94.035156,91.011719 a 1.70017,1.70017 0 0 0 -1.210937,-2.927735 z" id="az13-path4548-6" /></g></svg>',
43
+ "microsoft.network/virtualnetworks":
44
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az14-a1606a52-fb14-4637-87de-4d524bba1829" width="18.006025" height="10.784314" viewBox="0 0 18.006025 10.784314" version="1.1"><defs id="az14-defs70798"><linearGradient id="az14-f020fb7e-2243-4501-8153-5d69bd3c34f7" x1="9.8800001" y1="8.5900002" x2="11.52" y2="10.23" gradientTransform="rotate(-0.08,-285.46384,-1454.0801)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#86d633" id="az14-stop70783" /><stop offset="1" stop-color="#5e9624" id="az14-stop70785" /></linearGradient><linearGradient id="az14-b3c2bc94-8c7c-48a2-9719-6ee899a43a97" x1="6.1799998" y1="8.5900002" x2="7.8099999" y2="10.23" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#86d633" id="az14-stop70788" /><stop offset="1" stop-color="#5e9624" id="az14-stop70790" /></linearGradient><linearGradient id="az14-e900c35d-0958-4d4f-b28f-302eeaaf52f5" x1="2.48" y1="8.5900002" x2="4.1100001" y2="10.23" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#86d633" id="az14-stop70793" /><stop offset="1" stop-color="#5e9624" id="az14-stop70795" /></linearGradient></defs><title id="az14-title70800">Icon-networking-61</title><circle cx="12.744286" cy="5.3829632" r="1.16" id="az14-circle70802" style="fill:url(#az14-f020fb7e-2243-4501-8153-5d69bd3c34f7)" /><circle cx="9.0442858" cy="5.3929634" r="1.16" id="az14-circle70804" style="fill:url(#az14-b3c2bc94-8c7c-48a2-9719-6ee899a43a97)" /><circle cx="5.3442855" cy="5.3929634" r="1.16" id="az14-circle70806" style="fill:url(#az14-e900c35d-0958-4d4f-b28f-302eeaaf52f5)" /><path d="M 6.1863956,10.030542 5.5226439,10.69615 a 0.3,0.3 0 0 1 -0.4242636,5.93e-4 L 0.18421208,5.7962782 A 0.6,0.6 0 0 1 0.18302731,4.9477509 L 0.84677897,4.2821431 6.1858032,9.6062787 a 0.3,0.3 0 0 1 5.924e-4,0.4242633 z" id="az14-path70808" style="fill:#50e6ff" /><path d="M 5.4221989,0.10117925 6.0878067,0.76493091 A 0.3,0.3 0 0 1 6.0883991,1.1891946 L 0.84193654,6.4503285 0.17632875,5.7865769 A 0.6,0.6 0 0 1 0.17514398,4.9380496 L 4.9979353,0.10177164 a 0.3,0.3 0 0 1 0.4242636,-5.9239e-4 z" id="az14-path70810" style="fill:#1490df" /><path d="m 17.160946,4.2730297 0.663752,0.6656078 a 0.6,0.6 0 0 1 -0.0012,0.8485273 l -4.914168,4.9004642 a 0.3,0.3 0 0 1 -0.424264,-5.92e-4 l -0.663752,-0.665608 a 0.3,0.3 0 0 1 5.93e-4,-0.4242636 z" id="az14-path70812" style="fill:#50e6ff" /><path d="M 17.822617,5.7800309 17.157009,6.4437825 11.910546,1.1826486 a 0.3,0.3 0 0 1 5.93e-4,-0.42426368 l 0.672688,-0.67081284 a 0.3,0.3 0 0 1 0.424264,5.9238e-4 l 4.822791,4.83627794 a 0.6,0.6 0 0 1 -0.0012,0.8485273 z" id="az14-path70814" style="fill:#1490df" /></svg>',
45
+ "microsoft.operationalinsights/workspaces":
46
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az15-b388e944-5509-49c9-84d7-f38bffa995b2" width="16.901033" height="16.900316" viewBox="0 0 16.901033 16.900316" version="1.1"><defs id="az15-defs6196"><linearGradient id="az15-a997e203-1d7d-4cb9-b131-5dc44e029b46" x1="5.23" y1="17.450001" x2="5.23" y2="8.0900002" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1988d9" id="az15-stop6180" /><stop offset="0.9" stop-color="#54aef0" id="az15-stop6182" /></linearGradient><linearGradient id="az15-e122e9d8-aee5-4f1a-a60e-b1eae355daa5" x1="11.5" y1="12.45" x2="11.5" y2="0.55000001" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#198ab3" id="az15-stop6185" /><stop offset="0.01" stop-color="#198bb4" id="az15-stop6187" /><stop offset="0.44" stop-color="#27b2d7" id="az15-stop6189" /><stop offset="0.79" stop-color="#2fcbed" id="az15-stop6191" /><stop offset="1" stop-color="#32d4f5" id="az15-stop6193" /></linearGradient></defs><title id="az15-title6198">Icon-manage-307</title><path d="m 5.04,12.580316 h 4.32 v 4.32 H 5.04 Z m -4.44,4.32 h 3.72 v -4.32 H 0 v 3.72 a 0.6,0.6 0 0 0 0.6,0.6 z m -0.6,-5 H 4.32 V 7.5403162 H 0 Z" id="az15-path6200" style="fill:url(#az15-a997e203-1d7d-4cb9-b131-5dc44e029b46)" /><path d="M 10.95,3.1622647e-4 A 5.89,5.89 0 0 1 16.9,6.0003162 5.89,5.89 0 0 1 10.95,11.950316 H 5 V 5.9503162 A 5.89,5.89 0 0 1 10.95,3.1622647e-4 Z" id="az15-path6202" style="fill:url(#az15-e122e9d8-aee5-4f1a-a60e-b1eae355daa5);fill-rule:evenodd" /><rect x="7.04" y="5.1003165" width="1.36" height="4.0799999" id="az15-rect6204" style="fill:#ffffff" /><rect x="9.7600002" y="6.4603167" width="1.36" height="2.72" id="az15-rect6206" style="fill:#ffffff" /><rect x="12.48" y="3.7403162" width="1.36" height="5.4400001" id="az15-rect6208" style="fill:#ffffff" /></svg>',
47
+ "microsoft.search/searchservices":
48
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az16-f470e112-f1d8-4c18-a381-9b54e11a9ca3" width="18" height="13.098808" viewBox="0 0 18 13.098808" version="1.1"><defs id="az16-defs1728"><linearGradient id="az16-b198f9ad-224e-4f37-99bb-f1c5a20d3916" x1="9" y1="0.36000001" x2="9" y2="18.309999" gradientUnits="userSpaceOnUse"><stop offset="0.18" stop-color="#5ea0ef" id="az16-stop1723" /><stop offset="1" stop-color="#0078d4" id="az16-stop1725" /></linearGradient></defs><title id="az16-title1730">Icon-web-44</title><path d="m 18,9.0010133 a 4.12,4.12 0 0 0 -3.51,-4 5.15,5.15 0 0 0 -5.25,-5.00000002 5.25,5.25 0 0 0 -5,3.49000002 4.86,4.86 0 0 0 -4.24,4.78 5,5 0 0 0 5.07,4.8199997 h 0.44 8.21 a 0.78,0.78 0 0 0 0.22,0 A 4.13,4.13 0 0 0 18,9.0010133 Z" id="az16-path1732" style="fill:url(#az16-b198f9ad-224e-4f37-99bb-f1c5a20d3916)" /><path d="m 12.33,4.2710133 a 3.07,3.07 0 0 0 -5.61,0.85 3.16,3.16 0 0 0 0.33,2.27 l -2.34,2.37 a 0.79,0.79 0 0 0 0,1.1199997 0.78,0.78 0 0 0 0.56,0.23 0.76,0.76 0 0 0 0.56,-0.23 L 8.16,8.5210133 a 3.14,3.14 0 0 0 0.81,0.33 3.08,3.08 0 0 0 3.36,-4.58 z m -0.54,2.1 a 2.16,2.16 0 0 1 -2.09,1.65 1.79,1.79 0 0 1 -0.51,-0.07 1.87,1.87 0 0 1 -0.7,-0.32 2.13,2.13 0 0 1 -0.56,-0.56 2.17,2.17 0 0 1 -0.31,-1.73 2.14,2.14 0 0 1 2.08,-1.66 2.31,2.31 0 0 1 0.52,0.06 2.18,2.18 0 0 1 1.32,1 2.13,2.13 0 0 1 0.25,1.63 z" id="az16-path1734" style="fill:#f2f2f2" /><ellipse cx="9.6899996" cy="5.8610134" rx="2.1500001" ry="2.1600001" id="az16-ellipse1736" style="fill:#83b9f9" /></svg>',
49
+ "microsoft.servicebus/namespaces":
50
+ '<svg width="17" height="15.142" viewBox="0 0 17 15.142" version="1.1" id="az17-svg34435" xmlns="http://www.w3.org/2000/svg"><defs id="az17-defs34394"><linearGradient id="az17-bbd02878-309a-4490-8196-946338d0f593" x1="8.9949999" y1="10.299" x2="8.9949999" y2="13.199" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#005ba1" id="az17-stop34383" /><stop offset="0.258" stop-color="#00589d" id="az17-stop34385" /><stop offset="0.525" stop-color="#004f90" id="az17-stop34387" /><stop offset="0.796" stop-color="#003f7c" id="az17-stop34389" /><stop offset="1" stop-color="#003067" id="az17-stop34391" /></linearGradient></defs><polygon points="4.612,7.384 4.612,7.396 4.606,7.4 4.612,7.4 4.612,13.201 13.382,13.201 13.382,7.4 13.387,7.4 13.382,7.396 13.382,7.384 13.363,7.384 8.997,4.405 4.631,7.384 " fill="#50e6ff" id="az17-polygon34396" transform="translate(-0.5,-1.43)" /><path d="m 4.106,5.97 c 0,-0.1 0.008,5.681 0.008,5.8 l 4.381,-2.9 z" fill="#32bedd" id="az17-path34398" /><path d="m 12.884,5.97 -4.389,2.9 4.381,2.9 c 0,-0.117 0.008,-5.9 0.008,-5.8 z" fill="#198ab3" id="az17-path34400" /><polygon points="4.614,13.194 4.614,13.199 13.376,13.199 13.376,13.194 8.995,10.299 " fill="url(#az17-bbd02878-309a-4490-8196-946338d0f593)" id="az17-polygon34402" style="fill:url(#az17-bbd02878-309a-4490-8196-946338d0f593)" transform="translate(-0.5,-1.43)" /><path d="m 0.572,0 h 1.29 V 3.6 A 0.286,0.286 0 0 1 1.576,3.886 H 0.286 A 0.286,0.286 0 0 1 0,3.605 V 0.57 A 0.572,0.572 0 0 1 0.572,0 Z" fill="#999999" id="az17-path34404" /><path d="m 0.572,0 h 1.29 V 3.6 A 0.286,0.286 0 0 1 1.576,3.886 H 0.286 A 0.286,0.286 0 0 1 0,3.605 V 0.57 A 0.572,0.572 0 0 1 0.572,0 Z" fill="#999999" opacity="0.5" id="az17-path34406" /><path d="m 15.138,0 h 1.29 A 0.572,0.572 0 0 1 17,0.57 v 3.035 a 0.286,0.286 0 0 1 -0.286,0.286 h -1.29 A 0.286,0.286 0 0 1 15.138,3.605 Z" fill="#999999" id="az17-path34410" /><path d="m 15.138,0 h 1.29 A 0.572,0.572 0 0 1 17,0.57 v 3.035 a 0.286,0.286 0 0 1 -0.286,0.286 h -1.29 A 0.286,0.286 0 0 1 15.138,3.605 Z" fill="#999999" opacity="0.5" id="az17-path34412" /><path d="M 17,0.567 V 1.814 H 0 V 0.567 A 0.567,0.567 0 0 1 0.567,0 h 15.87 A 0.567,0.567 0 0 1 17,0.567 Z" fill="#949494" id="az17-path34416" /><path d="m 0.286,11.249 h 1.29 a 0.286,0.286 0 0 1 0.286,0.286 v 3.6 H 0.572 A 0.572,0.572 0 0 1 0,14.57 v -3.035 a 0.286,0.286 0 0 1 0.286,-0.286 z" fill="#999999" id="az17-path34418" /><path d="m 0.286,11.249 h 1.29 a 0.286,0.286 0 0 1 0.286,0.286 v 3.6 H 0.572 A 0.572,0.572 0 0 1 0,14.57 v -3.035 a 0.286,0.286 0 0 1 0.286,-0.286 z" fill="#999999" opacity="0.5" id="az17-path34420" /><path d="m 15.424,11.249 h 1.29 A 0.286,0.286 0 0 1 17,11.535 v 3.035 a 0.572,0.572 0 0 1 -0.572,0.572 h -1.29 v -3.6 a 0.286,0.286 0 0 1 0.286,-0.293 z" fill="#999999" id="az17-path34424" /><path d="m 15.424,11.249 h 1.29 A 0.286,0.286 0 0 1 17,11.535 v 3.035 a 0.572,0.572 0 0 1 -0.572,0.572 h -1.29 v -3.6 a 0.286,0.286 0 0 1 0.286,-0.293 z" fill="#999999" opacity="0.5" id="az17-path34426" /><path d="m 0,14.573 v -1.247 h 17 v 1.247 A 0.567,0.567 0 0 1 16.433,15.14 H 0.567 A 0.567,0.567 0 0 1 0,14.573 Z" fill="#949494" id="az17-path34430" /></svg>',
51
+ "microsoft.sql/servers":
52
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az18-b1cfe86c-f00b-4507-bce2-50d07e45fe96" width="17.1" height="17.040001" viewBox="0 0 17.1 17.040001" version="1.1"><defs id="az18-defs15769"><linearGradient id="az18-b39dcf83-187e-4c64-98df-431bb60809d2" x1="0.5" y1="10.04" x2="13.18" y2="10.04" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#005ba1" id="az18-stop15754" /><stop offset="0.07" stop-color="#0060a9" id="az18-stop15756" /><stop offset="0.36" stop-color="#0071c8" id="az18-stop15758" /><stop offset="0.52" stop-color="#0078d4" id="az18-stop15760" /><stop offset="0.64" stop-color="#0074cd" id="az18-stop15762" /><stop offset="0.82" stop-color="#006abb" id="az18-stop15764" /><stop offset="1" stop-color="#005ba1" id="az18-stop15766" /></linearGradient></defs><title id="az18-title15771">Icon-databases-132</title><path d="M 6.34,4.6 C 2.84,4.6 0,3.6 0,2.3 v 12.21 c 0,1.26 2.79,2.28 6.25,2.3 h 0.09 c 3.5,0 6.34,-1 6.34,-2.3 V 2.3 c 0,1.27 -2.84,2.3 -6.34,2.3 z" id="az18-path15773" style="fill:url(#az18-b39dcf83-187e-4c64-98df-431bb60809d2)" /><path d="M 12.68,2.3 C 12.68,3.57 9.84,4.6 6.34,4.6 2.84,4.6 0,3.57 0,2.3 0,1.03 2.84,0 6.34,0 c 3.5,0 6.34,1 6.34,2.3" id="az18-path15775" style="fill:#e8e8e8" /><path d="M 11.2,2.11 C 11.2,2.92 9.02,3.57 6.34,3.57 3.66,3.57 1.5,2.92 1.5,2.11 1.5,1.3 3.66,0.65 6.34,0.65 c 2.68,0 4.86,0.66 4.86,1.46" id="az18-path15777" style="fill:#50e6ff" /><path d="M 6.34,2.45 A 12,12 0 0 0 2.5,3 11.25,11.25 0 0 0 6.35,3.57 11.25,11.25 0 0 0 10.2,3 12,12 0 0 0 6.34,2.45 Z" id="az18-path15779" style="fill:#198ab3" /><path d="M 10.24,10.61 V 7.23 H 9.31 v 4.14 h 2.46 V 10.61 Z M 3.09,8.94 A 1.92,1.92 0 0 1 2.58,8.63 0.44,0.44 0 0 1 2.5,8.31 0.38,0.38 0 0 1 2.66,8 0.72,0.72 0 0 1 3.08,7.89 a 1.67,1.67 0 0 1 1,0.29 V 7.32 a 2.67,2.67 0 0 0 -1,-0.16 1.74,1.74 0 0 0 -1.2,0.35 1.13,1.13 0 0 0 -0.41,0.9 c 0,0.51 0.32,0.91 1,1.21 A 2.9,2.9 0 0 1 3.08,9.98 0.4,0.4 0 0 1 3.24,10.3 0.38,0.38 0 0 1 3.08,10.61 0.75,0.75 0 0 1 2.63,10.73 1.6,1.6 0 0 1 1.5,10.28 v 0.93 A 2.29,2.29 0 0 0 2.57,11.44 2,2 0 0 0 3.75,11.12 1.1,1.1 0 0 0 4.18,10.2 1,1 0 0 0 3.93,9.5 2.42,2.42 0 0 0 3.09,8.94 Z m 5.2,1.57 A 2.4,2.4 0 0 0 8.62,9.24 2.32,2.32 0 0 0 8.37,8.14 1.81,1.81 0 0 0 7.67,7.39 2,2 0 0 0 6.67,7.13 2.18,2.18 0 0 0 5.58,7.4 1.87,1.87 0 0 0 4.85,8.17 2.41,2.41 0 0 0 4.59,9.32 a 2.26,2.26 0 0 0 0.24,1.05 1.83,1.83 0 0 0 0.68,0.75 2,2 0 0 0 1,0.29 l 0.85,1 H 8.55 L 7.35,11.3 A 1.81,1.81 0 0 0 8.29,10.51 Z M 7.36,10.25 a 1,1 0 0 1 -1.53,0 1.51,1.51 0 0 1 -0.28,-1 1.48,1.48 0 0 1 0.29,-1 0.92,0.92 0 0 1 0.78,-0.37 0.89,0.89 0 0 1 0.75,0.37 1.62,1.62 0 0 1 0.27,1 1.46,1.46 0 0 1 -0.28,1.03 z" id="az18-path15781" style="fill:#f2f2f2" /><path d="m 14.31,17 0.24,-0.79 0.47,-0.27 0.81,0.36 0.52,-0.53 V 15.71 L 15.98,15 16.2,14.5 17.01,14.21 H 17.1 V 13.48 H 17 l -0.8,-0.24 -0.26,-0.46 0.35,-0.82 -0.53,-0.51 H 15.7 l -0.71,0.36 -0.49,-0.3 -0.32,-0.89 h -0.74 v 0.11 l -0.24,0.79 -0.51,0.22 -0.87,-0.4 -0.51,0.53 0.05,0.1 0.38,0.74 -0.2,0.51 -0.94,0.29 v 0.74 h 0.11 l 0.79,0.24 0.22,0.51 -0.39,0.86 0.53,0.52 0.09,-0.05 0.74,-0.38 0.51,0.2 0.34,0.89 h 0.73 z m -1.2,-2.36 a 1.0642486,1.0642486 0 1 1 1.49,-1.52 1.0642486,1.0642486 0 0 1 -1.49,1.52 z" id="az18-path15783" style="fill:#949494" /></svg>',
53
+ "microsoft.storage/storageaccounts":
54
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az19-f2f04349-8aee-4413-84c9-a9053611b319" width="17" height="13.67" viewBox="0 0 17 13.67" version="1.1"><defs id="az19-defs75527"><linearGradient id="az19-ad4c4f96-09aa-4f91-ba10-5cb8ad530f74" x1="9" y1="15.83" x2="9" y2="5.79" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#b3b3b3" id="az19-stop75520" /><stop offset="0.26" stop-color="#c1c1c1" id="az19-stop75522" /><stop offset="1" stop-color="#e6e6e6" id="az19-stop75524" /></linearGradient></defs><title id="az19-title75529">Icon-storage-86</title><path d="m 0,3.62 h 17 v 9.48 a 0.57,0.57 0 0 1 -0.57,0.57 H 0.57 A 0.57,0.57 0 0 1 0,13.1 Z" id="az19-path75531" style="fill:url(#az19-ad4c4f96-09aa-4f91-ba10-5cb8ad530f74)" /><path d="M 0.57,0 H 16.43 A 0.57,0.57 0 0 1 17,0.57000001 V 3.62 H 0 V 0.56000001 A 0.57,0.57 0 0 1 0.57,0 Z" id="az19-path75533" style="fill:#37c2b1" /><path d="m 2.31,4.72 h 12.37 a 0.27,0.27 0 0 1 0.26,0.27 v 1.4 A 0.27,0.27 0 0 1 14.68,6.66 H 2.31 A 0.27,0.27 0 0 1 2.05,6.39 V 4.99 A 0.27,0.27 0 0 1 2.31,4.72 Z" id="az19-path75535" style="fill:#ffffff" /><path d="m 2.32,7.51 h 12.37 a 0.27,0.27 0 0 1 0.26,0.27 V 9.19 A 0.27,0.27 0 0 1 14.69,9.46 H 2.32 A 0.27,0.27 0 0 1 2.06,9.19 V 7.83 A 0.27,0.27 0 0 1 2.32,7.51 Z" id="az19-path75537" style="fill:#37c2b1" /><path d="m 2.32,10.33 h 12.37 a 0.27,0.27 0 0 1 0.26,0.27 v 1.41 a 0.27,0.27 0 0 1 -0.26,0.27 H 2.32 A 0.27,0.27 0 0 1 2.06,12.01 V 10.6 a 0.27,0.27 0 0 1 0.26,-0.27 z" id="az19-path75539" style="fill:#258277" /></svg>',
55
+ "microsoft.web/serverfarms":
56
+ '<svg xmlns="http://www.w3.org/2000/svg" id="az20-fca2105f-c039-4f34-bd65-8ab95d4ecdb9" width="16.84009" height="17.001196" viewBox="0 0 16.84009 17.001196" version="1.1"><defs id="az20-defs1242"><linearGradient id="az20-a773af38-43e4-4fd2-9485-f8aac63ca91b" x1="5.5700002" y1="17.5" x2="5.5700002" y2="0.5" gradientUnits="userSpaceOnUse"><stop offset="0.05" stop-color="#949494" id="az20-stop1226" /><stop offset="0.36" stop-color="#979797" id="az20-stop1228" /><stop offset="0.54" stop-color="#9f9f9f" id="az20-stop1230" /><stop offset="0.69" stop-color="#adadad" id="az20-stop1232" /><stop offset="0.73" stop-color="#b3b3b3" id="az20-stop1234" /></linearGradient><linearGradient id="az20-b4779ae6-74a5-486d-8aad-cd011859785a" x1="10.56" y1="6.02" x2="10.56" y2="19.709999" gradientUnits="userSpaceOnUse"><stop offset="0.18" stop-color="#5ea0ef" id="az20-stop1237" /><stop offset="1" stop-color="#0078d4" id="az20-stop1239" /></linearGradient></defs><title id="az20-title1244">Icon-web-46</title><path d="m 9.9800893,16.430091 a 0.56,0.56 0 0 1 -0.57,0.57 H 0.56008929 a 0.56,0.56 0 0 1 -0.55999999704,-0.57 V 0.57009092 A 0.56,0.56 0 0 1 0.56008929,9.0924122e-5 H 9.4200893 a 0.56,0.56 0 0 1 0.57,0.569999995878 z" id="az20-path1246" style="fill:url(#az20-a773af38-43e4-4fd2-9485-f8aac63ca91b)" /><path d="m 1.4200893,5.9600909 a 1.08,1.08 0 0 1 1.13,-1.08 h 5 a 1.08,1.08 0 0 1 1.05,1.08 v 0 a 1.08,1.08 0 0 1 -1.08,1.09 h -5 a 1.09,1.09 0 0 1 -1.1,-1.09 z" id="az20-path1248" style="fill:#003067" /><path d="m 1.4200893,2.7400909 a 1.09,1.09 0 0 1 1.13,-1.09 h 5 a 1.08,1.08 0 0 1 1.05,1.09 v 0 a 1.08,1.08 0 0 1 -1.08,1.08 h -5 a 1.08,1.08 0 0 1 -1.1,-1.08 z" id="az20-path1250" style="fill:#003067" /><circle cx="2.5900893" cy="2.7400908" r="0.73000002" id="az20-circle1252" style="fill:#50e6ff" /><circle cx="2.5900893" cy="5.9600911" r="0.73000002" id="az20-circle1254" style="fill:#50e6ff" /><path d="m 16.840089,13.880091 a 3.12,3.12 0 0 0 -2.67,-3 3.93,3.93 0 0 0 -4,-3.8000001 4,4 0 0 0 -3.8299997,2.66 3.7,3.7 0 0 0 -3.22,3.5900001 3.77,3.77 0 0 0 3.86,3.67 h 0.34 6.2599997 0.17 a 3.15,3.15 0 0 0 3.09,-3.12 z" id="az20-path1256" style="fill:url(#az20-b4779ae6-74a5-486d-8aad-cd011859785a)" /></svg>',
57
+ "microsoft.web/sites":
58
+ '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="az21-b70acf0a-34b4-4bdf-9024-7496043ff915" width="16.967587" height="16.971489" viewBox="0 0 16.967587 16.971489" version="1.1"><defs id="az21-defs3367"><radialGradient id="az21-e2cf8746-c9a8-4eee-86c2-4951983c6032" cx="13428.81" cy="3518.8601" r="56.669998" gradientTransform="matrix(0.15,0,0,0.15,-2005.33,-518.83)" gradientUnits="userSpaceOnUse"><stop offset="0.18" stop-color="#5ea0ef" id="az21-stop3347" /><stop offset="1" stop-color="#0078d4" id="az21-stop3349" /></radialGradient><linearGradient id="az21-bdd213dd-d313-473c-8ff4-0133fd3a9033" x1="4.4000001" y1="11.48" x2="4.3699999" y2="7.5300002" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ccc" id="az21-stop3352" /><stop offset="1" stop-color="#fcfcfc" id="az21-stop3354" /></linearGradient><linearGradient id="az21-afcc63c5-3649-4476-a742-bcb53a569f3c" x1="10.13" y1="15.45" x2="10.13" y2="11.9" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ccc" id="az21-stop3357" /><stop offset="1" stop-color="#fcfcfc" id="az21-stop3359" /></linearGradient><linearGradient id="az21-bd873f0b-9954-4aa5-a3df-9f4c64e8729d" x1="14.18" y1="11.15" x2="14.18" y2="7.3800001" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ccc" id="az21-stop3362" /><stop offset="1" stop-color="#fcfcfc" id="az21-stop3364" /></linearGradient><linearGradient xlink:href="#az21-bdd213dd-d313-473c-8ff4-0133fd3a9033" id="az21-linearGradient3401" gradientUnits="userSpaceOnUse" x1="4.4000001" y1="11.48" x2="4.3699999" y2="7.5300002" /><linearGradient xlink:href="#az21-afcc63c5-3649-4476-a742-bcb53a569f3c" id="az21-linearGradient3403" gradientUnits="userSpaceOnUse" x1="10.13" y1="15.45" x2="10.13" y2="11.9" /><linearGradient xlink:href="#az21-bdd213dd-d313-473c-8ff4-0133fd3a9033" id="az21-linearGradient3405" gradientUnits="userSpaceOnUse" x1="4.4000001" y1="11.48" x2="4.3699999" y2="7.5300002" /><linearGradient xlink:href="#az21-afcc63c5-3649-4476-a742-bcb53a569f3c" id="az21-linearGradient3407" gradientUnits="userSpaceOnUse" x1="10.13" y1="15.45" x2="10.13" y2="11.9" /></defs><title id="az21-title3369">Icon-web-41</title><path id="az21-ee75dd06-1aca-4f76-9d11-d05a284020ad" d="M 13.713088,15.188401 A 8.5030877,8.5030877 0 0 1 3.2930877,1.7484011 l 0.09,-0.06 A 8.5,8.5 0 0 1 13.713088,15.188401" style="fill:url(#az21-e2cf8746-c9a8-4eee-86c2-4951983c6032)" /><path d="m 6.1930877,6.6984011 a 13,13 0 0 1 8.9100003,-3.58 8.47,8.47 0 0 0 -1.49,-1.44 14.34,14.34 0 0 0 -4.6900003,1.1 12.54,12.54 0 0 0 -4.08,2.82 2.76,2.76 0 0 1 1.35,1.1 z" id="az21-path3372" style="opacity:0.6;fill:#ffffff" /><path d="m 1.9830877,10.118401 a 17.86,17.86 0 0 0 -0.83,2.62 7.82,7.82 0 0 0 0.62,0.92 c 0.18,0.23 0.35,0.44 0.55,0.65 a 17.94,17.94 0 0 1 1.08,-3.47 2.76,2.76 0 0 1 -1.42,-0.72 z" id="az21-path3374" style="opacity:0.6;fill:#ffffff" /><path d="m 2.9630877,5.5784011 a 12,12 0 0 1 -0.69,-2.94 8.15,8.15 0 0 0 -1.1,1.45 12.69,12.69 0 0 0 0.57,2.38 2.69,2.69 0 0 1 1.22,-0.89 z" id="az21-path3376" style="opacity:0.55;fill:#f2f2f2" /><circle cx="3.8830879" cy="8.1484013" r="2.73" id="az21-circle3378" style="fill:url(#az21-linearGradient3401)" /><path d="m 7.8630877,13.138401 a 1.77,1.77 0 0 1 0.54,-1.27 11.88,11.88 0 0 1 -2.53,-1.86 2.74,2.74 0 0 1 -1.49,0.83 13.1,13.1 0 0 0 1.45,1.28 12.12,12.12 0 0 0 2.05,1.25 1.79,1.79 0 0 1 -0.02,-0.23 z" id="az21-path3380" style="opacity:0.55;fill:#f2f2f2" /><path d="m 14.163088,13.348401 a 12,12 0 0 1 -2.76,-0.32 0.41,0.41 0 0 1 0,0.11 1.75,1.75 0 0 1 -0.51,1.24 13.69,13.69 0 0 0 3.42,0.24 8.21,8.21 0 0 0 1.19,-1.34 11.5,11.5 0 0 1 -1.34,0.07 z" id="az21-path3382" style="opacity:0.55;fill:#f2f2f2" /><circle cx="9.6330881" cy="13.138401" r="1.78" id="az21-circle3384" style="fill:url(#az21-linearGradient3403)" /><path d="m 11.823088,8.3984011 a 1.83,1.83 0 0 1 0.61,-1 25.5,25.5 0 0 1 -4.4600003,-4.14 16.91,16.91 0 0 1 -2,-2.92000003 7.64,7.64 0 0 0 -1.09,0.42 18.14,18.14 0 0 0 2.15,3.18000003 26.44,26.44 0 0 0 4.7900003,4.46 z" id="az21-path3386" style="opacity:0.7;fill:#f2f2f2" /><circle cx="13.683088" cy="8.7384014" r="1.89" id="az21-circle3388" style="fill:url(#az21-bd873f0b-9954-4aa5-a3df-9f4c64e8729d)" /><path d="m 16.853088,10.008401 -0.35,-0.1699999 v 0 l -0.3,-0.16 h -0.06 l -0.26,-0.21 h -0.07 l -0.31,-0.2 a 1.76,1.76 0 0 1 -0.64,0.9199999 c 0.12,0.08 0.25,0.15 0.38,0.22 l 0.08,0.05 0.35,0.19 v 0 l 0.86,0.45 v 0 a 8.63,8.63 0 0 0 0.29,-1.1099999 z" id="az21-path3390" style="opacity:0.55;fill:#f2f2f2" /><circle cx="3.8830879" cy="8.1484013" r="2.73" id="az21-circle3392" style="fill:url(#az21-linearGradient3405)" /><circle cx="9.6330881" cy="13.138401" r="1.78" id="az21-circle3394" style="fill:url(#az21-linearGradient3407)" /></svg>',
59
+ }
60
+ # fmt: on
61
+
62
+ # same artwork, older ARM types
63
+ _ALIASES = {
64
+ "microsoft.dbforpostgresql/servers": "microsoft.dbforpostgresql/flexibleservers",
65
+ "microsoft.dbformysql/servers": "microsoft.dbformysql/flexibleservers",
66
+ }
67
+
68
+
69
+ def icon_for(arm_type):
70
+ """The inline SVG for an ARM type, or None (caller falls back to a plain box)."""
71
+ t = (arm_type or "").lower()
72
+ return AZURE_SVG.get(t) or AZURE_SVG.get(_ALIASES.get(t, ""))