Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3a1ad8c08b | ||
|
|
edc855dcb5 | ||
|
|
59c2eeb536 | ||
|
|
a7f2b1fddc | ||
|
|
1f4071af93 | ||
|
|
dbdb4a53c7 | ||
|
|
2659ab2c35 | ||
|
|
0c3f6712b4 | ||
|
|
9122cab6c1 | ||
|
|
2516b1952c | ||
|
|
f2bb785037 | ||
|
|
fc938a069b | ||
|
|
4fd41991db | ||
|
|
cfc4bb371a | ||
|
|
ce59e84e13 | ||
|
|
b5e2bb1561 | ||
|
|
3003ed1465 | ||
|
|
09774a3a56 | ||
|
|
369fcaa512 | ||
|
|
7b7d3d676f | ||
|
|
d1186b2acc | ||
|
|
bd58196817 | ||
|
|
b3a822df8f | ||
|
|
ba4e0c945d | ||
|
|
f6725a37dd | ||
|
|
8e96c4c2e8 | ||
|
|
035a104957 | ||
|
|
54c0b383cb | ||
|
|
7c0384a8d4 | ||
|
|
ccc8974d92 | ||
|
|
0090ff3722 | ||
|
|
2c727c6bd2 | ||
|
|
13b0caef4f |
No files matched your search
@@ -18,7 +18,7 @@ jobs:
|
||||
ref: "gh-pages"
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: 3.8
|
||||
python-version: 3.9
|
||||
- name: Merge changes from 3.0 branch
|
||||
run: |
|
||||
git config user.name github-actions
|
||||
|
||||
@@ -1,5 +1,33 @@
|
||||
# Change Log
|
||||
|
||||
## 3.0.4 25/02/2025
|
||||
|
||||
* Require minimum 8 characters for passwords
|
||||
* Bundle web-ui v3.0.4
|
||||
* Upgrade dependencies
|
||||
* Fix auto idle-pc for IOS templates
|
||||
* Update schemas to add constraints for values like ram, nvram etc.
|
||||
* Install custom symbols. Fixes #2492
|
||||
* Fix VMware add ubridge connection. Fixes #2490
|
||||
|
||||
## 3.0.3 22/01/2025
|
||||
|
||||
* Bundle web-ui v3.0.3
|
||||
* Refactor command line arguments parsing
|
||||
* Fix capture on IOU/IOL links. Fixes #2477
|
||||
* Use Python 3.9 to publish API documentation
|
||||
* Upgrade dependencies
|
||||
|
||||
## 2.2.53 21/01/2025
|
||||
|
||||
* Bundle web-ui v2.2.53
|
||||
* Add more information when patching .vbox file. Ref https://github.com/GNS3/gns3-gui/issues/3542
|
||||
* Increase timeout to run compute HTTP queries. Fixes #2461
|
||||
* Use 'allow_methods="*"' in aiohttp_cors.ResourceOptions(). Fixes #2459
|
||||
* Upgrade dependencies
|
||||
* Update remote-install.sh to support a custom repository and the deb822 source format
|
||||
* Fix: do not use the iourc file if IOU licence check is not enabled
|
||||
|
||||
## 3.0.2 03/01/2025
|
||||
|
||||
* Bundle web-ui v3.0.2
|
||||
@@ -31,7 +59,6 @@
|
||||
## 2.2.52 02/12/2024
|
||||
|
||||
* Bundle web-ui v2.2.52
|
||||
* Sync appliances
|
||||
* Remove restrictions based on file extension when listing images and fix ELF header checks
|
||||
* Fix use project name instead of ID for fast duplication when running local server. Fixes #2446
|
||||
* Overwrite user resources when the originals have changed.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
pytest==8.3.3
|
||||
pytest==8.3.4
|
||||
flake8==7.1.1
|
||||
pytest-timeout==2.3.1
|
||||
pytest-asyncio==0.21.2
|
||||
pytest-asyncio==0.25.2
|
||||
requests==2.32.3
|
||||
httpx==0.27.2 # version 0.24.1 is required by httpx_ws
|
||||
httpx_ws==0.6.2
|
||||
httpx==0.28.1
|
||||
httpx_ws==0.7.1
|
||||
@@ -284,7 +284,7 @@ async def start_iou_node_capture(
|
||||
"""
|
||||
|
||||
pcap_file_path = os.path.join(node.project.capture_working_directory(), node_capture_data.capture_file_name)
|
||||
await node.start_capture(adapter_number, pcap_file_path)
|
||||
await node.start_capture(adapter_number, port_number, pcap_file_path)
|
||||
return {"pcap_file_path": str(pcap_file_path)}
|
||||
|
||||
|
||||
|
||||
@@ -188,7 +188,7 @@ async def vmware_vms(compute_id: Union[str, UUID]) -> List[schemas.ComputeVMware
|
||||
|
||||
|
||||
@router.post("/{compute_id}/dynamips/auto_idlepc")
|
||||
async def dynamips_autoidlepc(compute_id: Union[str, UUID], auto_idle_pc: schemas.AutoIdlePC) -> str:
|
||||
async def dynamips_autoidlepc(compute_id: Union[str, UUID], auto_idle_pc: schemas.AutoIdlePC):
|
||||
"""
|
||||
Find a suitable Idle-PC value for a given IOS image. This may take a few minutes.
|
||||
"""
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"appliance_id": "edbaa01e-2032-4ee2-bb9f-dd5c4d84c270",
|
||||
"name": "Alpine Cloud Guest",
|
||||
"category": "guest",
|
||||
"description": "Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox.",
|
||||
"vendor_name": "Alpine Linux Development Team",
|
||||
"vendor_url": "http://alpinelinux.org",
|
||||
"vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Alpine Linux.png",
|
||||
"documentation_url": "http://wiki.alpinelinux.org",
|
||||
"product_name": "Alpine Linux",
|
||||
"product_url": "https://www.alpinelinux.org/cloud/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "\nUsername: alpine\nPassword: alpine",
|
||||
"port_name_format": "Ethernet{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 1,
|
||||
"ram": 1024,
|
||||
"hda_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"boot_priority": "c",
|
||||
"kvm": "require",
|
||||
"options": "-nographic"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "generic_alpine-3.21.2-x86_64-bios-cloudinit-r0.qcow2",
|
||||
"version": "3.21.2",
|
||||
"md5sum": "b40825dff2867e0ffaffbc4c87674462",
|
||||
"filesize": 189726720,
|
||||
"download_url": "https://www.alpinelinux.org/cloud/",
|
||||
"direct_download_url": "https://dl-cdn.alpinelinux.org/alpine/v3.21/releases/cloud/generic_alpine-3.21.2-x86_64-bios-cloudinit-r0.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "alpine-cloud-init-data.iso",
|
||||
"version": "1.0",
|
||||
"md5sum": "b1b4b16cc3bf0250c0fa377c19c97683",
|
||||
"filesize": 374784,
|
||||
"download_url": "https://github.com/GNS3/gns3-registry/tree/master/cloud-init/alpine-cloud",
|
||||
"direct_download_url": "https://github.com/GNS3/gns3-registry/raw/master/cloud-init/alpine-cloud/alpine-cloud-init-data.iso"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "3.21.2",
|
||||
"images": {
|
||||
"hda_disk_image": "generic_alpine-3.21.2-x86_64-bios-cloudinit-r0.qcow2",
|
||||
"cdrom_image": "alpine-cloud-init-data.iso"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -5,9 +5,9 @@
|
||||
"description": "The Adaptive Security Virtual Appliance is a virtualized network security solution based on the market-leading Cisco ASA 5500-X Series firewalls. It supports both traditional and next-generation software-defined network (SDN) and Cisco Application Centric Infrastructure (ACI) environments to provide policy enforcement and threat inspection across heterogeneous multisite environments.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "http://www.cisco.com/c/en/us/support/security/virtual-adaptive-security-appliance-firewall/products-installation-guides-list.html",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/asav/",
|
||||
"product_name": "ASAv",
|
||||
"product_url": "http://www.cisco.com/c/en/us/products/security/virtual-adaptive-security-appliance-firewall/index.html",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
"description": "The Cisco Catalyst 8000V Edge Software is a virtual, form-factor router deployed on a virtual machine (VM) running on an x86 server hardware.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "https://www.cisco.com/c/en/us/td/docs/routers/C8000V/Configuration/c8000v-installation-configuration-guide.html",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/cat-8000v/",
|
||||
"product_name": "c8000v",
|
||||
"product_url": "https://www.cisco.com/c/en/us/support/routers/catalyst-8000v-edge-software/series.html",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
@@ -24,6 +24,13 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "c8000v-universalk9_8G_serial.17.15.01a.qcow2",
|
||||
"version": "17.15.01a 8G",
|
||||
"md5sum": "41efa0aedd67f1f57cde1263c79d9ff6",
|
||||
"filesize": 1846280192,
|
||||
"download_url": "https://software.cisco.com/download/home/286327102/type/282046477/release/IOSXE-17.15.1a"
|
||||
},
|
||||
{
|
||||
"filename": "c8000v-universalk9_8G_serial.17.09.04a.qcow2",
|
||||
"version": "17.09.04a 8G",
|
||||
@@ -68,6 +75,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "17.15.01a 8G",
|
||||
"images": {
|
||||
"hda_disk_image": "c8000v-universalk9_8G_serial.17.15.01a.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "17.09.04a 8G",
|
||||
"images": {
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
"description": "Cisco IOS-XE 9000v. This appliance requires 16GB of memory to run! Recommend 2 or more vCPUs for faster boot performance",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/2-5/#!cml-release-notes",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/cat-9000v/",
|
||||
"product_name": "Cisco CAT IOS-XE 9000v",
|
||||
"product_url": "http://virl.cisco.com/",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"maintainer": "GNS3 Team",
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
"description": "The Cisco Cloud Services Router 1000V (CSR 1000V) is a router and network services platform in virtual form factor that is intended for deployment in cloud and virtual data centers. It is optimized to serve as a single-tenant or multitenant WAN gateway. Using proven, industry-leading Cisco IOS\u00ae XE Software networking and security features, the CSR 1000V enables enterprises to transparently extend their WANs into external provider-hosted clouds and cloud providers to offer their tenants enterprise-class networking services.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "http://www.cisco.com/c/en/us/support/routers/cloud-services-router-1000v-series/products-installation-and-configuration-guides-list.html",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/csr-1000v/",
|
||||
"product_name": "CSR1000v",
|
||||
"product_url": "http://www.cisco.com/c/en/us/support/routers/cloud-services-router-1000v-series/tsd-products-support-series-home.html",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
@@ -169,7 +169,7 @@
|
||||
"version": "16.4.1",
|
||||
"md5sum": "3428e0dcf5132a1b11ab7696d8c61b2e",
|
||||
"filesize": 1261961216,
|
||||
"download_url": "https://virl.mediuscorp.com/my-account/"
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
},
|
||||
{
|
||||
"filename": "csr1000v-universalk9.16.6.1.qcow2",
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
"description": "Cisco Virtual IOS allows user to run IOS on a standard computer.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/iol/",
|
||||
"product_name": "IOSv",
|
||||
"product_url": "http://virl.cisco.com/",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
@@ -25,12 +26,11 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "IOSv_startup_config.img",
|
||||
"version": "1",
|
||||
"md5sum": "bc605651c4688276f81fd59dcf5cc786",
|
||||
"filesize": 1048576,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files",
|
||||
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/IOSv_startup_config.img/download"
|
||||
"filename": "vios-adventerprisek9-m.spa.159-3.m9.qcow2",
|
||||
"version": "15.9(3)M9",
|
||||
"md5sum": "01b707a2e33185d6d33e0255ced45d23",
|
||||
"filesize": 57323008,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.spa.159-3.m8.qcow2",
|
||||
@@ -101,9 +101,24 @@
|
||||
"md5sum": "79f613ac3b179d5a64520730925130b2",
|
||||
"filesize": 127926272,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
},
|
||||
{
|
||||
"filename": "IOSv_startup_config.img",
|
||||
"version": "1",
|
||||
"md5sum": "bc605651c4688276f81fd59dcf5cc786",
|
||||
"filesize": 1048576,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files",
|
||||
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/IOSv_startup_config.img/download"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "15.9(3)M9",
|
||||
"images": {
|
||||
"hda_disk_image": "vios-adventerprisek9-m.spa.159-3.m9.qcow2",
|
||||
"hdb_disk_image": "IOSv_startup_config.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "15.9(3)M8",
|
||||
"images": {
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
"description": "Cisco Virtual IOS L2 allows user to run a IOS switching image on a standard computer.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/iosvl2/",
|
||||
"product_name": "IOSvL2",
|
||||
"product_url": "http://virl.cisco.com/",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
"description": "IOS XRv supports the control plane features introduced in Cisco IOS XR.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "http://www.cisco.com/c/en/us/td/docs/ios_xr_sw/ios_xrv/release/notes/xrv-rn.html",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/ios-xrv/",
|
||||
"product_name": "IOS XRv",
|
||||
"product_url": "http://virl.cisco.com/",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
"description": "IOS XRv 9000 (aka Sunstone) is the 1st VM released running the 64-bit IOS XR operating system as used on the NCS-6xxx platform. This appliance requires 4 vCPUs and 16GB of memory to run!",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "http://www.cisco.com/c/en/us/td/docs/ios_xr_sw/ios_xrv/release/notes/xrv-rn.html",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/ios-xrv-9000/",
|
||||
"product_name": "IOS XRv 9000",
|
||||
"product_url": "http://virl.cisco.com/",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"maintainer": "GNS3 Team",
|
||||
@@ -26,92 +26,35 @@
|
||||
"options": "-smp 4 -cpu host"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-24.3.1.qcow2",
|
||||
"version": "24.3.1",
|
||||
"md5sum": "bd047c457e29952f265583f299bab845",
|
||||
"filesize": 1704658432,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-7.7.1.qcow2",
|
||||
"version": "7.7.1",
|
||||
"md5sum": "682fff40d2ff373d8da3342906553b54",
|
||||
"filesize": 1643905024,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/7.1.1"
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-7.1.1.qcow2",
|
||||
"version": "7.1.1",
|
||||
"md5sum": "dcf241e3f8df0151fec2c7bfac9d96ac",
|
||||
"filesize": 1443758080,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/7.1.1"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-7.0.1.qcow2",
|
||||
"version": "7.0.1",
|
||||
"md5sum": "ca2817767fa546e303c3c536e211d33e",
|
||||
"filesize": 1446445056,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/7.0.1"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-6.6.2.qcow2",
|
||||
"version": "6.6.2",
|
||||
"md5sum": "fd630be3c449e625073286a3a66021ae",
|
||||
"filesize": 1452998656,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.6.2"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-6.5.3.qcow2",
|
||||
"version": "6.5.3",
|
||||
"md5sum": "71f018e3ea895b663129090fb4f0ff40",
|
||||
"filesize": 1205075968,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.5.3"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-6.5.2.qcow2",
|
||||
"version": "6.5.2",
|
||||
"md5sum": "506d9e23dda7365c99dd82b613859697",
|
||||
"filesize": 1205010432,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.5.1"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-6.5.1.qcow2",
|
||||
"version": "6.5.1",
|
||||
"md5sum": "730868e7cd46de9aa2e950899c7f9498",
|
||||
"filesize": 1208811520,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.5.1"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-6.4.2.qcow2",
|
||||
"version": "6.4.2",
|
||||
"md5sum": "6958763192c7bb59a1b8049d377de1b4",
|
||||
"filesize": 1311703040,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.4.2"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-6.4.1.qcow2",
|
||||
"version": "6.4.1",
|
||||
"md5sum": "9c56b684e307706005a503e289cb9317",
|
||||
"filesize": 1304887296,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.4.1"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-6.2.25.qcow2",
|
||||
"version": "6.2.25",
|
||||
"md5sum": "3f54e62b6f7cedfb2607233e5e465766",
|
||||
"filesize": 1190723584,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x.qcow2-6.0.1",
|
||||
"version": "6.0.1",
|
||||
"md5sum": "e20d046807075046c35b6ce7d6766a7f",
|
||||
"filesize": 2109210624,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x.qcow2-6.0.0",
|
||||
"version": "6.0.0",
|
||||
"md5sum": "64c538c34252aaeb4ed1ddb93d6803fd",
|
||||
"filesize": 2572943360,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "24.3.1",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-24.3.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.7.1",
|
||||
"images": {
|
||||
@@ -123,66 +66,6 @@
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-7.1.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.1",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-7.0.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.6.2",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-6.6.2.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.5.3",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-6.5.3.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.5.2",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-6.5.2.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.5.1",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-6.5.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.2",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-6.4.2.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.1",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-6.4.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.2.25",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-6.2.25.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.0.1",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x.qcow2-6.0.1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.0.0",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x.qcow2-6.0.0"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -5,7 +5,9 @@
|
||||
"description": "Cisco IOS on UNIX Layer 2 image.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/iol-l2/",
|
||||
"product_name": "Cisco IOU L2",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"maintainer": "GNS3 Team",
|
||||
|
||||
@@ -5,7 +5,9 @@
|
||||
"description": "Cisco IOS on UNIX Layer 3 image.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/iol/",
|
||||
"product_name": "Cisco IOU L3",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"maintainer": "GNS3 Team",
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
"description": "NXOSv is a reference platform for an implementation of the Cisco Nexus operating system, based on the Nexus 7000-series platforms, running as a full virtual machine on a hypervisor. This includes NXAPI and MPLS LDP support.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/nx-os/",
|
||||
"product_name": "NX-OSv",
|
||||
"product_url": "http://virl.cisco.com/",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
"description": "The NX-OSv 9000 is a virtual platform that is designed to simulate the control plane aspects of a network element running Cisco Nexus 9000 software. The NX-OSv 9000 shares the same software image running on Cisco Nexus 9000 hardware platform although no specific hardware emulation is implemented. When the software runs as a virtual machine, line card (LC) ASIC provisioning or any interaction from the control plane to hardware ASIC is handled by the NX-OSv 9000 software data plane.\nThe NX-OSv 9000 for the Cisco Nexus 9000 Series provides a useful tool to enable the devops model and rapidly test changes to the infrastructure or to infrastructure automation tools. This enables network simulations in large scale for customers to validate configuration changes on a simulated network prior to applying them on a production network. Some users have also expressed interest in using the simulation system for feature test ,verification, and automation tooling development and test simualtion prior to deployment. NX-OSv 9000 can be used as a programmability vehicle to validate software defined networks (SDNs) and Network Function Virtualization (NFV) based solutions.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "http://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus9000/sw/7-x/nx-osv/configuration/guide/b_NX-OSv_9000/b_NX-OSv_chapter_01.html",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/nx-os-9000/",
|
||||
"product_name": "NX-OSv 9000",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"availability": "service-contract",
|
||||
@@ -26,12 +27,33 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "nexus9500v64.10.5.1.F.qcow2",
|
||||
"version": "9500v 10.5.1.F",
|
||||
"md5sum": "2fa6fb4dd4c5e49d53896d60fa746e59",
|
||||
"filesize": 2388459520,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.5(1)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v64.10.5.1.F.qcow2",
|
||||
"version": "9300v 10.5.1.F",
|
||||
"md5sum": "2bbc767debbc7c1144eabe176ae67503",
|
||||
"filesize": 2388393984,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.5(1)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v64.10.3.1.F.qcow2",
|
||||
"version": "9500v 10.3.1.F",
|
||||
"md5sum": "41e3c1c0c003b13f1bf774f0d1873e87",
|
||||
"filesize": 2097510400,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.3(1)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v64.10.3.1.F.qcow2",
|
||||
"version": "9300v 10.3.1.F",
|
||||
"md5sum": "a6ffd2501a5791c11cee319943b912da",
|
||||
"filesize": 2097086464,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.1(1)"
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.3(1)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v64.10.1.1.qcow2",
|
||||
@@ -47,181 +69,6 @@
|
||||
"filesize": 1990983680,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.1(1)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v.9.3.13.qcow2",
|
||||
"version": "9500v 9.3.13",
|
||||
"md5sum": "bacf0f664ee34625c85a9f278b2466a2",
|
||||
"filesize": 2248409088,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(13)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v.9.3.13.qcow2",
|
||||
"version": "9300v 9.3.13",
|
||||
"md5sum": "d8ce30cb762df02d77ec27786a2435ad",
|
||||
"filesize": 2248343552,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(13)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v.9.3.12.qcow2",
|
||||
"version": "9500v 9.3.12",
|
||||
"md5sum": "452e5cb2a7a25feaa3ba0624a82ff9ca",
|
||||
"filesize": 1997996032,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(12)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v.9.3.12.qcow2",
|
||||
"version": "9300v 9.3.12",
|
||||
"md5sum": "7b6b5dad1001e11d6ebb54662616e9f2",
|
||||
"filesize": 1997930496,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(12)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v.9.3.9.qcow2",
|
||||
"version": "9500v 9.3.9",
|
||||
"md5sum": "30c25039927f89aebe73ea20d15abd6d",
|
||||
"filesize": 1980760064,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(9)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v.9.3.9.qcow2",
|
||||
"version": "9300v 9.3.9",
|
||||
"md5sum": "e807005cb7d2d2957b4af0e59f368b36",
|
||||
"filesize": 1980563456,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(9)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v.9.3.8.qcow2",
|
||||
"version": "9300v 9.3.8",
|
||||
"md5sum": "f8bd834f8395c134dc98d895c98441af",
|
||||
"filesize": 1976434688,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(8)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v.9.3.7.qcow2",
|
||||
"version": "9500v 9.3.7",
|
||||
"md5sum": "65f669e0dd379a05a8cdbb9d7592a064",
|
||||
"filesize": 1986068480,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(7)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v.9.3.3.qcow2",
|
||||
"version": "9500v 9.3.3",
|
||||
"md5sum": "7230c944041fdaa0e1b18cecccbc9a32",
|
||||
"filesize": 1714159616,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(3)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v.9.3.3.qcow2",
|
||||
"version": "9300v 9.3.3",
|
||||
"md5sum": "8e9a7c4815907ef47d850623f77042e2",
|
||||
"filesize": 1714225152,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(3)"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv.9.3.1.qcow2",
|
||||
"version": "9.3.1",
|
||||
"md5sum": "148fd38cb1ff78df2883f844e172fad9",
|
||||
"filesize": 1435041792,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(1)?i=!pp"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.9.2.3.qcow2",
|
||||
"version": "9.2.3",
|
||||
"md5sum": "74bd9a5b4970e868685f753e48979194",
|
||||
"filesize": 1357643776,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.2%25283%2529"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.9.2.2.qcow2",
|
||||
"version": "9.2.2",
|
||||
"md5sum": "2119702c488552fc4d1b4210a04d4f64",
|
||||
"filesize": 1344077824,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.2%25281%2529"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.9.2.1.qcow2",
|
||||
"version": "9.2.1",
|
||||
"md5sum": "1d7fa4654602d7ffbf62544edfe71986",
|
||||
"filesize": 1330315264,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.2%25281%2529"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I7.9.qcow2",
|
||||
"version": "7.0.3.I7.9",
|
||||
"md5sum": "50678c719f6b822c43dd096dbdf359e8",
|
||||
"filesize": 1003618304,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/7.0(3)I7(9)?i=!pp"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I7.7.qcow2",
|
||||
"version": "7.0.3.I7.7",
|
||||
"md5sum": "5daab34b672f9534c9aee59a6c8903b3",
|
||||
"filesize": 996212736,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/7.0%25283%2529I7%25287%2529"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I7.6.qcow2",
|
||||
"version": "7.0.3.I7.6",
|
||||
"md5sum": "a122ee954b4c11761abd99291b70544e",
|
||||
"filesize": 1031995392,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/7.0%25283%2529I7%25286%2529"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I7.5.qcow2",
|
||||
"version": "7.0.3.I7.5",
|
||||
"md5sum": "68a4008e189c8a35ccb8ee58db9608bb",
|
||||
"filesize": 1027670016,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/7.0%25283%2529I7%25285%2529"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I7.4.qcow2",
|
||||
"version": "7.0.3.I7.4",
|
||||
"md5sum": "1e980c95ca47045ae45ded6e07fabfb8",
|
||||
"filesize": 985792512,
|
||||
"download_url": "https://software.cisco.com/download/"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I7.3.qcow2",
|
||||
"version": "7.0.3.I7.3",
|
||||
"md5sum": "9d7a20367bf681a239f14097bbce470a",
|
||||
"filesize": 983629824,
|
||||
"download_url": "https://software.cisco.com/download/"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I7.2.qcow2",
|
||||
"version": "7.0.3.I7.2",
|
||||
"md5sum": "17295efb13e83b24a439148449bfd5ab",
|
||||
"filesize": 906231808,
|
||||
"download_url": "https://software.cisco.com/download/"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I7.1.qcow2",
|
||||
"version": "7.0.3.I7.1",
|
||||
"md5sum": "3c122f27d0c3684c63657207eadf4d06",
|
||||
"filesize": 903151616,
|
||||
"download_url": "https://software.cisco.com/download/"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I6.1.qcow2",
|
||||
"version": "7.0.3.I6.1",
|
||||
"md5sum": "18bb991b814a508d1190575f99deed99",
|
||||
"filesize": 780402688,
|
||||
"download_url": "https://software.cisco.com/download/"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I5.2.qcow2",
|
||||
"version": "7.0.3.I5.2",
|
||||
"md5sum": "c06aaa02f758a64fd8fee9406756f1da",
|
||||
"filesize": 777715712,
|
||||
"download_url": "https://software.cisco.com/download/"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I5.1.qcow2",
|
||||
"version": "7.0.3.I5.1",
|
||||
"md5sum": "201ea658fa4c57452ee4b2aa4f5262a7",
|
||||
"filesize": 784990208,
|
||||
"download_url": "https://software.cisco.com/download/"
|
||||
},
|
||||
{
|
||||
"filename": "OVMF-edk2-stable202305.fd",
|
||||
"version": "stable202305",
|
||||
@@ -233,6 +80,27 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "9500v 10.5.1.F",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v64.10.5.1.F.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 10.5.1.F",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v64.10.5.1.F.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 10.3.1.F",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v64.10.3.1.F.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 10.3.1.F",
|
||||
"images": {
|
||||
@@ -253,181 +121,6 @@
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v.10.1.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 9.3.13",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v.9.3.13.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 9.3.13",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v.9.3.13.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 9.3.12",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v.9.3.12.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 9.3.12",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v.9.3.12.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 9.3.9",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v.9.3.9.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 9.3.9",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v.9.3.9.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 9.3.8",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v.9.3.8.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 9.3.7",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v.9.3.7.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 9.3.3",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v.9.3.3.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 9.3.3",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v.9.3.3.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.3.1",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv.9.3.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.2.3",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.9.2.3.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.2.2",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.9.2.2.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.2.1",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.9.2.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I7.9",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I7.9.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I7.7",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I7.7.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I7.6",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I7.6.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I7.5",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I7.5.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I7.4",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I7.4.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I7.3",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I7.3.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I7.2",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I7.2.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I7.1",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I7.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I6.1",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I6.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I5.2",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I5.2.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I5.1",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I5.1.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -29,6 +29,27 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.4.6.M-build2588-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.6",
|
||||
"md5sum": "fba982436ff430465df6f6f283a2bd71",
|
||||
"filesize": 511053824,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.4.5.M-build2553-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.5",
|
||||
"md5sum": "78464ee460fce69c360901ca9ccfe4a0",
|
||||
"filesize": 510988288,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.4.4.F-build2550-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.4",
|
||||
"md5sum": "7bec1725b1e39dd66f4daae07492f1b4",
|
||||
"filesize": 511217664,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.4.3-build2487-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.3",
|
||||
@@ -277,6 +298,27 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "7.4.6",
|
||||
"images": {
|
||||
"hda_disk_image": "FAZ_VM64_KVM-v7.4.6.M-build2588-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.5",
|
||||
"images": {
|
||||
"hda_disk_image": "FAZ_VM64_KVM-v7.4.5.M-build2553-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.4",
|
||||
"images": {
|
||||
"hda_disk_image": "FAZ_VM64_KVM-v7.4.4.F-build2550-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.3",
|
||||
"images": {
|
||||
|
||||
@@ -28,6 +28,27 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.4.7.M-build2731-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.7",
|
||||
"md5sum": "2ce4039789e84b3fe85565e0c4110718",
|
||||
"filesize": 103677952,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.4.6.M-build2726-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.6",
|
||||
"md5sum": "b787c1c5ab365f267d7e4e88b1cdc10b",
|
||||
"filesize": 103677952,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.4.5.M-build2702-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.5",
|
||||
"md5sum": "8465e74c4ef1751619ebb989838d457c",
|
||||
"filesize": 102367232,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.4.4.F-build2662-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.4",
|
||||
@@ -388,6 +409,27 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "7.4.7",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v7.4.7.M-build2731-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.6",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v7.4.6.M-build2726-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.5",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v7.4.5.M-build2702-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.4",
|
||||
"images": {
|
||||
|
||||
@@ -29,9 +29,30 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.4.6.M-build2588-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.6",
|
||||
"md5sum": "7cb219e1070d393f61cf750d818b23b1",
|
||||
"filesize": 349122560,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.4.5.M-build2553-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.5",
|
||||
"md5sum": "fa59ddce0cb933741f16866472026723",
|
||||
"filesize": 349769728,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.4.4.F-build2550-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.4",
|
||||
"md5sum": "770727bb30555e6938308bbf95f19555",
|
||||
"filesize": 349847552,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.4.3-build2487-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.23",
|
||||
"version": "7.4.3",
|
||||
"md5sum": "b01d9f86aa27c538407d518df1326863",
|
||||
"filesize": 346107904,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
@@ -277,6 +298,27 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "7.4.6",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.4.6.M-build2588-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.5",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.4.5.M-build2553-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.4",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.4.4.F-build2550-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.3",
|
||||
"images": {
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"appliance_id": "4d351078-c6f5-444c-ab30-0ef20e3d8c53",
|
||||
"name": "Infix",
|
||||
"category": "router",
|
||||
"description": "Infix is a Network Operating System based on Linux. It can be set up both as a switch, with offloading using switchdev, and a router with firewalling.",
|
||||
"vendor_name": "KernelKit",
|
||||
"vendor_url": "https://github.com/kernelkit",
|
||||
"vendor_logo_url": "https://kernelkit.org/assets/img/jack.png",
|
||||
"product_name": "Infix",
|
||||
"registry_version": 4,
|
||||
"documentation_url": "https://github.com/kernelkit/infix/tree/main/doc",
|
||||
"status": "stable",
|
||||
"availability": "free",
|
||||
"maintainer": "KernelKit",
|
||||
"maintainer_email": "kernelkit@googlegroups.com",
|
||||
"usage": "Default login, user/pass: admin/admin\n\nType 'cli' (and Enter) followed by 'help' for an overview of commands and relevant configuration files.",
|
||||
"port_name_format": "eth{0}",
|
||||
"linked_clone": true,
|
||||
"symbol": "router_red.svg",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 10,
|
||||
"ram": 512,
|
||||
"cpus": 1,
|
||||
"hda_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"process_priority": "normal",
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "OVMF-edk2-stable202305.fd",
|
||||
"version": "stable202305",
|
||||
"md5sum": "6c4cf1519fec4a4b95525d9ae562963a",
|
||||
"filesize": 4194304,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
|
||||
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/OVMF-edk2-stable202305.fd.zip/download",
|
||||
"compression": "zip"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-disk-24.11.1.img",
|
||||
"filesize": 536870912,
|
||||
"md5sum": "673a123fe122d1c2f5724baf9965a19d",
|
||||
"version": "24.11.1",
|
||||
"download_url": "https://github.com/kernelkit/infix/releases/download/v24.11.1/infix-x86_64-24.11.1.tar.gz",
|
||||
"compression": "gzip"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-disk-25.01.0.img",
|
||||
"filesize": 536870912,
|
||||
"md5sum": "a814d93b385116b4a35712c445b5f830",
|
||||
"version": "25.01.0",
|
||||
"download_url": "https://github.com/kernelkit/infix/releases/download/v25.01.0/infix-x86_64-25.01.0.tar.gz",
|
||||
"compression": "gzip"
|
||||
}
|
||||
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "25.01.0",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-disk-25.01.0.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "24.11.1",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-disk-24.11.1.img"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"appliance_id": "60801097-332e-4f40-a63e-8ad62047c01f",
|
||||
"name": "Stormshield EVA",
|
||||
"category": "firewall",
|
||||
"description": "Stormshield EVA (Elastic Virtual Appliance) is a french virtual firewall designed to protect network infrastructures. It offers advanced features such as filtering, intrusion prevention (IPS), VPN management (IPSec/SSL), and access control.",
|
||||
"vendor_name": "Stormshield",
|
||||
"vendor_url": "https://www.stormshield.com/",
|
||||
"vendor_logo_url": "https://www.stormshield.com/wp-content/uploads/stormshield-logo.png",
|
||||
"documentation_url": "https://www.stormshield.com/fr/ressourcescenter/network-security-elastic-virtual-appliances/",
|
||||
"product_name": "Stormshield EVA",
|
||||
"product_url": "https://www.stormshield.com/fr/produits-et-services/produits/protection-des-reseaux/nos-produits/appliances-virtuelles/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"availability": "service-contract",
|
||||
"maintainer": "Samy SCANNA",
|
||||
"maintainer_email": "samy.scanna@outlook.com",
|
||||
"usage": "After the first boot, the appliance automatically runs the configuration script to set up the password, and network interfaces.",
|
||||
"symbol": "stormshield.png",
|
||||
"port_name_format": "port{port1}",
|
||||
"qemu": {
|
||||
"adapter_type": "vmxnet3",
|
||||
"adapters": 8,
|
||||
"ram": 2048,
|
||||
"cpus": 1,
|
||||
"hda_disk_interface": "scsi",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "allow",
|
||||
"options": "-serial stdio",
|
||||
"on_close": "shutdown_signal",
|
||||
"process_priority": "normal"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "utm-SNS-EVA-4.3.33-kvm.qcow2",
|
||||
"version": "4.3.33",
|
||||
"md5sum": "21d94d0e20f2e270f06c5853fd750d5b",
|
||||
"filesize": 284360704,
|
||||
"download_url": "https://mystormshield.eu/product/download/"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"images": {
|
||||
"hda_disk_image": "utm-SNS-EVA-4.3.33-kvm.qcow2"
|
||||
},
|
||||
"name": "4.3.33"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -30,6 +30,13 @@
|
||||
"on_close": "shutdown_signal"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "vyos-1.4.1-kvm-amd64.qcow2",
|
||||
"version": "1.4.1",
|
||||
"md5sum": "5b8ebcd9905719d24405ed093afdd8ba",
|
||||
"filesize": 513736704,
|
||||
"download_url": "https://support.vyos.io/"
|
||||
},
|
||||
{
|
||||
"filename": "vyos-1.4.0-kvm-amd64.qcow2",
|
||||
"version": "1.4.0",
|
||||
@@ -109,6 +116,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "1.4.1",
|
||||
"images": {
|
||||
"hda_disk_image": "vyos-1.4.1-kvm-amd64.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1.4.0",
|
||||
"images": {
|
||||
|
||||
@@ -233,32 +233,36 @@ class VirtualBoxVM(BaseNode):
|
||||
"""
|
||||
Fix the VM uuid in the case of linked clone
|
||||
"""
|
||||
if os.path.exists(self._linked_vbox_file()):
|
||||
try:
|
||||
tree = ET.parse(self._linked_vbox_file())
|
||||
except ET.ParseError:
|
||||
raise VirtualBoxError(
|
||||
"Cannot modify VirtualBox linked nodes file. "
|
||||
"File {} is corrupted.".format(self._linked_vbox_file())
|
||||
|
||||
linked_vbox_file = self._linked_vbox_file()
|
||||
if not os.path.exists(linked_vbox_file):
|
||||
raise VirtualBoxError("Cannot find VirtualBox linked node file: {}".format(linked_vbox_file))
|
||||
|
||||
try:
|
||||
tree = ET.parse(linked_vbox_file)
|
||||
except ET.ParseError:
|
||||
raise VirtualBoxError(f"Cannot modify VirtualBox linked node file. "
|
||||
"File {linked_vbox_file} is corrupted.")
|
||||
except OSError as e:
|
||||
raise VirtualBoxError(f"Cannot modify VirtualBox linked nodes file '{self._linked_vbox_file()}': {e}")
|
||||
|
||||
machine = tree.getroot().find("{http://www.virtualbox.org/}Machine")
|
||||
if machine is not None and machine.get("uuid") != "{" + self.id + "}":
|
||||
|
||||
for image in tree.getroot().findall("{http://www.virtualbox.org/}Image"):
|
||||
currentSnapshot = machine.get("currentSnapshot")
|
||||
if currentSnapshot:
|
||||
newSnapshot = re.sub(r"\{.*\}", "{" + str(uuid.uuid4()) + "}", currentSnapshot)
|
||||
shutil.move(
|
||||
os.path.join(self.working_dir, self._vmname, "Snapshots", currentSnapshot) + ".vdi",
|
||||
os.path.join(self.working_dir, self._vmname, "Snapshots", newSnapshot) + ".vdi"
|
||||
)
|
||||
except OSError as e:
|
||||
raise VirtualBoxError(f"Cannot modify VirtualBox linked nodes file '{self._linked_vbox_file()}': {e}")
|
||||
log.info(f"VirtualBox VM '{self.name}' [{self.id}] snapshot file moved from '{currentSnapshot}' to '{newSnapshot}'")
|
||||
image.set("uuid", newSnapshot)
|
||||
|
||||
machine = tree.getroot().find("{http://www.virtualbox.org/}Machine")
|
||||
if machine is not None and machine.get("uuid") != "{" + self.id + "}":
|
||||
|
||||
for image in tree.getroot().findall("{http://www.virtualbox.org/}Image"):
|
||||
currentSnapshot = machine.get("currentSnapshot")
|
||||
if currentSnapshot:
|
||||
newSnapshot = re.sub(r"\{.*\}", "{" + str(uuid.uuid4()) + "}", currentSnapshot)
|
||||
shutil.move(
|
||||
os.path.join(self.working_dir, self._vmname, "Snapshots", currentSnapshot) + ".vdi",
|
||||
os.path.join(self.working_dir, self._vmname, "Snapshots", newSnapshot) + ".vdi",
|
||||
)
|
||||
image.set("uuid", newSnapshot)
|
||||
|
||||
machine.set("uuid", "{" + self.id + "}")
|
||||
tree.write(self._linked_vbox_file())
|
||||
log.info(f"VirtualBox VM '{self.name}' [{self.id}] '{linked_vbox_file}' has been patched")
|
||||
machine.set("uuid", "{" + self.id + "}")
|
||||
tree.write(linked_vbox_file)
|
||||
|
||||
async def check_hw_virtualization(self):
|
||||
"""
|
||||
@@ -488,7 +492,7 @@ class VirtualBoxVM(BaseNode):
|
||||
|
||||
async def save_linked_hdds_info(self):
|
||||
"""
|
||||
Save linked cloned hard disks information.
|
||||
Save linked cloned hard disk information.
|
||||
|
||||
:returns: disk table information
|
||||
"""
|
||||
|
||||
@@ -352,6 +352,7 @@ class VMwareVM(BaseNode):
|
||||
vnet = self._get_vnet(adapter_number)
|
||||
await self._ubridge_send(f"bridge create {vnet}")
|
||||
vmnet_interface = os.path.basename(self._vmx_pairs[vnet])
|
||||
block_host_traffic = self.manager.config.settings.VMware.block_host_traffic
|
||||
|
||||
if sys.platform.startswith("darwin"):
|
||||
if parse_version(platform.mac_ver()[0]) >= parse_version("11.0.0"):
|
||||
@@ -360,13 +361,11 @@ class VMwareVM(BaseNode):
|
||||
vmnet_interface = self.manager.find_bridge_interface(vmnet_interface)
|
||||
if not vmnet_interface:
|
||||
raise VMwareError(f"Could not find bridge interface linked with {vmnet_interface}")
|
||||
block_host_traffic = self.manager.config.get_section_config("VMware").getboolean("block_host_traffic", False)
|
||||
await self._add_ubridge_ethernet_connection(vnet, vmnet_interface, block_host_traffic)
|
||||
else:
|
||||
# special case on macOS, we cannot bind VMnet interfaces using the libpcap
|
||||
await self._ubridge_send('bridge add_nio_fusion_vmnet {name} "{interface}"'.format(name=vnet, interface=vmnet_interface))
|
||||
else:
|
||||
block_host_traffic = self.manager.config.VMware.block_host_traffic
|
||||
await self._add_ubridge_ethernet_connection(vnet, vmnet_interface, block_host_traffic)
|
||||
|
||||
if isinstance(nio, NIOUDP):
|
||||
|
||||
@@ -74,6 +74,7 @@ class Controller:
|
||||
|
||||
log.info("Controller is starting")
|
||||
await self._install_base_configs()
|
||||
await self._install_custom_symbols()
|
||||
installed_disks = await self._install_builtin_disks()
|
||||
if installed_disks:
|
||||
await update_disk_checksums(installed_disks)
|
||||
@@ -371,6 +372,19 @@ class Controller:
|
||||
except OSError as e:
|
||||
log.error(f"Could not install disk files to {dst_path}: {e}")
|
||||
|
||||
async def _install_custom_symbols(self):
|
||||
"""
|
||||
At startup we copy custom symbols to the user location to allow
|
||||
them to use with appliances
|
||||
"""
|
||||
|
||||
dst_path = self.symbols.symbols_path()
|
||||
log.info(f"Installing custom symbols in '{dst_path}'")
|
||||
try:
|
||||
return await Controller.install_resource_files(dst_path, "custom_symbols", upgrade_resources=False)
|
||||
except OSError as e:
|
||||
log.error(f"Could not install custom symbols to {dst_path}: {e}")
|
||||
|
||||
def images_path(self):
|
||||
"""
|
||||
Get the image storage directory
|
||||
|
||||
@@ -58,7 +58,7 @@ class CrashReport:
|
||||
Report crash to a third party service
|
||||
"""
|
||||
|
||||
DSN = "https://9cf53e6b9adfe49b867f1847b7cc4d72@o19455.ingest.us.sentry.io/38482"
|
||||
DSN = "https://0d64280ffb5ae409d448f255b9956a88@o19455.ingest.us.sentry.io/38482"
|
||||
_instance = None
|
||||
|
||||
def __init__(self):
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
<svg id="f6fe4215-7336-420b-bd07-06692844737a" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 67.6 65.59"><title>vrouter-logo-generic</title><circle cx="34" cy="32.75" r="19.09" style="fill:#3d4859;opacity:0.8999999761581421;isolation:isolate"/><circle cx="34.04" cy="32.79" r="11.18" style="fill:#5e7ce2;opacity:0.8999999761581421;isolation:isolate"/><path d="M44.61,7.88l20.74-5.6c1.22-.33,2,.41,1.7,1.65L62.21,24.86c-.47,2-3.1,3.65-4.17,2.62l-4.92-4.76-7.84,8.13c-1.07,1.11-2.48,1.49-3.15.85l-3.62-3.49c-.66-.64-.33-2.07.73-3.18l7.84-8.13-4.93-4.76C41.07,11.1,42.62,8.42,44.61,7.88Z" transform="translate(-1.16 -2.2)" style="fill:#0aaded;opacity:0.8999999761581421;isolation:isolate"/><path d="M26.06,62.11,5.32,67.72c-1.21.33-2-.42-1.7-1.65L8.47,45.14c.44-2,3.08-3.65,4.15-2.62l4.93,4.76,7.84-8.13c1.07-1.11,2.49-1.49,3.15-.85l3.63,3.49c.67.64.33,2.07-.72,3.18L23.61,53.1l4.91,4.76C29.6,58.9,28.05,61.58,26.06,62.11Z" transform="translate(-1.16 -2.2)" style="fill:#5e7ce2;opacity:0.8999999761581421;isolation:isolate"/><path d="M25.29,8.71l5.6,20.75c.33,1.21-.41,2-1.64,1.69L8.31,26.31c-2-.47-3.65-3.1-2.61-4.17l4.75-4.91L2.32,9.38C1.21,8.31.83,6.9,1.47,6.24L5,2.6c.64-.66,2.07-.33,3.18.73l8.13,7.86L21,6.25C22.07,5.17,24.75,6.72,25.29,8.71Z" transform="translate(-1.16 -2.2)" style="fill:#5e7ce2;opacity:0.8999999761581421;isolation:isolate"/><path d="M44.64,61.15,39,40.4c-.33-1.21.42-2,1.65-1.7l20.93,4.84c2,.46,3.65,3.09,2.62,4.16l-4.76,4.94,8.13,7.84c1.11,1.06,1.49,2.48.85,3.14L65,67.24c-.64.67-2.07.34-3.18-.72l-8.13-7.84L48.9,63.61C47.85,64.69,45.17,63.14,44.64,61.15Z" transform="translate(-1.16 -2.2)" style="fill:#0aaded;opacity:0.8999999761581421;isolation:isolate"/></svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg height="59.253815" id="Andysvg" version="1.0" width="65.414536" x="0.00000000" y="0.00000000" xmlns="http://www.w3.org/2000/svg" xmlns:bx="https://boxy-svg.com">
|
||||
<defs id="defs3">
|
||||
<linearGradient id="linearGradient891" x1="92.437965" x2="27.674332" y1="-3.9104078" y2="91.076988" gradientTransform="matrix(0.8184166,0,0,0.530237,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient905" x1="-77.726181" x2="95.64444" y1="208.43991" y2="11.699047" gradientTransform="matrix(0.7314635,0,0,0.5932693,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<radialGradient cx="60.004654" cy="56.485935" id="radialGradient1132" r="68.589226" gradientTransform="matrix(0.8184166,0,0,0.530237,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop1134" offset="0" style="stop-color:#8bb7df;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop1136" offset="0.7621" style="stop-color:#2a6092;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop1135" offset="1" style="stop-color:#375e82;stop-opacity:1.0000000;"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="linearGradient1140" x1="45.685757" x2="41.96706" y1="110.4447" y2="232.24953" gradientTransform="matrix(1.2743811,0,0,0.3405213,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient1144" x1="31.449743" x2="31.617281" y1="203.49899" y2="251.21892" gradientTransform="matrix(1.4044089,0,0,0.3089952,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop893" offset="0" style="stop-color:#ffffff;stop-opacity:0.00000000;"/>
|
||||
<stop id="stop894" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient1146" x1="39.810947" x2="17.87653" y1="90.197021" y2="113.71949" gradientTransform="matrix(0.8811179,0,0,0.4925045,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop893" offset="0" style="stop-color:#ffffff;stop-opacity:0.00000000;"/>
|
||||
<stop id="stop894" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient1156" x1="25.220816" x2="25.220816" y1="178.48862" y2="234.26866" gradientTransform="matrix(1.6156202,0,0,0.2685999,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient1157" x1="51.46093" x2="-16.224497" y1="269.85831" y2="176.28694" gradientTransform="matrix(1.6156202,0,0,0.2685999,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect height="5.4088969" id="rect1155" style="fill: url(#linearGradient1156); fill-opacity: 1; fill-rule: evenodd; stroke: url(#linearGradient1157); stroke-width: 0.953444pt;" width="38.405891" x="12.350429" y="36.575089"/>
|
||||
<path d="M 0.19287398,54.885213 C -0.67386281,56.46268 1.5579198,59.253939 3.3933636,59.253939 L 62.069027,59.253939 C 63.628857,59.253939 65.976201,57.281205 65.269522,55.925378 L 58.655165,43.235277 C 58.145696,42.257819 57.005954,41.779036 55.881408,41.779036 L 8.9408812,41.779036 C 8.0135624,41.779036 7.0317541,42.438291 6.5938539,43.235277 L 0.19287398,54.885213 z " id="path1139" style="fill: url(#linearGradient1140); fill-opacity: 1; fill-rule: evenodd; stroke-width: 1.44735pt;"/>
|
||||
<rect height="39.110481" id="rect1137" rx="3.6272225" ry="3.536587" style="fill: url(#linearGradient905); fill-opacity: 1; fill-rule: evenodd; stroke-width: 1.62827;" width="48.220726" x="7.4732022" y="-0.010164791"/>
|
||||
<rect height="24.74659" id="rect1131" style="fill: url(#radialGradient1132); fill-opacity: 1; fill-rule: evenodd; stroke: url(#linearGradient891); stroke-width: 0.965037pt;" width="38.813015" x="12.390426" y="6.027596"/>
|
||||
<path d="M 8.5906358,19.782157 L 8.3772707,34.032521 C 8.3432557,36.304242 9.6712558,37.75887 12.004493,37.777143 L 38.568566,37.985175 L 41.128957,32.160207 L 11.471076,31.952177 L 11.257713,19.678141 L 8.5906358,19.782157 z " id="path1145" style="fill: url(#linearGradient1146); fill-opacity: 1; fill-rule: evenodd; stroke-width: 1pt;"/>
|
||||
<path d="M 2.7205883,54.675124 C 2.1113822,55.866786 2.9089235,57.975349 4.9701318,57.975349 L 60.179981,57.975349 C 61.276346,57.975349 62.926231,56.48511 62.429524,55.460899 L 57.78047,45.874547 C 57.422369,45.136152 56.621274,44.774474 55.830865,44.774474 L 8.8693353,44.774468 C 8.2175462,44.774468 7.5274604,45.272486 7.2196723,45.874547 L 2.7205883,54.675124 z " id="path1143" style="fill: url(#linearGradient1144); fill-opacity: 1; fill-rule: evenodd; stroke-width: 1pt;"/>
|
||||
<rect x="12.664" y="6.294" width="38.092" height="24.48" style="fill: rgb(255, 255, 255);"/>
|
||||
<path d="M 28.718 20.949 L 28.718 18.69 L 27.09 20.318 C 27.266 20.44 27.431 20.541 27.587 20.622 C 27.741 20.704 27.887 20.768 28.023 20.815 C 28.159 20.864 28.284 20.896 28.399 20.918 C 28.516 20.939 28.622 20.948 28.718 20.949 M 37.035 20.762 C 37.038 20.764 37.054 20.778 37.082 20.796 C 37.113 20.815 37.155 20.839 37.212 20.862 C 37.269 20.886 37.339 20.91 37.426 20.927 C 37.512 20.945 37.613 20.956 37.728 20.956 C 37.825 20.956 37.931 20.948 38.048 20.927 C 38.164 20.907 38.292 20.875 38.429 20.826 C 38.566 20.779 38.713 20.716 38.871 20.633 C 39.029 20.551 39.196 20.449 39.374 20.325 L 38.14 19.116 L 34.048 15.009 L 32.253 16.805 L 29.832 14.307 L 23.753 20.317 C 23.931 20.442 24.098 20.542 24.256 20.624 C 24.413 20.707 24.561 20.771 24.697 20.818 C 24.835 20.866 24.961 20.899 25.078 20.919 C 25.195 20.939 25.301 20.948 25.398 20.948 C 25.513 20.948 25.614 20.936 25.7 20.919 C 25.785 20.901 25.856 20.878 25.914 20.855 C 25.97 20.831 26.013 20.806 26.043 20.788 C 26.072 20.769 26.088 20.755 26.091 20.753 L 28.835 18.009 L 29.816 17.068 L 32.534 19.786 L 33.483 20.762 C 33.485 20.764 33.501 20.778 33.53 20.796 C 33.56 20.815 33.602 20.839 33.66 20.862 C 33.716 20.886 33.788 20.91 33.873 20.927 C 33.959 20.945 34.06 20.956 34.176 20.956 C 34.273 20.956 34.379 20.948 34.496 20.927 C 34.613 20.907 34.74 20.875 34.877 20.826 C 35.014 20.779 35.161 20.716 35.319 20.633 C 35.476 20.551 35.644 20.449 35.823 20.325 L 33.642 18.19 L 34.047 17.785 L 35.934 19.672 L 37.035 20.762 M 37.011 9.382 L 42.371 18.668 L 37.011 27.955 L 26.288 27.955 L 20.926 18.668 L 26.288 9.382 L 37.011 9.382 Z" style="fill: rgb(13, 89, 127); fill-opacity: 1; fill-rule: nonzero; stroke: none;" id="path58" bx:origin="0 0"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.2 KiB |
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg id="svg1998" width="51.358818" height="47.630692" version="1.0" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs id="defs2001">
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow2Lstart" style="overflow:visible">
|
||||
<path id="path11918" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " transform="matrix(1.1,0,0,1.1,1.1,0)"/>
|
||||
</marker>
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow1Send" style="overflow:visible">
|
||||
<path id="path11921" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none" transform="matrix(-0.2,0,0,-0.2,-1.2,0)"/>
|
||||
</marker>
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow1Lstart" style="overflow:visible">
|
||||
<path id="path11936" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none" transform="matrix(0.8,0,0,0.8,10,0)"/>
|
||||
</marker>
|
||||
<linearGradient id="linearGradient9199" gradientUnits="userSpaceOnUse" gradientTransform="matrix(24.666332,1.3331909e-2,-1.2883406e-2,23.708747,-8.6563136,-4.6316275)" x1="2.1178279" y1="0.30649999" x2="-0.4954865" y2="0.30649999">
|
||||
<stop style="stop-opacity: 1; stop-color: rgb(239, 239, 239);" offset="0" id="stop8333"/>
|
||||
<stop style="stop-opacity: 1; stop-color: rgb(255, 255, 255);" offset="1" id="stop8335"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path id="path11907" d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"/>
|
||||
<path id="path11020" d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"/>
|
||||
<path id="path2037" d="M 0.062500355,5.0439492 L 0.062500355,46.326915 L 44.31814,46.326915 L 44.31814,5.0439492 L 0.062500355,5.0439492" style="fill-opacity: 1; stroke: none; stroke-width: 0.001; fill: rgb(239, 239, 239);"/>
|
||||
<path id="path2041" d="M -0.028418806,5.1647552 L 5.5982489,0.11782966 L 50.022311,0.14184042 L 44.346312,5.1887393 L -0.028418806,5.1647552" style="fill:url(#linearGradient9199);fill-opacity:1;stroke:none;stroke-width:0.001"/>
|
||||
<path id="path2045" d="M 44.228586,5.0887264 L 49.976169,0.12831483 L 49.976169,41.348635 L 44.228586,46.309047 L 44.228586,5.0887264" style="fill-opacity: 1; stroke: none; stroke-width: 0.001; fill: rgb(223, 223, 223);"/>
|
||||
<path class="st0" d="M 40.254 38.435 L 24.509 13.686 C 23.584 12.049 20.925 12.049 19.901 13.789 L 4.254 38.435 L 9.369 38.435 L 14.073 30.969 L 24.099 30.969 L 26.753 26.67 L 16.731 26.67 L 22.255 18.082 L 35.039 38.435 L 40.254 38.435 Z" style="fill: rgb(24, 61, 100);"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="_图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 66 44.52">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
fill: none;
|
||||
}
|
||||
|
||||
.cls-2 {
|
||||
clip-path: url(#clippath);
|
||||
}
|
||||
|
||||
.cls-3 {
|
||||
fill: #fff;
|
||||
}
|
||||
|
||||
.cls-4 {
|
||||
fill: #abbbed;
|
||||
}
|
||||
|
||||
.cls-5 {
|
||||
fill: #96aae9;
|
||||
}
|
||||
|
||||
.cls-6 {
|
||||
fill: #7989bb;
|
||||
}
|
||||
</style>
|
||||
<clipPath id="clippath">
|
||||
<rect class="cls-1" x=".1" y="8.18" width="64.89" height="27.34"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<rect x="1.34" y="23.21" width="49.53" height="13.54"/>
|
||||
<polygon points="50.88 23.21 50.88 36.75 66 23.21 66 9.64 50.88 23.21"/>
|
||||
<rect class="cls-1" x=".1" y="8.18" width="64.89" height="27.34"/>
|
||||
<rect class="cls-1" x=".1" y="8.18" width="64.89" height="27.34"/>
|
||||
<rect class="cls-5" x=".22" y="21.87" width="49.53" height="13.54"/>
|
||||
<polygon class="cls-4" points="15.34 8.3 .22 21.87 49.75 21.87 64.87 8.3 15.34 8.3"/>
|
||||
<polygon class="cls-6" points="49.75 21.87 49.75 35.4 64.87 21.87 64.87 8.3 49.75 21.87"/>
|
||||
<polygon class="cls-3" points="33.17 12.87 25.08 14.56 31.96 17.27 40.04 15.58 33.17 12.87"/>
|
||||
<polygon class="cls-3" points="24.77 15.66 28.21 17.02 14.88 19.81 16.6 20.49 9.1 19.98 9.73 17.78 11.45 18.46 24.77 15.66"/>
|
||||
<polygon class="cls-3" points="36.9 13.12 40.33 14.48 53.69 11.68 55.41 12.35 56 10.15 48.54 9.64 50.26 10.32 36.9 13.12"/>
|
||||
<polygon class="cls-3" points="35.71 17.52 39.75 16.68 44.9 18.71 46.92 18.29 46.33 20.49 38.83 19.98 40.86 19.56 35.71 17.52"/>
|
||||
<polygon class="cls-3" points="25.39 13.46 29.44 12.61 24.28 10.58 26.29 10.15 18.83 9.64 18.2 11.85 20.24 11.42 25.39 13.46"/>
|
||||
<g class="cls-2">
|
||||
<path class="cls-3" d="m25.84,29.93c0-.2-.07-.35-.21-.46-.14-.11-.39-.22-.74-.34s-.64-.23-.86-.34c-.73-.36-1.09-.85-1.09-1.47,0-.31.09-.58.27-.82.18-.24.44-.42.77-.56s.7-.2,1.12-.2.77.07,1.09.21c.32.15.57.35.74.62.18.26.26.57.26.91h-1.35c0-.23-.07-.41-.21-.53-.14-.13-.33-.19-.57-.19s-.43.05-.57.16c-.14.1-.21.24-.21.41,0,.15.08.27.23.39.16.12.42.24.81.36.39.12.71.26.95.4.61.35.91.83.91,1.45,0,.49-.18.88-.56,1.15-.37.28-.88.42-1.52.42-.46,0-.87-.08-1.24-.25s-.65-.39-.83-.67c-.19-.28-.28-.61-.28-.98h1.35c0,.3.08.52.23.67.16.14.41.21.76.21.22,0,.4-.05.53-.15.13-.1.2-.23.2-.41"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,498 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg1998"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
width="78"
|
||||
height="60"
|
||||
version="1.0"
|
||||
sodipodi:docname="Cisco-FMCv.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<title
|
||||
id="title3303">ASA</title>
|
||||
<metadata
|
||||
id="metadata2003">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
<dc:title>ASA</dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jeremy Grossmann</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>GNS-3</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2001">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 23.815346 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="51.358818 : 23.815346 : 1"
|
||||
inkscape:persp3d-origin="25.679409 : 15.876897 : 1"
|
||||
id="perspective43" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient10123">
|
||||
<stop
|
||||
style="stop-color:#e4405c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop10125" />
|
||||
<stop
|
||||
style="stop-color:#e4405c;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop10127" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient8331">
|
||||
<stop
|
||||
style="stop-color:#6e8caa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop8333" />
|
||||
<stop
|
||||
style="stop-color:#dde3ef;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop8335" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6603">
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6605" />
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6607" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6587">
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6589" />
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6591" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11918"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(1.1,0,0,1.1,1.1,0)"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11921"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none"
|
||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11936"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6587"
|
||||
id="linearGradient6593"
|
||||
x1="3.95626"
|
||||
y1="0.64267641"
|
||||
x2="-1.2664427"
|
||||
y2="0.62730032"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.060042,0,0,1.074658,-0.00394248,-0.356572)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6603"
|
||||
id="linearGradient6609"
|
||||
x1="2.2801981"
|
||||
y1="1.4519272"
|
||||
x2="-0.41311559"
|
||||
y2="1.4649135"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.060042,0,0,1.074658,-0.00394248,-0.356572)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10123"
|
||||
id="linearGradient10129"
|
||||
x1="1.3990936"
|
||||
y1="1.4711363"
|
||||
x2="0.49966058"
|
||||
y2="0.56367606"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.117962,0,0,1.035008,-0.040973,-0.00678868)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8331"
|
||||
id="linearGradient6875"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(25.476818,0,0,24.653619,16.134224,-3.6500723)"
|
||||
x1="2.1178279"
|
||||
y1="0.30649999"
|
||||
x2="-0.4954865"
|
||||
y2="0.30649999" />
|
||||
<inkscape:perspective
|
||||
id="perspective418"
|
||||
inkscape:persp3d-origin="283.46457 : 188.97638 : 1"
|
||||
inkscape:vp_z="566.92914 : 283.46457 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 283.46457 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3145"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8331"
|
||||
id="linearGradient6875-3"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(36.770425,0,0,24.653619,-12.632753,-3.5809148)"
|
||||
x1="2.1178279"
|
||||
y1="0.30649999"
|
||||
x2="-0.4954865"
|
||||
y2="0.30649999" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8331"
|
||||
id="linearGradient6875-35"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(25.476818,0,0,24.653619,-8.67999,-3.71127)"
|
||||
x1="2.1178279"
|
||||
y1="0.30649999"
|
||||
x2="-0.4954865"
|
||||
y2="0.30649999" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="1031"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="11.313708"
|
||||
inkscape:cx="68.617052"
|
||||
inkscape:cy="48.72766"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:current-layer="svg1998"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<path
|
||||
id="path11907"
|
||||
d="m 3.5551186,56.156296 v 2.959818 H 70.766282 V 56.156296 H 3.5551186"
|
||||
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:1.23817813"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path11020"
|
||||
d="M 70.872922,8.6798666 77.855353,2.4891617 77.840347,53.678671 70.766282,59.116114 70.872856,8.6798666"
|
||||
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.99648201"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2037"
|
||||
d="M 0.22635933,6.2224304 V 55.734506 H 70.747763 V 6.2224304 H 0.22635933"
|
||||
style="fill:#6e8caa;fill-opacity:1;stroke:none;stroke-width:1.38291967"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2041"
|
||||
d="m 25.05111,6.5318764 5.808715,-5.251224 h 45.883749 l -5.859667,5.251224 H 25.05111"
|
||||
style="fill:url(#linearGradient6875);fill-opacity:1;stroke:none;stroke-width:0.99648201"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2045"
|
||||
d="M 70.747763,6.2224304 76.53739,1.2372012 V 42.663756 l -5.789627,4.985229 V 6.2224304"
|
||||
style="fill:#6e8296;fill-opacity:1;stroke:none;stroke-width:1.01408982"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99412811"
|
||||
d="M 63.650138,-114.23927 H 93.96577 v -2.43552 l 6.51758,4.87105 -6.51758,5.27408 v -2.43553 H 63.650138 v -5.27408"
|
||||
id="path39" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:0.99412817;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 53.221305,-111.80373 H 65.932861"
|
||||
id="path61" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ff545c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99063075"
|
||||
d="M 40.583264,56.043952 H 25.452717 v -5.604136 h 15.130547 v 5.604136"
|
||||
id="path99" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#e1e1e1;stroke-width:0.44807994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 40.583264,56.043952 H 25.599726"
|
||||
id="path101" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#e1e1e1;stroke-width:0.44672814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="m 25.689994,50.439816 h 14.89327 v 5.604136"
|
||||
id="path103" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ff545c;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.44672814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 70.883907,56.043952 H 55.737538 v -5.604136 h 15.146369 v 5.604136"
|
||||
id="path105" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ff545c;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.44672814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 63.688395,56.043952 H 48.526214 v -5.604136 h 15.162181 v 5.604136"
|
||||
id="path107" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ff545c;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.44672814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 48.526214,56.043952 H 33.387752 v -5.604136 h 15.138462 v 5.604136"
|
||||
id="path109" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ff2833;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.46981236;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="m 73.772792,48.48091 2.530987,-2.488522 v -6.191459 l -2.530987,2.474883 v 6.205098"
|
||||
id="path111" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ff2833;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.44672814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="m 73.772792,53.812465 2.530987,-1.971233 v -5.610305 l -2.530987,1.965074 v 5.616464"
|
||||
id="path125" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ff2833;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.44672814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="m 70.883907,56.043952 2.888885,-2.231487 v -5.616464 l -2.888885,2.243815 v 5.604136"
|
||||
id="path127" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ff545c;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.44672814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 55.737538,50.439816 H 40.583264 v -5.610295 h 15.154274 v 5.610295"
|
||||
id="path133" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ff545c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99063075"
|
||||
d="M 40.583264,50.439816 H 25.452717 v -5.610305 h 15.130547 v 5.610305"
|
||||
id="path135" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#e1e1e1;stroke-width:0.44942763;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 40.583264,50.439816 H 25.509457"
|
||||
id="path137" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#e1e1e1;stroke-width:0.44878906;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="m 25.552266,44.829521 h 15.030998 v 5.610295"
|
||||
id="path139" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ff545c;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.44672814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 70.883907,50.439816 H 55.737538 v -5.610295 h 15.146369 v 5.610295"
|
||||
id="path141" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ff2833;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.45488474;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="m 70.883907,50.439816 2.888885,-2.326496 v -5.810658 l -2.888885,2.320122 v 5.817032"
|
||||
id="path145" />
|
||||
<path
|
||||
id="path2041-9"
|
||||
d="M 0.23689523,6.4706772 6.0456103,1.2194547 H 51.92936 L 46.069691,6.4706772 H 0.23689523"
|
||||
style="fill:url(#linearGradient6875-35);fill-opacity:1;stroke:none;stroke-width:0.99648201"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2041-5"
|
||||
d="M 0.23689523,6.6010339 8.6205533,1.3498071 H 74.84408 L 66.386884,6.6010339 H 0.23689523"
|
||||
style="fill:url(#linearGradient6875-3);fill-opacity:1;stroke:none;stroke-width:1.19714344"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.43419823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 25.4631,6.6345316 25.34143,56.257182 25.4631,6.6345316"
|
||||
id="path987"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.45158434;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 32.697436,1.4761415 25.481582,6.6155667 32.697436,1.4761415"
|
||||
id="path987-2"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.44617558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 25.397623,28.812118 0.47800664,28.706997 25.397623,28.812118"
|
||||
id="path987-7"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:22.19543457px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#e1e1e1;fill-opacity:1;stroke:#e1e1e1;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
x="3.4368773"
|
||||
y="27.197458"
|
||||
id="text1030"
|
||||
transform="scale(1.1150382,0.89683024)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1028"
|
||||
x="3.4368773"
|
||||
y="27.197458"
|
||||
style="fill:#e1e1e1;fill-opacity:1;stroke:#e1e1e1;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">X</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:cmex10;-inkscape-font-specification:cmex10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-20.137201"
|
||||
y="37.709763"
|
||||
id="text1038"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1036"
|
||||
x="-20.137201"
|
||||
y="50.984001" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.4306345px;line-height:125%;font-family:cmex10;-inkscape-font-specification:cmex10;letter-spacing:0px;word-spacing:0px;fill:#e1e1e1;fill-opacity:1;stroke:#e1e1e1;stroke-width:1.10999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
x="7.406137"
|
||||
y="41.795387"
|
||||
id="text1042"
|
||||
transform="matrix(1.2652956,0.14571288,-0.10430839,0.77831689,0,0)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1040"
|
||||
x="7.406137"
|
||||
y="41.795387"
|
||||
style="fill:#e1e1e1;fill-opacity:1;stroke:#e1e1e1;stroke-width:1.10999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">q</tspan></text>
|
||||
<path
|
||||
id="path3151"
|
||||
d="m 31.317035,20.132255 h 19.167626 v -1.277787 l 4.122053,2.556266 -4.122053,2.768616 V 22.901598 H 31.317035 Z"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff"
|
||||
d="m 31.443673,19.752306 h 18.646458 v -1.277787 l 4.009979,2.556266 -4.009979,2.768616 V 22.521649 H 31.443673 Z"
|
||||
id="path134"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path3943"
|
||||
d="M 59.823791,27.288424 H 43.953868 v -1.278496 l -4.32815,2.556284 4.32815,2.769324 v -1.278478 h 15.869923 z"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff"
|
||||
d="M 60.077102,26.781838 H 44.207179 v -1.278496 l -4.32815,2.556283 4.32815,2.769325 v -1.278478 h 15.869923 z"
|
||||
id="path136"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff"
|
||||
d="m 67.290672,40.200944 -2.679324,3.40859 -9.686817,-8.09495 2.679307,-3.620941 z"
|
||||
id="path142"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.27946547"
|
||||
d="m 67.290672,40.200944 -2.679324,3.40859 -9.686817,-8.09495 2.679307,-3.620941 9.686834,8.307301"
|
||||
id="path144"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff"
|
||||
d="M 32.253177,22.308554 C 31.428756,30.615855 37.199634,38.070849 45.0316,38.923174 53.069574,39.987867 60.283198,34.023737 61.313751,25.716436 62.138084,17.409117 56.367259,9.9541413 48.329196,9.1018153 40.497354,8.0371403 33.077616,14.001236 32.253177,22.308554 l 2.061053,0.213095 c 0.824439,-7.029531 7.007457,-12.141354 13.80887,-11.289738 7.007545,0.63923 11.954002,7.242608 11.129563,14.271431 -0.824404,7.029549 -7.00751,12.141354 -14.014967,11.502814 C 38.436283,36.153832 33.489809,29.550472 34.31423,22.521649 Z"
|
||||
id="path146"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.27946547"
|
||||
d="M 32.253177,22.308554 C 31.428756,30.615855 37.199634,38.070849 45.0316,38.923174 53.069574,39.987867 60.283198,34.023737 61.313751,25.716436 62.138084,17.409117 56.367259,9.9541413 48.329196,9.1018153 40.497354,8.0371403 33.077616,14.001236 32.253177,22.308554"
|
||||
id="path148"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.27946547"
|
||||
d="m 34.31423,22.521649 c 0.824439,-7.029531 7.007457,-12.141354 13.80887,-11.289738 7.007545,0.63923 11.954002,7.242608 11.129563,14.271431 -0.824404,7.029549 -7.00751,12.141354 -14.014967,11.502814 C 38.436283,36.153832 33.489809,29.550472 34.31423,22.521649"
|
||||
id="path150"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff"
|
||||
d="M 30.398291,22.947802 C 29.573887,31.255103 35.344766,38.71008 43.38274,39.77479 51.214688,40.627115 58.634356,34.662985 59.458794,26.355684 60.283198,18.048365 54.718417,10.593389 46.680372,9.7410633 38.642397,8.6763713 31.428756,14.640501 30.398291,22.947802 l 2.061,0.212368 c 0.824421,-7.028804 7.007528,-12.141318 14.014984,-11.289029 6.801413,0.639248 11.74787,7.241917 10.923466,14.271449 C 56.573373,33.172139 50.390285,38.283926 43.588854,37.644696 36.581327,36.79308 31.634852,30.402779 32.459291,23.16017 Z"
|
||||
id="path152"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.27946547"
|
||||
d="M 30.398291,22.947802 C 29.573887,31.255103 35.344766,38.71008 43.38274,39.77479 51.214688,40.627115 58.634356,34.662985 59.458794,26.355684 60.283198,18.048365 54.718417,10.593389 46.680372,9.7410633 38.642397,8.6763713 31.428756,14.640501 30.398291,22.947802"
|
||||
id="path154"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.27946547"
|
||||
d="m 32.459291,23.16017 c 0.824421,-7.028804 7.007528,-12.141318 14.014984,-11.289029 6.801413,0.639248 11.74787,7.241917 10.923466,14.271449 C 56.573373,33.172139 50.390285,38.283926 43.588854,37.644696 36.581327,36.79308 31.634852,30.402779 32.459291,23.16017"
|
||||
id="path156"
|
||||
inkscape:connector-curvature="0" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,244 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg1998"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.91 r13725"
|
||||
width="51.358818"
|
||||
height="47.630692"
|
||||
version="1.0"
|
||||
sodipodi:docname="ise.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
sodipodi:modified="true">
|
||||
<metadata
|
||||
id="metadata2003">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
<dc:title />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jeremy Grossmann</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>GNS-3</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2001">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient10123">
|
||||
<stop
|
||||
style="stop-color:#e4405c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop10125" />
|
||||
<stop
|
||||
style="stop-color:#e4405c;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop10127" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient8331">
|
||||
<stop
|
||||
style="stop-color:#6e8caa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop8333" />
|
||||
<stop
|
||||
style="stop-color:#dde3ef;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop8335" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6603">
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6605" />
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6607" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6587">
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6589" />
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6591" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11918"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="matrix(1.1,0,0,1.1,1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11921"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11936"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6587"
|
||||
id="linearGradient6593"
|
||||
x1="3.95626"
|
||||
y1="0.64267641"
|
||||
x2="-1.2664427"
|
||||
y2="0.62730032"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942481e-3,-0.356572)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6603"
|
||||
id="linearGradient6609"
|
||||
x1="2.2801981"
|
||||
y1="1.4519272"
|
||||
x2="-0.41311559"
|
||||
y2="1.4649135"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942482e-3,-0.356572)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10123"
|
||||
id="linearGradient10129"
|
||||
x1="1.3990936"
|
||||
y1="1.4711363"
|
||||
x2="0.49966058"
|
||||
y2="0.56367606"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.117962,0,0,1.035008,-4.0973e-2,-6.788682e-3)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8331"
|
||||
id="linearGradient6875"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(24.897735,0,0,25.405463,-9.0988193,-4.8632254)"
|
||||
x1="2.1178279"
|
||||
y1="0.30649999"
|
||||
x2="-0.4954865"
|
||||
y2="0.30649999" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="670"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="3.9479168"
|
||||
inkscape:cx="23.755426"
|
||||
inkscape:cy="27.781894"
|
||||
inkscape:window-x="77"
|
||||
inkscape:window-y="25"
|
||||
inkscape:current-layer="svg1998"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<path
|
||||
id="path11907"
|
||||
d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612"
|
||||
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path11020"
|
||||
d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672"
|
||||
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
id="path2037"
|
||||
d="m 0.31579887,5.6624885 0,41.1710225 44.34519313,0 0,-41.1710225 -44.34519313,0"
|
||||
style="fill:#6e8caa;fill-opacity:1;stroke:none;stroke-width:0.001"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2041"
|
||||
d="M -0.38461268,5.6292351 L 5.2920708,0.21786924 L 50.13289,0.21786924 L 44.406412,5.6292351 L -0.38461268,5.6292351"
|
||||
style="fill:url(#linearGradient6875);fill-opacity:1;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2045"
|
||||
d="M 44.273363,5.1335036 L 49.931392,0.17309204 L 49.931392,41.393412 L 44.273363,46.353824 L 44.273363,5.1335036"
|
||||
style="fill:#6e8296;fill-opacity:1;stroke:none;stroke-width:0.001" />
|
||||
<image
|
||||
y="8.9374905"
|
||||
x="3.9664361"
|
||||
id="image3386"
|
||||
xlink:href="data:image/png;base64,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 zaKWKGBlQzWNs8ZmdGg78GijRXnUSrFgLine truncated
|
||||
style="image-rendering:optimizeSpeed"
|
||||
preserveAspectRatio="none"
|
||||
height="35.988243"
|
||||
width="37.457115" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 216 KiB |
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg id="svg1998" width="66.000435" height="44.5159" version="1.0" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs id="defs2001">
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow2Lstart" style="overflow:visible">
|
||||
<path id="path11918" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " transform="matrix(1.1,0,0,1.1,1.1,0)"/>
|
||||
</marker>
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow1Send" style="overflow:visible">
|
||||
<path id="path11921" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none" transform="matrix(-0.2,0,0,-0.2,-1.2,0)"/>
|
||||
</marker>
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow1Lstart" style="overflow:visible">
|
||||
<path id="path11936" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none" transform="matrix(0.8,0,0,0.8,10,0)"/>
|
||||
</marker>
|
||||
<linearGradient id="linearGradient2216" gradientUnits="userSpaceOnUse" gradientTransform="matrix(15.252829,0,0,14.082619,53.467529,3.4188377)" x1="-1.0929121" y1="0.63145506" x2="-4.5832458" y2="0.070047863">
|
||||
<stop style="stop-opacity: 1; stop-color: rgb(68, 70, 84);" offset="0" id="stop9314"/>
|
||||
<stop style="stop-color:#ffffff;stop-opacity:0.94117647;" offset="1" id="stop9316"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect style="opacity:1;fill:#000000;fill-opacity:0.39215687;fill-rule:evenodd;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect4558" width="64.552505" height="41.53862" x="1.4479325" y="2.9772801" ry="11.631706" rx="32.212925"/>
|
||||
<rect style="opacity: 1; fill-opacity: 1; fill-rule: evenodd; stroke: none; stroke-width: 0.015; stroke-linecap: square; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 1; fill: rgb(68, 70, 84);" id="rect9971" width="64.499474" height="42.154343" x="0.0625" y="0.18084908" ry="11.557454" rx="32.249737"/>
|
||||
<g id="g4160">
|
||||
<path id="path4815" d="M 64.514069,11.541297 L 64.457031,10.955643 L 64.342949,10.36999 L 64.152814,9.8038604 L 63.867612,9.2182077 L 63.487345,8.6520765 L 63.050034,8.0859452 L 62.517657,7.5393369 L 61.909226,7.0122499 L 61.224742,6.4851607 L 60.464203,5.9775955 L 59.646626,5.4700289 L 58.752993,4.9819859 L 57.783307,4.4939413 L 56.75658,4.0644625 L 55.6538,3.6349838 L 54.493981,3.2055052 L 53.296132,2.8150692 L 52.022232,2.4636777 L 50.710303,2.1122862 L 49.341334,1.7999375 L 47.934339,1.5071117 L 46.489316,1.2338059 L 45.006267,0.99954576 L 43.504204,0.76528425 L 41.964114,0.58958842 L 40.385997,0.43341443 L 38.788867,0.29676153 L 37.191738,0.19915292 L 35.575597,0.12106555 L 33.940437,0.06250017 L 32.324296,0.06250017 L 32.324296,0.06250017 L 30.689136,0.06250017 L 29.053981,0.12106555 L 27.45685,0.19915292 L 25.840705,0.29676153 L 24.243576,0.43341443 L 22.684472,0.58958842 L 21.125372,0.76528425 L 19.623307,0.99954576 L 18.140258,1.2338059 L 16.695234,1.5071117 L 15.28824,1.7999375 L 13.919273,2.1122862 L 12.607342,2.4636777 L 11.333442,2.8150692 L 10.135592,3.2055052 L 8.9757693,3.6349838 L 7.8729941,4.0644625 L 6.8462664,4.4939413 L 5.8765785,4.9819859 L 4.9829488,5.4700289 L 4.1653682,5.9775955 L 3.4048335,6.4851607 L 2.7203448,7.0122499 L 2.1309311,7.5393369 L 1.5795405,8.0859452 L 1.1422325,8.6520765 L 0.76195982,9.2182077 L 0.47676065,9.8038604 L 0.26760898,10.36999 L 0.15353084,10.955643 L 0.11550327,11.541297 L 0.11550327,11.541297 L 0.15353084,12.12695 L 0.26760898,12.693081 L 0.47676065,13.278734 L 0.76195982,13.825344 L 1.1422325,14.410996 L 1.5795405,14.957605 L 2.1309311,15.523736 L 2.7203448,16.070348 L 3.4048335,16.597435 L 4.1653682,17.085479 L 4.9829488,17.593043 L 5.8765785,18.100608 L 6.8462664,18.549609 L 7.8729941,18.998611 L 8.9757693,19.447613 L 10.135592,19.857571 L 11.333442,20.248007 L 12.607342,20.599396 L 13.919273,20.950787 L 15.28824,21.263135 L 16.695234,21.575486 L 18.140258,21.829265 L 19.623307,22.083049 L 21.125372,22.297787 L 22.684472,22.473485 L 24.243576,22.629661 L 25.840705,22.766312 L 27.45685,22.863921 L 29.053981,22.942009 L 30.689136,23.000574 L 32.324296,23.000574 L 32.324296,23.000574 L 33.940437,23.000574 L 35.575597,22.942009 L 37.191738,22.863921 L 38.788867,22.766312 L 40.385997,22.629661 L 41.964114,22.473485 L 43.504204,22.297787 L 45.006267,22.083049 L 46.489316,21.829265 L 47.934339,21.575486 L 49.341334,21.263135 L 50.710303,20.950787 L 52.022232,20.599396 L 53.296132,20.248007 L 54.493981,19.857571 L 55.6538,19.447613 L 56.75658,18.998611 L 57.783307,18.549609 L 58.752993,18.100608 L 59.646626,17.593043 L 60.464203,17.085479 L 61.224742,16.597435 L 61.909226,16.070348 L 62.517657,15.523736 L 63.050034,14.957605 L 63.487345,14.410996 L 63.867612,13.825344 L 64.152814,13.278734 L 64.342949,12.693081 L 64.457031,12.12695 L 64.514069,11.541297" style="fill:url(#linearGradient2216);fill-opacity:1;stroke:none;stroke-width:0.01928605;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||
<path id="path4819" d="M 33.023738,8.6936939 L 37.664889,10.327433 L 48.909313,5.4458969 L 53.946665,7.0599533 L 51.229891,3.0248142 L 38.061087,3.0248142 L 43.475766,4.225514 L 33.023738,8.6936939" style="fill:#000000;stroke:none;stroke-width:0.001"/>
|
||||
<path id="path4821" d="M 31.08049,13.161874 L 26.439334,11.528132 L 15.591104,16.429352 L 10.176425,14.775929 L 12.874332,19.244109 L 26.439334,19.244109 L 20.628458,17.630052 L 31.08049,13.161874" style="fill:#000000;stroke:none;stroke-width:0.001"/>
|
||||
<path id="path4823" d="M 11.327278,4.225514 L 15.968435,2.611458 L 27.212859,7.0599533 L 32.25021,5.8592533 L 29.552303,9.8943939 L 16.364632,9.8943939 L 21.779313,8.6936939 L 11.327278,4.225514" style="fill:#000000;stroke:none;stroke-width:0.001"/>
|
||||
<path id="path4825" d="M 53.154272,18.023723 L 48.513117,19.657467 L 37.664889,14.775929 L 32.25021,16.429352 L 34.966985,12.33516 L 48.513117,12.33516 L 42.70224,13.555544 L 53.154272,18.023723" style="fill:#000000;stroke:none;stroke-width:0.001"/>
|
||||
<path id="path4827" d="M 33.419936,9.1070493 L 38.061087,10.721105 L 49.286643,5.8592533 L 54.323994,7.4929926 L 51.60722,3.4184854 L 38.438415,3.4184854 L 43.871962,4.6191872 L 33.419936,9.1070493" style="fill:#ffffff;stroke:none;stroke-width:0.001"/>
|
||||
<path id="path4829" d="M 31.476681,13.555544 L 26.816665,11.941487 L 15.968435,16.803341 L 10.553753,15.189284 L 13.25166,19.657467 L 26.816665,19.657467 L 21.005786,18.023723 L 31.476681,13.555544" style="fill:#ffffff;stroke:none;stroke-width:0.001"/>
|
||||
<path id="path4831" d="M 11.723476,4.6191872 L 16.364632,3.0248142 L 27.609055,7.4929926 L 32.627541,6.2529266 L 29.929634,10.327433 L 16.741963,10.327433 L 22.175509,9.1070493 L 11.723476,4.6191872" style="fill:#ffffff;stroke:none;stroke-width:0.001"/>
|
||||
<path id="path4833" d="M 53.531602,18.43708 L 48.909313,20.070823 L 38.061087,15.189284 L 32.627541,16.803341 L 35.344315,12.7682 L 48.909313,12.7682 L 43.098437,13.9689 L 53.531602,18.43708" style="fill:#ffffff;stroke:none;stroke-width:0.001"/>
|
||||
</g>
|
||||
<g transform="matrix(0.059769, 0, 0, 0.066697, 21.302736, 26.330629)">
|
||||
<g transform="matrix(1,0,0,1,7.5,7.5)">
|
||||
<g>
|
||||
<path d="M 125.25 40.347 C 140.522 14.219 168.408 -3.654 200.529 -4.892 C 201.714 -4.938 202.904 -4.961 204.1 -4.961 L 217.098 -4.041 C 251.366 0.854 279.522 24.815 290.461 56.74 C 294.455 55.896 298.597 55.453 302.841 55.453 C 335.818 55.453 362.591 82.226 362.591 115.203 C 362.591 148.18 335.818 174.953 302.841 174.953 L 158.914 174.956 L 55.471 174.958 C 26.28 174.958 2.58 151.258 2.58 122.067 C 2.58 92.876 26.28 69.176 55.471 69.176 C 59.085 69.176 62.615 69.539 66.026 70.232 C 78.145 52.171 98.752 40.275 122.116 40.275 C 123.167 40.275 124.212 40.299 125.25 40.347 Z" style="fill: none; stroke-width: 14px; stroke: rgb(255, 255, 255);"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.9 KiB |
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg id="svg1998" width="51.358818" height="47.630692" version="1.0" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs id="defs2001">
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow2Lstart" style="overflow:visible">
|
||||
<path id="path11918" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " transform="matrix(1.1,0,0,1.1,1.1,0)"/>
|
||||
</marker>
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow1Send" style="overflow:visible">
|
||||
<path id="path11921" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none" transform="matrix(-0.2,0,0,-0.2,-1.2,0)"/>
|
||||
</marker>
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow1Lstart" style="overflow:visible">
|
||||
<path id="path11936" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none" transform="matrix(0.8,0,0,0.8,10,0)"/>
|
||||
</marker>
|
||||
<linearGradient id="linearGradient9199" gradientUnits="userSpaceOnUse" gradientTransform="matrix(24.666332,1.3331909e-2,-1.2883406e-2,23.708747,-8.6563136,-4.6316275)" x1="2.1178279" y1="0.30649999" x2="-0.4954865" y2="0.30649999">
|
||||
<stop style="stop-opacity: 1; stop-color: rgb(0, 173, 105);" offset="0" id="stop8333"/>
|
||||
<stop style="stop-opacity: 1; stop-color: rgb(154, 238, 204);" offset="1" id="stop8335"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path id="path11907" d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"/>
|
||||
<path id="path11020" d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"/>
|
||||
<path id="path2037" d="M 0.062500355,5.0439492 L 0.062500355,46.326915 L 44.31814,46.326915 L 44.31814,5.0439492 L 0.062500355,5.0439492" style="fill-opacity: 1; stroke: none; stroke-width: 0.001; fill: rgb(0, 173, 105);"/>
|
||||
<path id="path2041" d="M -0.028418806,5.1647552 L 5.5982489,0.11782966 L 50.022311,0.14184042 L 44.346312,5.1887393 L -0.028418806,5.1647552" style="fill: url(#linearGradient9199); fill-opacity: 1; stroke: none; stroke-width: 0.001;"/>
|
||||
<path id="path2045" d="M 44.228586,5.0887264 L 49.976169,0.12831483 L 49.976169,41.348635 L 44.228586,46.309047 L 44.228586,5.0887264" style="fill-opacity: 1; stroke: none; stroke-width: 0.001; fill: rgb(16, 139, 90);"/>
|
||||
<g id="Logos" transform="matrix(0.276292, 0, 0, 0.276292, -12.575964, -8.873246)">
|
||||
<path class="cls-2" d="M147,170c-25.91,0-47-20.83-47-46.43,0,0,0-2.08,0-2.48,0-2.15.48-5.87,3.18-11.35l.38-.77.14.85c1.18,7.34,2.65,14.71,2.66,14.77,4.2,20.3,21.29,35,40.64,35a36.15,36.15,0,0,0,3.45-72.14h-.12l-.07-.1A68.76,68.76,0,0,0,143.89,80c-.75-.74-1.59-1.51-2.48-2.28l-.47-.4.61-.07A46.53,46.53,0,1,1,147,170Z" transform="translate(0 1.53)" style="fill: rgb(255, 255, 255);"/>
|
||||
<path class="cls-2" d="M102.91,170a46.53,46.53,0,0,1,0-93.07c25.91,0,47,20.83,47,46.43,0,0,0,2.08,0,2.48,0,2.15-.48,5.87-3.18,11.35l-.38.77-.14-.85c-1.17-7.32-2.65-14.71-2.66-14.76-4.2-20.3-21.29-35-40.64-35a36.15,36.15,0,0,0-3.45,72.14h.12l.07.1a68.8,68.8,0,0,0,6.39,7.36c.76.75,1.59,1.52,2.48,2.28l.47.4-.61.07A46.76,46.76,0,0,1,102.91,170Z" transform="translate(0 1.53)" style="fill: rgb(255, 255, 255);"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="67.82px" height="70px" viewBox="0 0 953.37 984"><defs><radialGradient id="radial-gradient" cx="-14491.11" cy="9293.72" fx="-14519.875714136173" r="450.88" gradientTransform="matrix(0.76, 0.03, 0.05, -1.12, 11485.79, 11147.95)" gradientUnits="userSpaceOnUse"><stop offset="0.1" stop-color="#ffea00"/><stop offset="0.17" stop-color="#ffde00"/><stop offset="0.28" stop-color="#ffbf00"/><stop offset="0.43" stop-color="#ff8e00"/><stop offset="0.77" stop-color="#ff272d"/><stop offset="0.87" stop-color="#e0255a"/><stop offset="0.95" stop-color="#cc2477"/><stop offset="1" stop-color="#c42482"/></radialGradient><radialGradient id="radial-gradient-2" cx="-7587.48" cy="8863.48" r="791.23" gradientTransform="matrix(1.23, 0, 0, -1.23, 9957.91, 11055.45)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#00ccda"/><stop offset="0.22" stop-color="#0083ff"/><stop offset="0.26" stop-color="#007af9"/><stop offset="0.33" stop-color="#0060e8"/><stop offset="0.33" stop-color="#005fe7"/><stop offset="0.44" stop-color="#2639ad"/><stop offset="0.52" stop-color="#401e84"/><stop offset="0.57" stop-color="#4a1475"/></radialGradient><linearGradient id="linear-gradient" x1="540.64" y1="254.8" x2="349.2" y2="881.03" gradientTransform="matrix(1, 0, 0, -1, 0, 984)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#000f43" stop-opacity="0.4"/><stop offset="0.48" stop-color="#001962" stop-opacity="0.17"/><stop offset="1" stop-color="#002079" stop-opacity="0"/></linearGradient><radialGradient id="radial-gradient-3" cx="-8337.74" cy="7467.89" r="266.89" gradientTransform="matrix(1.22, 0.12, 0.12, -1.22, 10240.78, 10765.16)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffea00"/><stop offset="0.5" stop-color="#ff272d"/><stop offset="1" stop-color="#c42482"/></radialGradient><radialGradient id="radial-gradient-4" cx="-8361.89" cy="7723.8" r="445.68" gradientTransform="matrix(1.22, 0.12, 0.12, -1.22, 10240.78, 10765.16)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffe900"/><stop offset="0.16" stop-color="#ffaf0e"/><stop offset="0.32" stop-color="#ff7a1b"/><stop offset="0.47" stop-color="#ff4e26"/><stop offset="0.62" stop-color="#ff2c2e"/><stop offset="0.76" stop-color="#ff1434"/><stop offset="0.89" stop-color="#ff0538"/><stop offset="1" stop-color="#ff0039"/></radialGradient><radialGradient id="radial-gradient-5" cx="-8298.85" cy="7310.66" r="408.96" gradientTransform="matrix(1.22, 0.12, 0.12, -1.22, 10240.78, 10765.16)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ff272d"/><stop offset="0.5" stop-color="#c42482"/><stop offset="0.99" stop-color="#620700"/></radialGradient><radialGradient id="radial-gradient-6" cx="715.19" cy="589.96" fx="743.1665035759834" fy="576.1323859732546" r="782.18" gradientTransform="matrix(1, 0, 0, -1, 0, 984)" gradientUnits="userSpaceOnUse"><stop offset="0.16" stop-color="#ffea00"/><stop offset="0.23" stop-color="#ffde00"/><stop offset="0.37" stop-color="#ffbf00"/><stop offset="0.54" stop-color="#ff8e00"/><stop offset="0.76" stop-color="#ff272d"/><stop offset="0.8" stop-color="#f92433"/><stop offset="0.84" stop-color="#e91c45"/><stop offset="0.89" stop-color="#cf0e62"/><stop offset="0.94" stop-color="#b5007f"/></radialGradient><radialGradient id="radial-gradient-7" cx="670.34" cy="952.71" r="891.45" gradientTransform="matrix(1, 0, 0, -1, 0, 984)" gradientUnits="userSpaceOnUse"><stop offset="0.28" stop-color="#ffea00"/><stop offset="0.4" stop-color="#fd0"/><stop offset="0.63" stop-color="#ffba00"/><stop offset="0.86" stop-color="#ff9100"/><stop offset="0.93" stop-color="#ff6711"/><stop offset="0.99" stop-color="#ff4a1d"/></radialGradient><linearGradient id="linear-gradient-2" x1="-9023.45" y1="7636.92" x2="-8716.42" y2="7715.18" gradientTransform="matrix(1.22, 0.12, 0.12, -1.22, 10240.78, 10765.16)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#c42482" stop-opacity="0.5"/><stop offset="0.47" stop-color="#ff272d" stop-opacity="0.5"/><stop offset="0.49" stop-color="#ff2c2c" stop-opacity="0.51"/><stop offset="0.68" stop-color="#ff7a1a" stop-opacity="0.72"/><stop offset="0.83" stop-color="#ffb20d" stop-opacity="0.87"/><stop offset="0.94" stop-color="#ffd605" stop-opacity="0.96"/><stop offset="1" stop-color="#ffe302"/></linearGradient><linearGradient id="linear-gradient-3" x1="188.87" y1="2081.23" x2="134.3" y2="2221.08" gradientTransform="matrix(0.99, 0.1, 0.1, -0.99, -250.09, 2306.15)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#891551" stop-opacity="0.6"/><stop offset="1" stop-color="#c42482" stop-opacity="0"/></linearGradient><linearGradient id="linear-gradient-4" x1="-38.43" y1="278.04" x2="55.68" y2="171.16" gradientTransform="matrix(0.99, 0.1, 0.1, -0.99, 229.04, 745.74)" gradientUnits="userSpaceOnUse"><stop offset="0.01" stop-color="#891551" stop-opacity="0.5"/><stop offset="0.48" stop-color="#ff272d" stop-opacity="0.5"/><stop offsLine truncated
|
||||
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg id="svg1998" width="55.044277" height="63.620274" version="1.0" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="title3303">ASA</title>
|
||||
<defs id="defs2001">
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow2Lstart" style="overflow:visible">
|
||||
<path id="path11918" style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round" d="M 11.403143,4.732916 -1.416553,0.01878889 11.403144,-4.6953372 c -2.0480517,2.7832182 -2.0362508,6.5911436 -10e-7,9.4282532 z"/>
|
||||
</marker>
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow1Send" style="overflow:visible">
|
||||
<path id="path11921" d="M -1.28,0 -2.3466667,1.0666667 1.3866667,0 -2.3466667,-1.0666667 Z" style="fill-rule:evenodd;stroke:#000000;stroke-width:0.21333334pt;marker-start:none"/>
|
||||
</marker>
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow1Lstart" style="overflow:visible">
|
||||
<path id="path11936" d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z" style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"/>
|
||||
</marker>
|
||||
<linearGradient id="linearGradient6875" gradientUnits="userSpaceOnUse" gradientTransform="matrix(26.557584,0,0,27.099161,-9.2951537,-5.3720715)" x1="2.1178279" y1="0.30649999" x2="-0.4954865" y2="0.30649999">
|
||||
<stop style="stop-opacity: 1; stop-color: rgb(239, 239, 239);" offset="0" id="stop8333"/>
|
||||
<stop style="stop-opacity: 1; stop-color: rgb(255, 255, 255);" offset="1" id="stop8335"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path id="path11907" d="m 2.277686,60.343382 v 3.25342 h 45.379267 v -3.25342 H 2.277686" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:1.06666672"/>
|
||||
<path id="path11020" d="M 47.765643,8.1809483 55.044279,1.3761504 55.028695,57.643455 47.654539,63.62027 47.765638,8.1809483" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:1.06666672"/>
|
||||
<path id="path2037" d="M 0.47692057,5.3149867 V 49.230745 H 47.778461 V 5.3149867 H 0.47692057" style="fill-opacity: 1; stroke: none; stroke-width: 1.06667; fill: rgb(239, 239, 239);"/>
|
||||
<path id="path2041" d="M 0,5.8198859 6.0551291,0.04776213 H 53.885337 L 47.777093,5.8198859 H 0" style="fill:url(#linearGradient6875);fill-opacity:1;stroke:none;stroke-width:1.06666672"/>
|
||||
<path id="path2045" d="M 47.635174,5.2911061 53.670405,0 v 43.968341 l -6.035231,5.291106 V 5.2911061" style="fill-opacity: 1; stroke: none; stroke-width: 1.06667; fill: rgb(223, 223, 223);"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.06040335" d="m 68.017411,-124.00618 h 32.336679 v -2.5979 l 6.95208,5.19579 -6.95208,5.62568 v -2.59789 H 68.017411 v -5.62568" id="path39"/>
|
||||
<path style="fill:#000000;stroke:#ffffff;stroke-width:1.06040335;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 56.893321,-121.40829 H 70.452314" id="path61"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.06040335" d="M 16.19484,61.82555 H 0.42243277 V 55.665507 H 16.19484 v 6.160043" id="path99"/>
|
||||
<path style="fill:#000000;stroke:#e1e1e1;stroke-width:0.47963932;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 16.19484,61.82555 H 0.57567743" id="path101"/>
|
||||
<path style="fill:#000000;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 0.66977537,55.665507 H 16.19484 v 6.160043" id="path103"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 47.780883,61.82555 H 31.991982 v -6.160043 h 15.788901 v 6.160043" id="path105"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 40.280128,61.82555 H 24.474743 v -6.160043 h 15.805385 v 6.160043" id="path107"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 24.474743,61.82555 H 8.6940847 V 55.665507 H 24.474743 v 6.160043" id="path109"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.50290239;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="m 50.792321,53.512289 2.638353,-2.735375 v -6.805626 l -2.638353,2.720386 v 6.820615" id="path111"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="m 50.792321,59.372711 2.638353,-2.166775 v -6.166822 l -2.638353,2.160008 v 6.173589" id="path125"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="m 47.780883,61.82555 3.011438,-2.452839 v -6.173589 l -3.011438,2.466385 v 6.160043" id="path127"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 31.991982,55.665507 H 16.19484 v -6.166811 h 15.797142 v 6.166811" id="path133"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.06040335" d="M 16.19484,55.665507 H 0.42243277 V 49.498685 H 16.19484 v 6.166822" id="path135"/>
|
||||
<path style="fill:#000000;stroke:#e1e1e1;stroke-width:0.48108193;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 16.19484,55.665507 H 0.48158037" id="path137"/>
|
||||
<path style="fill:#000000;stroke:#e1e1e1;stroke-width:0.48039833;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 0.52620409,49.498696 H 16.19484 v 6.166811" id="path139"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 47.780883,55.665507 H 31.991982 v -6.166811 h 15.788901 v 6.166811" id="path141"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.48692337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="m 47.780883,55.665507 3.011438,-2.557269 v -6.387053 l -3.011438,2.550268 v 6.394054" id="path145"/>
|
||||
<path d="M 5.129 23.9 L 15.893 23.9 L 15.893 30.974 L 5.129 30.974 Z M 18.834 13.881 L 29.395 13.881 L 29.395 20.952 L 18.834 20.952 Z M 18.834 33.92 L 29.395 33.92 L 29.395 40.987 L 18.834 40.987 Z M 32.331 23.9 L 43.128 23.9 L 43.128 30.974 L 32.331 30.974 Z M 9.547 13.881 C 7.305 14.472 5.541 16.98 5.129 20.161 L 5.129 20.952 L 15.893 20.952 L 15.893 13.881 Z M 5.129 33.92 L 5.129 34.791 C 5.519 37.844 7.16 40.27 9.272 40.985 L 15.895 40.985 L 15.895 33.919 L 5.13 33.919 Z M 43.129 20.952 L 43.129 20.157 C 42.717 16.974 40.956 14.472 38.711 13.881 L 32.336 13.881 L 32.336 20.952 Z M 38.988 40.99 C 41.093 40.275 42.734 37.849 43.126 34.798 L 43.126 33.92 L 32.334 33.92 L 32.334 40.99 L 38.989 40.99 Z" fill="#e2231a"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.2 KiB |
@@ -0,0 +1,72 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) by Marsupilami -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="70"
|
||||
height="50"
|
||||
viewBox="-0.5330211 -0.5330211 10.665723 7.5941177"
|
||||
id="svg4441"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="Fortinet_logo.svg">
|
||||
<metadata
|
||||
id="metadata9">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2495"
|
||||
inkscape:window-height="1056"
|
||||
id="namedview7"
|
||||
showgrid="false"
|
||||
inkscape:snap-page="true"
|
||||
inkscape:zoom="3.2924659"
|
||||
inkscape:cx="164.79393"
|
||||
inkscape:cy="31.941697"
|
||||
inkscape:window-x="1985"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4441" />
|
||||
<defs
|
||||
id="defs4443" />
|
||||
<rect
|
||||
style="stroke:#ffffff;stroke-width:0.15236747;stroke-opacity:1;fill:#ffffff"
|
||||
id="rect3339"
|
||||
width="10.665723"
|
||||
height="7.6183734"
|
||||
x="-0.53302109"
|
||||
y="-0.54514885" />
|
||||
<path
|
||||
d="m 8.9771066,7.0637696 c 0.5909941,-0.200745 1.0508344,-0.881137 1.1616464,-1.737115 l 0,-0.247318 -3.0299144,0 0,1.984433 1.868268,0 z m 1.1618084,-5.6233777 0,-0.223764 C 10.022751,0.32371345 9.5286497,-0.37969755 8.8985776,-0.54511155 l -1.789576,0 0,1.98550345 3.0299134,0 z m -10.66545725,3.6390517 0,0.245177 c 0.1097407,0.856513 0.5695809,1.538511 1.16218056,1.739256 l 1.85863229,0 0,-1.984433 -3.02081285,0 z m 1.23990906,-5.62428915 c -0.62900136,0.165414 -1.12470806,0.86936 -1.23980196,1.76334495 l 0,0.222158 3.02081275,0 0,-1.98550295 -1.78101079,0 z m 9.42576219,2.81198615 -3.0299134,0 0,1.9855032 3.0299134,0 0,-1.9855032 z m -6.8194454,4.79647 2.964068,0 0,-1.984432 -2.964068,0 0,1.984432 z m 2.964068,-7.60850815 -2.964068,0 0,1.98550355 2.964068,0 0,-1.98550355 z m -6.81034515,4.79754135 3.02081315,0 0,-1.9855032 -3.02081315,0 0,1.9855032 z"
|
||||
id="path4408"
|
||||
style="fill:#ee2e24;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Logo" />
|
||||
</svg>
|
||||
<!-- version: 20110311, original size: 154.95825 17.76737, border: 3% -->
|
||||
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
@@ -0,0 +1,284 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg1998"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.91 r13725"
|
||||
width="51.358818"
|
||||
height="47.630692"
|
||||
version="1.0"
|
||||
sodipodi:docname="vmx.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
sodipodi:modified="true">
|
||||
<metadata
|
||||
id="metadata2003">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
<dc:title />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jeremy Grossmann</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>GNS-3</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2001">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient10123">
|
||||
<stop
|
||||
style="stop-color:#e4405c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop10125" />
|
||||
<stop
|
||||
style="stop-color:#e4405c;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop10127" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient8331">
|
||||
<stop
|
||||
style="stop-color:#6e8caa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop8333" />
|
||||
<stop
|
||||
style="stop-color:#dde3ef;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop8335" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6603">
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6605" />
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6607" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6587">
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6589" />
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6591" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11918"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="matrix(1.1,0,0,1.1,1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11921"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11936"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6587"
|
||||
id="linearGradient6593"
|
||||
x1="3.95626"
|
||||
y1="0.64267641"
|
||||
x2="-1.2664427"
|
||||
y2="0.62730032"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942481e-3,-0.356572)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6603"
|
||||
id="linearGradient6609"
|
||||
x1="2.2801981"
|
||||
y1="1.4519272"
|
||||
x2="-0.41311559"
|
||||
y2="1.4649135"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942482e-3,-0.356572)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10123"
|
||||
id="linearGradient10129"
|
||||
x1="1.3990936"
|
||||
y1="1.4711363"
|
||||
x2="0.49966058"
|
||||
y2="0.56367606"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.117962,0,0,1.035008,-4.0973e-2,-6.788682e-3)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8331"
|
||||
id="linearGradient6875"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(24.897735,0,0,25.405463,-9.0988193,-4.8632254)"
|
||||
x1="2.1178279"
|
||||
y1="0.30649999"
|
||||
x2="-0.4954865"
|
||||
y2="0.30649999" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="670"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="2.7915987"
|
||||
inkscape:cx="23.755426"
|
||||
inkscape:cy="-42.804631"
|
||||
inkscape:window-x="77"
|
||||
inkscape:window-y="25"
|
||||
inkscape:current-layer="svg1998"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<path
|
||||
id="path11907"
|
||||
d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612"
|
||||
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path11020"
|
||||
d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672"
|
||||
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
id="path2037"
|
||||
d="m 0.31579887,5.6624885 0,41.1710225 44.34519313,0 0,-41.1710225 -44.34519313,0"
|
||||
style="fill:#6e8caa;fill-opacity:1;stroke:none;stroke-width:0.001"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2041"
|
||||
d="M -0.38461268,5.6292351 L 5.2920708,0.21786924 L 50.13289,0.21786924 L 44.406412,5.6292351 L -0.38461268,5.6292351"
|
||||
style="fill:url(#linearGradient6875);fill-opacity:1;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2045"
|
||||
d="M 44.273363,5.1335036 L 49.931392,0.17309204 L 49.931392,41.393412 L 44.273363,46.353824 L 44.273363,5.1335036"
|
||||
style="fill:#6e8296;fill-opacity:1;stroke:none;stroke-width:0.001" />
|
||||
<g
|
||||
id="g3381"
|
||||
transform="translate(50.86691,-20.06019)">
|
||||
<g
|
||||
transform="matrix(0.1704237,0,0,0.1704237,-48.337546,-4.9946169)"
|
||||
id="shape2-2"
|
||||
v:mID="2"
|
||||
v:groupContext="shape">
|
||||
<title
|
||||
id="title14">Sheet.2</title>
|
||||
<path
|
||||
d="m 117,420.03 c 64.45,0 117,-52.56 117,-117 0,-64.45 -52.55,-117.02 -117,-117.02 -64.45,0 -117,52.57 -117,117.02 0,64.44 52.55,117 117,117 z"
|
||||
class="st1"
|
||||
id="path16"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#12537c;stroke:none;stroke-width:0.75;stroke-linecap:butt" />
|
||||
</g>
|
||||
<g
|
||||
style="stroke:#84b2dd;stroke-width:2.40000153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
transform="matrix(0.1704237,0,0,0.1704237,-48.337546,-4.9946169)"
|
||||
id="shape3-4"
|
||||
v:mID="3"
|
||||
v:groupContext="shape">
|
||||
<title
|
||||
id="title19">Sheet.3</title>
|
||||
<path
|
||||
d="m 117,420.03 c 64.45,0 117,-52.56 117,-117 0,-64.45 -52.55,-117.02 -117,-117.02 -64.45,0 -117,52.57 -117,117.02 0,64.44 52.55,117 117,117 z"
|
||||
class="st2"
|
||||
id="path21"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#84b2dd;stroke-width:2.40000153;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
style="stroke:#32425f;stroke-width:1.52000105;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="shape4-6"
|
||||
v:mID="4"
|
||||
v:groupContext="shape"
|
||||
transform="matrix(0.1704237,0,0,0.1704237,-43.935853,-8.9257283)">
|
||||
<title
|
||||
id="title24">Sheet.4</title>
|
||||
<path
|
||||
d="m 82.44,318.48 -6.36,0 -72.74,0 0,-17.52 63.98,0 0,-37.34 -9.38,0 9.13,-15.81 7.06,-12.21 2.07,-3.59 9.14,15.8 9.12,15.81 -4.16,0 -5.46,0 0,46.09 0,8.77 -2.4,0 z m 73.95,5.68 0,-5.68 -45.5,0 -8.76,0 0,-2.41 0,-6.36 0,-72.21 17.52,0 0,63.45 36.73,0 0.01,-9.15 15.81,9.14 12.2,7.04 -1.2,2.09 1.2,-2.09 3.6,2.08 -15.8,9.13 -15.82,9.11 0,-4.14 0.01,0 z m -86.67,93.62 0,-2.4 2.4,0 -2.4,0 0,2.4 -2.4,0 0,-63.46 -35.71,0 0,9.59 -15.81,-9.13 -15.8,-9.12 15.8,-9.14 15.81,-9.12 0,4.16 0,5.25 44.47,0 8.76,0 0,2.4 0,6.36 0,72.21 -15.12,0 z m 41.16,-2.56 2.08,-1.2 -2.08,1.2 z m -9.13,-11 -9.12,-15.81 4.16,0 5.34,-0.01 0,-42.83 0,-8.76 2.4,0 6.36,0 72.73,0 0,17.51 -63.96,0 0,34.09 9.48,0 -9.13,15.82 -7.04,12.2 -2.08,3.6 -9.14,-15.81 z"
|
||||
class="st3"
|
||||
id="path26"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke:#32425f;stroke-width:1.52000105;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 10 KiB |
@@ -0,0 +1,324 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg1998"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.91 r13725"
|
||||
width="51.358818"
|
||||
height="47.630692"
|
||||
version="1.0"
|
||||
sodipodi:docname="juniper-vqfx.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
sodipodi:modified="true">
|
||||
<metadata
|
||||
id="metadata2003">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
<dc:title />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jeremy Grossmann</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>GNS-3</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2001">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient10123">
|
||||
<stop
|
||||
style="stop-color:#e4405c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop10125" />
|
||||
<stop
|
||||
style="stop-color:#e4405c;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop10127" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient8331">
|
||||
<stop
|
||||
style="stop-color:#6e8caa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop8333" />
|
||||
<stop
|
||||
style="stop-color:#dde3ef;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop8335" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6603">
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6605" />
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6607" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6587">
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6589" />
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6591" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11918"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="matrix(1.1,0,0,1.1,1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11921"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11936"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6587"
|
||||
id="linearGradient6593"
|
||||
x1="3.95626"
|
||||
y1="0.64267641"
|
||||
x2="-1.2664427"
|
||||
y2="0.62730032"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942481e-3,-0.356572)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6603"
|
||||
id="linearGradient6609"
|
||||
x1="2.2801981"
|
||||
y1="1.4519272"
|
||||
x2="-0.41311559"
|
||||
y2="1.4649135"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942482e-3,-0.356572)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10123"
|
||||
id="linearGradient10129"
|
||||
x1="1.3990936"
|
||||
y1="1.4711363"
|
||||
x2="0.49966058"
|
||||
y2="0.56367606"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.117962,0,0,1.035008,-4.0973e-2,-6.788682e-3)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8331"
|
||||
id="linearGradient6875"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(24.897735,0,0,25.405463,-9.0988193,-4.8632254)"
|
||||
x1="2.1178279"
|
||||
y1="0.30649999"
|
||||
x2="-0.4954865"
|
||||
y2="0.30649999" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="719"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="3.9479168"
|
||||
inkscape:cx="55.736282"
|
||||
inkscape:cy="27.781894"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:current-layer="svg1998"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="1" />
|
||||
<path
|
||||
id="path11907"
|
||||
d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612"
|
||||
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path11020"
|
||||
d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672"
|
||||
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
id="path2037"
|
||||
d="m 0.31579887,5.6624885 0,41.1710225 44.34519313,0 0,-41.1710225 -44.34519313,0"
|
||||
style="fill:#6e8caa;fill-opacity:1;stroke:none;stroke-width:0.001"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2041"
|
||||
d="M -0.38461268,5.6292351 L 5.2920708,0.21786924 L 50.13289,0.21786924 L 44.406412,5.6292351 L -0.38461268,5.6292351"
|
||||
style="fill:url(#linearGradient6875);fill-opacity:1;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2045"
|
||||
d="M 44.273363,5.1335036 L 49.931392,0.17309204 L 49.931392,41.393412 L 44.273363,46.353824 L 44.273363,5.1335036"
|
||||
style="fill:#6e8296;fill-opacity:1;stroke:none;stroke-width:0.001" />
|
||||
<g
|
||||
id="shape7-14"
|
||||
v:mID="7"
|
||||
v:groupContext="shape"
|
||||
transform="matrix(1.5233208,0,0,1.3864459,3.6924384,-5.7637956)">
|
||||
<title
|
||||
id="title45">Sheet.7</title>
|
||||
<rect
|
||||
x="0"
|
||||
y="10.973"
|
||||
width="24.75"
|
||||
height="24.75"
|
||||
class="st5"
|
||||
id="rect47"
|
||||
style="fill:#12537c;stroke:none;stroke-width:0.75;stroke-linecap:butt" />
|
||||
</g>
|
||||
<g
|
||||
id="shape8-16"
|
||||
v:mID="8"
|
||||
v:groupContext="shape"
|
||||
transform="matrix(1.5233208,0,0,1.3864459,3.6924384,-5.7637956)">
|
||||
<title
|
||||
id="title50">Sheet.8</title>
|
||||
<rect
|
||||
x="0"
|
||||
y="10.973"
|
||||
width="24.75"
|
||||
height="24.75"
|
||||
class="st6"
|
||||
id="rect52"
|
||||
style="fill:none;stroke:#bcbec0;stroke-width:1.125;stroke-linecap:butt" />
|
||||
</g>
|
||||
<g
|
||||
id="shape9-18"
|
||||
v:mID="9"
|
||||
v:groupContext="shape"
|
||||
transform="matrix(1.5233208,0,0,1.3864459,20.985782,-28.936572)">
|
||||
<title
|
||||
id="title55">Sheet.9</title>
|
||||
<path
|
||||
d="m 7.38,34.34 -7.38,0 0,-1.49 7.38,0 0,-1.3 1.81,1.04 1.8,1.05 -1.8,1.04 -1.81,1.04 0,-1.38 z"
|
||||
class="st7"
|
||||
id="path57"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.75;stroke-linecap:butt" />
|
||||
</g>
|
||||
<g
|
||||
id="shape10-20"
|
||||
v:mID="10"
|
||||
v:groupContext="shape"
|
||||
transform="matrix(1.5233208,0,0,1.3864459,20.985782,-18.328835)">
|
||||
<title
|
||||
id="title60">Sheet.10</title>
|
||||
<path
|
||||
d="m 7.38,34.34 -7.38,0 0,-1.49 7.38,0 0,-1.3 1.81,1.04 1.8,1.05 -1.8,1.04 -1.81,1.04 0,-1.38 z"
|
||||
class="st7"
|
||||
id="path62"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.75;stroke-linecap:butt" />
|
||||
</g>
|
||||
<g
|
||||
id="shape11-22"
|
||||
v:mID="11"
|
||||
v:groupContext="shape"
|
||||
transform="matrix(1.5233208,0,0,1.3864459,8.0357632,-13.02525)">
|
||||
<title
|
||||
id="title65">Sheet.11</title>
|
||||
<path
|
||||
d="m 3.61,32.93 7.38,0 0,1.5 -7.38,0 0,1.29 -1.8,-1.04 -1.81,-1.04 1.81,-1.05 1.8,-1.04 0,1.38 z"
|
||||
class="st7"
|
||||
id="path67"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.75;stroke-linecap:butt" />
|
||||
</g>
|
||||
<g
|
||||
id="shape12-24"
|
||||
v:mID="12"
|
||||
v:groupContext="shape"
|
||||
transform="matrix(1.5233208,0,0,1.3864459,8.0357632,-23.633003)">
|
||||
<title
|
||||
id="title70">Sheet.12</title>
|
||||
<path
|
||||
d="m 3.61,32.93 7.38,0 0,1.5 -7.38,0 0,1.29 -1.8,-1.04 -1.81,-1.04 1.81,-1.05 1.8,-1.04 0,1.38 z"
|
||||
class="st7"
|
||||
id="path72"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.75;stroke-linecap:butt" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 10 KiB |
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="36 365 38 38" width="38pt" height="38pt" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata> Produced by OmniGraffle 7.4
|
||||
<dc:date>2017-07-08 22:25:20 +0000</dc:date>
|
||||
</metadata>
|
||||
<defs/>
|
||||
<g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1">
|
||||
<title>Canvas 1</title>
|
||||
<rect fill="white" width="1" height="1"/>
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<path d="M 55.00075 402.273 C 65.065 402.273 73.2715 394.065 73.2715 384.00075 C 73.2715 373.9365 65.065 365.727 55.00075 365.727 C 44.93575 365.727 36.7285 373.9365 36.7285 384.00075 C 36.7285 394.065 44.93575 402.273 55.00075 402.273 Z" fill="#12537c"/>
|
||||
<path d="M 55.00075 402.273 C 65.065 402.273 73.2715 394.065 73.2715 384.00075 C 73.2715 373.9365 65.065 365.727 55.00075 365.727 C 44.93575 365.727 36.7285 373.9365 36.7285 384.00075 C 36.7285 394.065 44.93575 402.273 55.00075 402.273 Z" stroke="#bcbec0" stroke-linecap="butt" stroke-linejoin="miter" stroke-width="1.125"/>
|
||||
<path d="M 53.194 382.81126 L 52.201 382.81126 L 40.8415 382.81126 L 40.8415 380.07526 L 50.83375 380.07526 L 50.83375 374.24476 L 49.36825 374.24476 L 50.79475 371.775 L 51.89725 369.86926 L 52.2205 369.3075 L 53.64775 371.775 L 55.07125 374.24476 L 54.42175 374.24476 L 53.569 374.24476 L 53.569 381.4425 L 53.569 382.81126 L 53.194 382.81126 L 53.194 382.81126 Z M 64.7425 383.6985 L 64.7425 382.81126 L 57.637 382.81126 L 56.269 382.81126 L 56.269 382.43626 L 56.269 381.4425 L 56.269 370.16626 L 59.005 370.16626 L 59.005 380.07376 L 64.74175 380.07376 L 64.74325 378.645 L 67.2115 380.07226 L 69.118 381.17176 L 68.9305 381.498 L 69.118 381.17176 L 69.67975 381.4965 L 67.2115 382.923 L 64.74175 384.34576 L 64.74175 383.6985 L 64.7425 383.6985 Z M 51.20875 398.31976 L 51.20875 397.94476 L 51.58375 397.94476 L 51.20875 397.94476 L 51.20875 398.31976 L 50.83375 398.31976 L 50.83375 388.4085 L 45.25675 388.4085 L 45.25675 389.907 L 42.787 388.4805 L 40.32025 387.057 L 42.787 385.62976 L 45.25675 384.2055 L 45.25675 384.855 L 45.25675 385.67476 L 52.201 385.67476 L 53.569 385.67476 L 53.569 386.04976 L 53.569 387.042 L 53.569 398.31976 L 51.20875 398.31976 L 51.20875 398.31976 Z M 57.63625 397.92 L 57.961 397.7325 L 57.63625 397.92 L 57.63625 397.92 Z M 56.2105 396.20176 L 54.78625 393.732 L 55.435 393.732 L 56.26975 393.7305 L 56.26975 387.042 L 56.26975 385.67476 L 56.64475 385.67476 L 57.63775 385.67476 L 68.99575 385.67476 L 68.99575 388.40926 L 59.0065 388.40926 L 59.0065 393.73276 L 60.48775 393.73276 L 59.062 396.2025 L 57.96175 398.10826 L 57.637 398.67076 L 56.2105 396.20176 L 56.2105 396.20176 Z" fill="white"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 63 KiB |
@@ -0,0 +1,380 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg1998"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.91 r13725"
|
||||
width="66.000435"
|
||||
height="44.5159"
|
||||
version="1.0"
|
||||
sodipodi:docname="loadbalancer.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
sodipodi:modified="true">
|
||||
<metadata
|
||||
id="metadata2003">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jeremy Grossmann</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>GNS-3</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2001">
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="TriangleOutL"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path7835"
|
||||
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
|
||||
transform="scale(0.8)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker8031"
|
||||
style="overflow:visible;"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path8033"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow2Lend"
|
||||
style="overflow:visible;"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path7714"
|
||||
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="scale(1.1) rotate(180) translate(1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow1Lend"
|
||||
style="overflow:visible;"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path7696"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)" />
|
||||
</marker>
|
||||
<inkscape:path-effect
|
||||
effect="powerstroke"
|
||||
id="path-effect7647"
|
||||
is_visible="true"
|
||||
offset_points="0,0.5"
|
||||
sort_points="true"
|
||||
interpolator_type="CubicBezierJohan"
|
||||
interpolator_beta="0.2"
|
||||
start_linecap_type="zerowidth"
|
||||
linejoin_type="round"
|
||||
miter_limit="4"
|
||||
end_linecap_type="zerowidth"
|
||||
cusp_linecap_type="round" />
|
||||
<linearGradient
|
||||
id="linearGradient9312">
|
||||
<stop
|
||||
style="stop-color:#3c8c8c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop9314" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.94117647;"
|
||||
offset="1"
|
||||
id="stop9316" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11918"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="matrix(1.1,0,0,1.1,1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11921"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11936"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient9312"
|
||||
id="linearGradient2216"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(15.252829,0,0,14.082619,53.467529,3.4188377)"
|
||||
x1="-1.0929121"
|
||||
y1="0.63145506"
|
||||
x2="-4.5832458"
|
||||
y2="0.070047863" />
|
||||
<linearGradient
|
||||
id="linearGradient10123"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop10125"
|
||||
offset="0"
|
||||
style="stop-color:#e4405c;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop10127"
|
||||
offset="1"
|
||||
style="stop-color:#e4405c;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="0.56367606"
|
||||
x2="0.49966058"
|
||||
y1="1.4711363"
|
||||
x1="1.3990936"
|
||||
gradientTransform="matrix(19.859681,0,0,16.579703,65.763316,-33.354621)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient9177"
|
||||
xlink:href="#linearGradient10123"
|
||||
inkscape:collect="always" />
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Arrow2Lstart-4"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2Lstart">
|
||||
<path
|
||||
transform="matrix(1.1,0,0,1.1,1.1,0)"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
id="path11918-6" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Arrow1Send-3"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Send">
|
||||
<path
|
||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
id="path11921-9" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Arrow1Lstart-2"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lstart">
|
||||
<path
|
||||
transform="matrix(0.8,0,0,0.8,10,0)"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
id="path11936-8" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
y2="0.070047863"
|
||||
x2="-4.5832458"
|
||||
y1="0.63145506"
|
||||
x1="-1.0929121"
|
||||
gradientTransform="matrix(15.252829,0,0,14.082619,53.467529,3.4188377)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient9890"
|
||||
xlink:href="#linearGradient9312"
|
||||
inkscape:collect="always" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="1003"
|
||||
inkscape:window-width="1524"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="7.8958335"
|
||||
inkscape:cx="10.561503"
|
||||
inkscape:cy="-1.722049"
|
||||
inkscape:window-x="1360"
|
||||
inkscape:window-y="0"
|
||||
inkscape:current-layer="g9892"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<rect
|
||||
style="opacity:1;fill:#000000;fill-opacity:0.39215687;fill-rule:evenodd;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect4558"
|
||||
width="64.552505"
|
||||
height="41.53862"
|
||||
x="1.4479325"
|
||||
y="2.9772801"
|
||||
ry="11.631706"
|
||||
rx="32.212925"
|
||||
inkscape:transform-center-x="8.4568136" />
|
||||
<rect
|
||||
style="opacity:1;fill:#3c8c8c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.015;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect9971"
|
||||
width="64.499474"
|
||||
height="42.154343"
|
||||
x="0.0625"
|
||||
y="0.18084908"
|
||||
ry="11.557454"
|
||||
rx="32.249737"
|
||||
inkscape:transform-center-x="8.2952569" />
|
||||
<g
|
||||
id="g4160"
|
||||
transform="translate(-0.05300324,0)">
|
||||
<path
|
||||
id="path4815"
|
||||
d="M 64.514069,11.541297 64.457031,10.955643 64.342949,10.36999 64.152814,9.8038604 63.867612,9.2182077 63.487345,8.6520765 63.050034,8.0859452 62.517657,7.5393369 61.909226,7.0122499 61.224742,6.4851607 60.464203,5.9775955 59.646626,5.4700289 58.752993,4.9819859 57.783307,4.4939413 56.75658,4.0644625 55.6538,3.6349838 54.493981,3.2055052 53.296132,2.8150692 52.022232,2.4636777 50.710303,2.1122862 49.341334,1.7999375 47.934339,1.5071117 46.489316,1.2338059 45.006267,0.99954576 43.504204,0.76528425 41.964114,0.58958842 40.385997,0.43341443 l -1.59713,-0.1366529 -1.597129,-0.0976086 -1.616141,-0.0780874 -1.63516,-0.05856538 -1.616141,0 0,0 -1.63516,0 -1.635155,0.05856538 -1.597131,0.0780874 -1.616145,0.0976086 -1.597129,0.1366529 -1.559104,0.15617399 -1.5591,0.17569583 -1.502065,0.23426151 -1.483049,0.23426014 -1.445024,0.2733058 -1.406994,0.2928258 -1.368967,0.3123487 -1.311931,0.3513915 -1.2739,0.3513915 -1.19785,0.390436 L 8.9757693,3.6349838 7.8729941,4.0644625 6.8462664,4.4939413 5.8765785,4.9819859 4.9829488,5.4700289 4.1653682,5.9775955 3.4048335,6.4851607 2.7203448,7.0122499 2.1309311,7.5393369 1.5795405,8.0859452 1.1422325,8.6520765 0.76195982,9.2182077 0.47676065,9.8038604 0.26760898,10.36999 l -0.11407814,0.585653 -0.0380276,0.585654 0,0 0.0380276,0.585653 0.11407814,0.566131 0.20915167,0.585653 0.28519917,0.54661 0.38027268,0.585652 0.437308,0.546609 0.5513906,0.566131 0.5894137,0.546612 0.6844887,0.527087 0.7605347,0.488044 0.8175806,0.507564 0.8936297,0.507565 0.9696879,0.449001 1.0267277,0.449002 1.1027752,0.449002 1.1598227,0.409958 1.19785,0.390436 1.2739,0.351389 1.311931,0.351391 1.368967,0.312348 1.406994,0.312351 1.445024,0.253779 1.483049,0.253784 1.502065,0.214738 1.5591,0.175698 1.559104,0.156176 1.597129,0.136651 1.616145,0.09761 1.597131,0.07809 1.635155,0.05857 1.63516,0 0,0 1.616141,0 1.63516,-0.05857 1.616141,-0.07809 1.597129,-0.09761 1.59713,-0.136651 1.578117,-0.156176 1.54009,-0.175698 1.502063,-0.214738 1.483049,-0.253784 1.445023,-0.253779 1.406995,-0.312351 1.368969,-0.312348 1.311929,-0.351391 1.2739,-0.351389 1.197849,-0.390436 1.159819,-0.409958 1.10278,-0.449002 1.026727,-0.449002 0.969686,-0.449001 0.893633,-0.507565 0.817577,-0.507564 0.760539,-0.488044 0.684484,-0.527087 0.608431,-0.546612 0.532377,-0.566131 0.437311,-0.546609 0.380267,-0.585652 0.285202,-0.54661 0.190135,-0.585653 0.114082,-0.566131 0.05704,-0.585653"
|
||||
style="fill:url(#linearGradient2216);fill-opacity:1;stroke:none;stroke-width:0.01928605;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 1.5224251,11.738982 c 22.4781589,0.179109 22.3886049,0.08956 22.3886049,0.08956 l 0,0"
|
||||
id="path7667"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g9892"
|
||||
transform="translate(-57.894994,22.707717)">
|
||||
<path
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001"
|
||||
d="m 72.358817,-10.103986 9.453197,0.0146 -0.0017,1.0942609 2.902891,-2.1840409 -2.895747,-2.441693 -0.0017,1.077681 -9.453197,-0.0146 -0.0038,2.453792"
|
||||
id="path2049"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001"
|
||||
d="m 93.50729,-13.193692 6.83173,-5.703422 0.95326,0.812405 0,-3.249623 -3.872633,0 0.953265,0.812406 -6.831729,5.70342 1.966107,1.624814"
|
||||
id="path2055"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001"
|
||||
d="m 93.50729,-10.739897 9.73124,0 0,1.0776818 2.62148,-2.4372178 -2.62148,-2.188521 0,1.094262 -9.73124,0 0,2.453795"
|
||||
id="path2057"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001"
|
||||
d="m 91.541183,-9.1150862 6.831729,5.703419 -0.953265,0.828987 3.872633,-0.265276 0,-2.984348 -0.95326,0.812406 -6.83173,-5.7199988 -1.966107,1.6248108"
|
||||
id="path2059"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001"
|
||||
d="m 72.061358,-10.386298 9.413478,0.01454 -0.0017,1.0942579 2.922724,-2.1674299 -2.91558,-2.458303 -0.0017,1.07768 -9.413478,-0.01454 -0.0038,2.453795"
|
||||
id="path2065"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001"
|
||||
d="m 93.844905,-12.911839 6.811865,-5.72 0.97313,0.828986 0,-3.266204 -3.912358,0 0.973126,0.812407 -6.811872,5.72 1.966109,1.624811"
|
||||
id="path2071"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001"
|
||||
d="m 93.844905,-10.458041 9.711385,0 0,1.0776808 2.62148,-2.4537968 -2.62148,-2.171941 0,1.094259 -9.711385,0 0,2.453798"
|
||||
id="path2073"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001"
|
||||
d="m 91.878796,-8.8332292 6.811872,5.703419 -0.973126,0.812405 3.912358,-0.265275 0,-3.000928 -0.97313,0.812406 -6.811865,-5.6868388 -1.966109,1.6248118"
|
||||
id="path2075"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001"
|
||||
d="m 95.45354,-11.701521 -0.01986,-0.215535 -0.01986,-0.248695 -0.03972,-0.215536 -0.03972,-0.215537 -0.05958,-0.232115 -0.07944,-0.215538 -0.0993,-0.215536 -0.07944,-0.215536 -0.119159,-0.198957 -0.119157,-0.198956 -0.139019,-0.198957 -0.158877,-0.198957 -0.158876,-0.182376 -0.178737,-0.165797 -0.178738,-0.182378 -0.178737,-0.149215 -0.218457,-0.149218 -0.198596,-0.149218 -0.218457,-0.132636 -0.218457,-0.116059 -0.258175,-0.132639 -0.218457,-0.09948 -0.258176,-0.0829 -0.258177,-0.0829 -0.238314,-0.0829 -0.278037,-0.04974 -0.238314,-0.06632 -0.297897,-0.03316 -0.258177,-0.03316 -0.278033,-0.01658 -0.258177,0 0,0 -0.278035,0 -0.258176,0.01658 -0.278036,0.03316 -0.258176,0.03316 -0.278036,0.06632 -0.258176,0.04974 -0.258176,0.0829 -0.258175,0.0829 -0.238315,0.0829 -0.218458,0.09948 -0.258175,0.132639 -0.238316,0.116059 -0.198598,0.132636 -0.218455,0.149218 -0.198598,0.149218 -0.178736,0.149215 -0.198597,0.182378 -0.158877,0.165797 -0.158878,0.182376 -0.158877,0.198957 -0.139019,0.198957 -0.119157,0.198956 -0.11916,0.198957 -0.0993,0.215536 -0.0993,0.215536 -0.05958,0.215538 -0.05958,0.232115 -0.05958,0.215537 -0.03972,0.215536 0,0.248695 -0.01986,0.215535 0,0 0.01986,0.215537 0,0.232117 0.03972,0.232116 0.05958,0.232116 0.05958,0.215536 0.05958,0.215536 0.0993,0.215536 0.0993,0.2155358 0.11916,0.198956 0.119157,0.198956 0.139019,0.198957 0.158877,0.198957 0.158878,0.182377 0.158877,0.165797 0.198597,0.165797 0.178736,0.165798 0.198598,0.149217 0.218455,0.149217 0.198598,0.132638 0.238316,0.116058 0.258175,0.116057 0.218458,0.116058 0.238315,0.09948 0.258175,0.0829 0.258176,0.04974 0.258176,0.06632 0.278036,0.06632 0.258176,0.01658 0.278036,0.04974 0.258176,0.01658 0.278035,0 0,0 0.258177,0 0.278033,-0.01658 0.258177,-0.04974 0.297897,-0.01658 0.238314,-0.06632 0.278037,-0.06632 0.238314,-0.04974 0.258177,-0.0829 0.258176,-0.09948 0.218457,-0.116058 0.258175,-0.116057 0.218457,-0.116058 0.218457,-0.132638 0.198596,-0.149217 0.218457,-0.149217 0.178737,-0.165798 0.178738,-0.165797 0.178737,-0.165797 0.158876,-0.182377 0.158877,-0.198957 0.139019,-0.198957 0.119157,-0.198956 0.119159,-0.198956 0.07944,-0.2155358 0.0993,-0.215536 0.07944,-0.215536 0.05958,-0.215536 0.03972,-0.232116 0.03972,-0.232116 0.01986,-0.232117 0.01986,-0.215537"
|
||||
id="path2081"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001"
|
||||
d="m 96.089049,-11.154389 -0.01986,-0.215537 -0.01986,-0.232116 -0.03972,-0.232115 -0.01986,-0.232117 -0.07944,-0.215536 -0.07944,-0.215536 -0.07944,-0.215536 -0.0993,-0.198957 -0.11916,-0.215537 -0.119156,-0.198956 -0.139018,-0.198955 -0.139018,-0.198957 -0.178738,-0.182377 -0.178736,-0.165798 -0.158877,-0.165797 -0.198597,-0.165796 -0.218457,-0.149218 -0.198595,-0.149218 -0.218458,-0.132637 -0.218457,-0.116057 -0.238315,-0.116059 -0.238318,-0.116057 -0.258175,-0.09948 -0.238316,-0.0829 -0.258175,-0.06632 -0.258176,-0.04974 -0.258178,-0.06632 -0.278033,-0.03316 -0.258177,-0.03316 -0.278036,-0.01658 -0.278035,0 0,0 -0.278036,0 -0.258175,0.01658 -0.258176,0.03316 -0.278036,0.03316 -0.258175,0.06632 -0.258177,0.04974 -0.278035,0.06632 -0.238316,0.0829 -0.238317,0.09948 -0.258176,0.116057 -0.218456,0.116059 -0.238316,0.116057 -0.218457,0.132637 -0.218457,0.149218 -0.198597,0.149218 -0.178735,0.165796 -0.198599,0.165797 -0.158876,0.165798 -0.158877,0.182377 -0.158878,0.198957 -0.139018,0.198955 -0.119156,0.198956 -0.11916,0.215537 -0.0993,0.198957 -0.07944,0.215536 -0.07944,0.215536 -0.05958,0.215536 -0.03972,0.232117 -0.03972,0.232115 -0.01986,0.232116 0,0.215537 0,0 0,0.232116 0.01986,0.232115 0.03972,0.198957 0.03972,0.232117 0.05958,0.232116 0.07944,0.2155358 0.07944,0.215536 0.0993,0.215536 0.11916,0.198956 0.119156,0.198956 0.139018,0.198957 0.158878,0.182377 0.158877,0.198956 0.158876,0.165798 0.198599,0.165797 0.178735,0.165797 0.198597,0.149217 0.218457,0.132637 0.218457,0.149219 0.238316,0.116057 0.218456,0.116058 0.258176,0.116059 0.238317,0.0829 0.238316,0.0829 0.278035,0.0829 0.258177,0.06632 0.258175,0.04974 0.278036,0.03316 0.258176,0.03316 0.258175,0.01658 0.278036,0 0,0 0.278035,0 0.278036,-0.01658 0.258177,-0.03316 0.278033,-0.03316 0.258178,-0.04974 0.258176,-0.06632 0.258175,-0.0829 0.238316,-0.0829 0.258175,-0.0829 0.238318,-0.116059 0.238315,-0.116058 0.218457,-0.116057 0.218458,-0.149219 0.198595,-0.132637 0.218457,-0.149217 0.198597,-0.165797 0.158877,-0.165797 0.178736,-0.165798 0.178738,-0.198956 0.139018,-0.182377 0.139018,-0.198957 0.119156,-0.198956 0.11916,-0.198956 0.0993,-0.215536 0.07944,-0.215536 0.07944,-0.2155358 0.07944,-0.232116 0.01986,-0.232117 0.03972,-0.198957 0.01986,-0.232115 0.01986,-0.232116"
|
||||
id="path2083"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient9177);fill-opacity:1;stroke:none;stroke-width:0.001"
|
||||
d="m 95.751434,-11.419665 -0.01986,-0.232116 0,-0.232116 -0.03972,-0.215536 -0.05958,-0.232116 -0.05958,-0.215536 -0.05958,-0.215536 -0.0993,-0.215537 -0.0993,-0.215534 -0.0993,-0.198958 -0.119148,-0.198957 -0.158878,-0.198956 -0.158878,-0.198957 -0.139019,-0.182376 -0.178736,-0.165797 -0.178738,-0.165798 -0.198596,-0.165797 -0.198597,-0.149218 -0.198596,-0.149217 -0.218457,-0.132637 -0.238318,-0.132639 -0.238314,-0.116057 -0.218458,-0.09948 -0.258175,-0.09948 -0.258176,-0.0829 -0.258176,-0.0829 -0.258176,-0.04974 -0.258175,-0.04974 -0.278036,-0.03316 -0.258176,-0.03316 -0.278035,-0.01658 -0.258175,0 0,0 -0.278037,0 -0.258175,0.01658 -0.278037,0.03316 -0.278036,0.03316 -0.258175,0.04974 -0.258176,0.04974 -0.258176,0.0829 -0.258176,0.0829 -0.238315,0.09948 -0.238318,0.09948 -0.238314,0.116057 -0.238316,0.132639 -0.198598,0.132637 -0.218455,0.149217 -0.198598,0.149218 -0.178737,0.165797 -0.198596,0.165798 -0.178738,0.165797 -0.139017,0.182376 -0.158877,0.198957 -0.158878,0.198956 -0.0993,0.198957 -0.119159,0.198958 -0.0993,0.215534 -0.0993,0.215537 -0.05958,0.215536 -0.05958,0.215536 -0.05958,0.232116 -0.03972,0.215536 0,0.232116 -0.01986,0.232116 0,0 0.01986,0.215537 0,0.232115 0.03972,0.232116 0.05958,0.215536 0.05958,0.232115 0.05958,0.215538 0.0993,0.2155368 0.0993,0.198956 0.119159,0.215536 0.0993,0.198956 0.158878,0.198958 0.158877,0.182375 0.139017,0.182378 0.178738,0.165796 0.198596,0.182377 0.178737,0.149218 0.198598,0.165797 0.218455,0.132638 0.198598,0.149216 0.238316,0.116058 0.238314,0.116059 0.238318,0.116057 0.238315,0.0829 0.258176,0.0829 0.258176,0.0829 0.258176,0.04974 0.258175,0.04974 0.278036,0.04974 0.278037,0.03316 0.258175,0 0.278037,0.01658 0,0 0.258175,-0.01658 0.278035,0 0.258176,-0.03316 0.278036,-0.04974 0.258175,-0.04974 0.258176,-0.04974 0.258176,-0.0829 0.258176,-0.0829 0.258175,-0.0829 0.218458,-0.116057 0.238314,-0.116059 0.238318,-0.116058 0.218457,-0.149216 0.198596,-0.132638 0.198597,-0.165797 0.198596,-0.149218 0.178738,-0.182377 0.178736,-0.165796 0.139019,-0.182378 0.158878,-0.182375 0.158878,-0.198958 0.119156,-0.198956 0.0993,-0.215536 0.0993,-0.198956 0.0993,-0.2155368 0.05958,-0.215538 0.05958,-0.232115 0.05958,-0.215536 0.03972,-0.232116 0,-0.232115 0.01986,-0.215537"
|
||||
id="path2085"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,387 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg1998"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
width="66.000435"
|
||||
height="44.5159"
|
||||
version="1.0"
|
||||
sodipodi:docname="loadbalancer_docker.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
sodipodi:modified="true">
|
||||
<metadata
|
||||
id="metadata2003">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jeremy Grossmann</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>GNS-3</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2001">
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="TriangleOutL"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path7835"
|
||||
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
|
||||
transform="scale(0.8)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker8031"
|
||||
style="overflow:visible;"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path8033"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow2Lend"
|
||||
style="overflow:visible;"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path7714"
|
||||
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="scale(1.1) rotate(180) translate(1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow1Lend"
|
||||
style="overflow:visible;"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path7696"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)" />
|
||||
</marker>
|
||||
<inkscape:path-effect
|
||||
effect="powerstroke"
|
||||
id="path-effect7647"
|
||||
is_visible="true"
|
||||
offset_points="0,0.5"
|
||||
sort_points="true"
|
||||
interpolator_type="CubicBezierJohan"
|
||||
interpolator_beta="0.2"
|
||||
start_linecap_type="zerowidth"
|
||||
linejoin_type="round"
|
||||
miter_limit="4"
|
||||
end_linecap_type="zerowidth"
|
||||
cusp_linecap_type="round" />
|
||||
<linearGradient
|
||||
id="linearGradient9312">
|
||||
<stop
|
||||
style="stop-color:#3c8c8c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop9314" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.94117647;"
|
||||
offset="1"
|
||||
id="stop9316" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11918"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="matrix(1.1,0,0,1.1,1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11921"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11936"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient9312"
|
||||
id="linearGradient2216"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(15.252829,0,0,14.082619,53.467529,3.4188377)"
|
||||
x1="-1.0929121"
|
||||
y1="0.63145506"
|
||||
x2="-4.5832458"
|
||||
y2="0.070047863" />
|
||||
<linearGradient
|
||||
id="linearGradient10123"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop10125"
|
||||
offset="0"
|
||||
style="stop-color:#e4405c;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop10127"
|
||||
offset="1"
|
||||
style="stop-color:#e4405c;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="0.56367606"
|
||||
x2="0.49966058"
|
||||
y1="1.4711363"
|
||||
x1="1.3990936"
|
||||
gradientTransform="matrix(19.859681,0,0,16.579703,65.763316,-33.354621)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient9177"
|
||||
xlink:href="#linearGradient10123"
|
||||
inkscape:collect="always" />
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Arrow2Lstart-4"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2Lstart">
|
||||
<path
|
||||
transform="matrix(1.1,0,0,1.1,1.1,0)"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
id="path11918-6" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Arrow1Send-3"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Send">
|
||||
<path
|
||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
id="path11921-9" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Arrow1Lstart-2"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lstart">
|
||||
<path
|
||||
transform="matrix(0.8,0,0,0.8,10,0)"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
id="path11936-8" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
y2="0.070047863"
|
||||
x2="-4.5832458"
|
||||
y1="0.63145506"
|
||||
x1="-1.0929121"
|
||||
gradientTransform="matrix(15.252829,0,0,14.082619,53.467529,3.4188377)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient9890"
|
||||
xlink:href="#linearGradient9312"
|
||||
inkscape:collect="always" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="1003"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="5.5831974"
|
||||
inkscape:cx="53.403195"
|
||||
inkscape:cy="-9.1150017"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="31"
|
||||
inkscape:current-layer="g9892"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<rect
|
||||
style="opacity:1;fill:#000000;fill-opacity:0.39215687;fill-rule:evenodd;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect4558"
|
||||
width="64.552505"
|
||||
height="41.53862"
|
||||
x="1.4479325"
|
||||
y="2.9772801"
|
||||
ry="11.631706"
|
||||
rx="32.212925"
|
||||
inkscape:transform-center-x="8.4568136" />
|
||||
<rect
|
||||
style="opacity:1;fill:#3c8c8c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.015;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect9971"
|
||||
width="64.499474"
|
||||
height="42.154343"
|
||||
x="0.0625"
|
||||
y="0.18084908"
|
||||
ry="11.557454"
|
||||
rx="32.249737"
|
||||
inkscape:transform-center-x="8.2952569" />
|
||||
<g
|
||||
id="g4160"
|
||||
transform="translate(-0.05300324,0)">
|
||||
<path
|
||||
id="path4815"
|
||||
d="M 64.514069,11.541297 64.457031,10.955643 64.342949,10.36999 64.152814,9.8038604 63.867612,9.2182077 63.487345,8.6520765 63.050034,8.0859452 62.517657,7.5393369 61.909226,7.0122499 61.224742,6.4851607 60.464203,5.9775955 59.646626,5.4700289 58.752993,4.9819859 57.783307,4.4939413 56.75658,4.0644625 55.6538,3.6349838 54.493981,3.2055052 53.296132,2.8150692 52.022232,2.4636777 50.710303,2.1122862 49.341334,1.7999375 47.934339,1.5071117 46.489316,1.2338059 45.006267,0.99954576 43.504204,0.76528425 41.964114,0.58958842 40.385997,0.43341443 l -1.59713,-0.1366529 -1.597129,-0.0976086 -1.616141,-0.0780874 -1.63516,-0.05856538 -1.616141,0 0,0 -1.63516,0 -1.635155,0.05856538 -1.597131,0.0780874 -1.616145,0.0976086 -1.597129,0.1366529 -1.559104,0.15617399 -1.5591,0.17569583 -1.502065,0.23426151 -1.483049,0.23426014 -1.445024,0.2733058 -1.406994,0.2928258 -1.368967,0.3123487 -1.311931,0.3513915 -1.2739,0.3513915 -1.19785,0.390436 L 8.9757693,3.6349838 7.8729941,4.0644625 6.8462664,4.4939413 5.8765785,4.9819859 4.9829488,5.4700289 4.1653682,5.9775955 3.4048335,6.4851607 2.7203448,7.0122499 2.1309311,7.5393369 1.5795405,8.0859452 1.1422325,8.6520765 0.76195982,9.2182077 0.47676065,9.8038604 0.26760898,10.36999 l -0.11407814,0.585653 -0.0380276,0.585654 0,0 0.0380276,0.585653 0.11407814,0.566131 0.20915167,0.585653 0.28519917,0.54661 0.38027268,0.585652 0.437308,0.546609 0.5513906,0.566131 0.5894137,0.546612 0.6844887,0.527087 0.7605347,0.488044 0.8175806,0.507564 0.8936297,0.507565 0.9696879,0.449001 1.0267277,0.449002 1.1027752,0.449002 1.1598227,0.409958 1.19785,0.390436 1.2739,0.351389 1.311931,0.351391 1.368967,0.312348 1.406994,0.312351 1.445024,0.253779 1.483049,0.253784 1.502065,0.214738 1.5591,0.175698 1.559104,0.156176 1.597129,0.136651 1.616145,0.09761 1.597131,0.07809 1.635155,0.05857 1.63516,0 0,0 1.616141,0 1.63516,-0.05857 1.616141,-0.07809 1.597129,-0.09761 1.59713,-0.136651 1.578117,-0.156176 1.54009,-0.175698 1.502063,-0.214738 1.483049,-0.253784 1.445023,-0.253779 1.406995,-0.312351 1.368969,-0.312348 1.311929,-0.351391 1.2739,-0.351389 1.197849,-0.390436 1.159819,-0.409958 1.10278,-0.449002 1.026727,-0.449002 0.969686,-0.449001 0.893633,-0.507565 0.817577,-0.507564 0.760539,-0.488044 0.684484,-0.527087 0.608431,-0.546612 0.532377,-0.566131 0.437311,-0.546609 0.380267,-0.585652 0.285202,-0.54661 0.190135,-0.585653 0.114082,-0.566131 0.05704,-0.585653"
|
||||
style="fill:url(#linearGradient2216);fill-opacity:1;stroke:none;stroke-width:0.01928605;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 1.5224251,11.738982 c 22.4781589,0.179109 22.3886049,0.08956 22.3886049,0.08956 l 0,0"
|
||||
id="path7667"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g9892"
|
||||
transform="translate(-57.894994,22.707717)">
|
||||
<path
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001"
|
||||
d="m 72.358817,-10.103986 9.453197,0.0146 -0.0017,1.0942609 2.902891,-2.1840409 -2.895747,-2.441693 -0.0017,1.077681 -9.453197,-0.0146 -0.0038,2.453792"
|
||||
id="path2049"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001"
|
||||
d="m 93.50729,-13.193692 6.83173,-5.703422 0.95326,0.812405 0,-3.249623 -3.872633,0 0.953265,0.812406 -6.831729,5.70342 1.966107,1.624814"
|
||||
id="path2055"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001"
|
||||
d="m 93.50729,-10.739897 9.73124,0 0,1.0776818 2.62148,-2.4372178 -2.62148,-2.188521 0,1.094262 -9.73124,0 0,2.453795"
|
||||
id="path2057"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001"
|
||||
d="m 91.541183,-9.1150862 6.831729,5.703419 -0.953265,0.828987 3.872633,-0.265276 0,-2.984348 -0.95326,0.812406 -6.83173,-5.7199988 -1.966107,1.6248108"
|
||||
id="path2059"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001"
|
||||
d="m 72.061358,-10.386298 9.413478,0.01454 -0.0017,1.0942579 2.922724,-2.1674299 -2.91558,-2.458303 -0.0017,1.07768 -9.413478,-0.01454 -0.0038,2.453795"
|
||||
id="path2065"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001"
|
||||
d="m 93.844905,-12.911839 6.811865,-5.72 0.97313,0.828986 0,-3.266204 -3.912358,0 0.973126,0.812407 -6.811872,5.72 1.966109,1.624811"
|
||||
id="path2071"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001"
|
||||
d="m 93.844905,-10.458041 9.711385,0 0,1.0776808 2.62148,-2.4537968 -2.62148,-2.171941 0,1.094259 -9.711385,0 0,2.453798"
|
||||
id="path2073"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001"
|
||||
d="m 91.878796,-8.8332292 6.811872,5.703419 -0.973126,0.812405 3.912358,-0.265275 0,-3.000928 -0.97313,0.812406 -6.811865,-5.6868388 -1.966109,1.6248118"
|
||||
id="path2075"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001"
|
||||
d="m 95.45354,-11.701521 -0.01986,-0.215535 -0.01986,-0.248695 -0.03972,-0.215536 -0.03972,-0.215537 -0.05958,-0.232115 -0.07944,-0.215538 -0.0993,-0.215536 -0.07944,-0.215536 -0.119159,-0.198957 -0.119157,-0.198956 -0.139019,-0.198957 -0.158877,-0.198957 -0.158876,-0.182376 -0.178737,-0.165797 -0.178738,-0.182378 -0.178737,-0.149215 -0.218457,-0.149218 -0.198596,-0.149218 -0.218457,-0.132636 -0.218457,-0.116059 -0.258175,-0.132639 -0.218457,-0.09948 -0.258176,-0.0829 -0.258177,-0.0829 -0.238314,-0.0829 -0.278037,-0.04974 -0.238314,-0.06632 -0.297897,-0.03316 -0.258177,-0.03316 -0.278033,-0.01658 -0.258177,0 0,0 -0.278035,0 -0.258176,0.01658 -0.278036,0.03316 -0.258176,0.03316 -0.278036,0.06632 -0.258176,0.04974 -0.258176,0.0829 -0.258175,0.0829 -0.238315,0.0829 -0.218458,0.09948 -0.258175,0.132639 -0.238316,0.116059 -0.198598,0.132636 -0.218455,0.149218 -0.198598,0.149218 -0.178736,0.149215 -0.198597,0.182378 -0.158877,0.165797 -0.158878,0.182376 -0.158877,0.198957 -0.139019,0.198957 -0.119157,0.198956 -0.11916,0.198957 -0.0993,0.215536 -0.0993,0.215536 -0.05958,0.215538 -0.05958,0.232115 -0.05958,0.215537 -0.03972,0.215536 0,0.248695 -0.01986,0.215535 0,0 0.01986,0.215537 0,0.232117 0.03972,0.232116 0.05958,0.232116 0.05958,0.215536 0.05958,0.215536 0.0993,0.215536 0.0993,0.2155358 0.11916,0.198956 0.119157,0.198956 0.139019,0.198957 0.158877,0.198957 0.158878,0.182377 0.158877,0.165797 0.198597,0.165797 0.178736,0.165798 0.198598,0.149217 0.218455,0.149217 0.198598,0.132638 0.238316,0.116058 0.258175,0.116057 0.218458,0.116058 0.238315,0.09948 0.258175,0.0829 0.258176,0.04974 0.258176,0.06632 0.278036,0.06632 0.258176,0.01658 0.278036,0.04974 0.258176,0.01658 0.278035,0 0,0 0.258177,0 0.278033,-0.01658 0.258177,-0.04974 0.297897,-0.01658 0.238314,-0.06632 0.278037,-0.06632 0.238314,-0.04974 0.258177,-0.0829 0.258176,-0.09948 0.218457,-0.116058 0.258175,-0.116057 0.218457,-0.116058 0.218457,-0.132638 0.198596,-0.149217 0.218457,-0.149217 0.178737,-0.165798 0.178738,-0.165797 0.178737,-0.165797 0.158876,-0.182377 0.158877,-0.198957 0.139019,-0.198957 0.119157,-0.198956 0.119159,-0.198956 0.07944,-0.2155358 0.0993,-0.215536 0.07944,-0.215536 0.05958,-0.215536 0.03972,-0.232116 0.03972,-0.232116 0.01986,-0.232117 0.01986,-0.215537"
|
||||
id="path2081"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001"
|
||||
d="m 96.089049,-11.154389 -0.01986,-0.215537 -0.01986,-0.232116 -0.03972,-0.232115 -0.01986,-0.232117 -0.07944,-0.215536 -0.07944,-0.215536 -0.07944,-0.215536 -0.0993,-0.198957 -0.11916,-0.215537 -0.119156,-0.198956 -0.139018,-0.198955 -0.139018,-0.198957 -0.178738,-0.182377 -0.178736,-0.165798 -0.158877,-0.165797 -0.198597,-0.165796 -0.218457,-0.149218 -0.198595,-0.149218 -0.218458,-0.132637 -0.218457,-0.116057 -0.238315,-0.116059 -0.238318,-0.116057 -0.258175,-0.09948 -0.238316,-0.0829 -0.258175,-0.06632 -0.258176,-0.04974 -0.258178,-0.06632 -0.278033,-0.03316 -0.258177,-0.03316 -0.278036,-0.01658 -0.278035,0 0,0 -0.278036,0 -0.258175,0.01658 -0.258176,0.03316 -0.278036,0.03316 -0.258175,0.06632 -0.258177,0.04974 -0.278035,0.06632 -0.238316,0.0829 -0.238317,0.09948 -0.258176,0.116057 -0.218456,0.116059 -0.238316,0.116057 -0.218457,0.132637 -0.218457,0.149218 -0.198597,0.149218 -0.178735,0.165796 -0.198599,0.165797 -0.158876,0.165798 -0.158877,0.182377 -0.158878,0.198957 -0.139018,0.198955 -0.119156,0.198956 -0.11916,0.215537 -0.0993,0.198957 -0.07944,0.215536 -0.07944,0.215536 -0.05958,0.215536 -0.03972,0.232117 -0.03972,0.232115 -0.01986,0.232116 0,0.215537 0,0 0,0.232116 0.01986,0.232115 0.03972,0.198957 0.03972,0.232117 0.05958,0.232116 0.07944,0.2155358 0.07944,0.215536 0.0993,0.215536 0.11916,0.198956 0.119156,0.198956 0.139018,0.198957 0.158878,0.182377 0.158877,0.198956 0.158876,0.165798 0.198599,0.165797 0.178735,0.165797 0.198597,0.149217 0.218457,0.132637 0.218457,0.149219 0.238316,0.116057 0.218456,0.116058 0.258176,0.116059 0.238317,0.0829 0.238316,0.0829 0.278035,0.0829 0.258177,0.06632 0.258175,0.04974 0.278036,0.03316 0.258176,0.03316 0.258175,0.01658 0.278036,0 0,0 0.278035,0 0.278036,-0.01658 0.258177,-0.03316 0.278033,-0.03316 0.258178,-0.04974 0.258176,-0.06632 0.258175,-0.0829 0.238316,-0.0829 0.258175,-0.0829 0.238318,-0.116059 0.238315,-0.116058 0.218457,-0.116057 0.218458,-0.149219 0.198595,-0.132637 0.218457,-0.149217 0.198597,-0.165797 0.158877,-0.165797 0.178736,-0.165798 0.178738,-0.198956 0.139018,-0.182377 0.139018,-0.198957 0.119156,-0.198956 0.11916,-0.198956 0.0993,-0.215536 0.07944,-0.215536 0.07944,-0.2155358 0.07944,-0.232116 0.01986,-0.232117 0.03972,-0.198957 0.01986,-0.232115 0.01986,-0.232116"
|
||||
id="path2083"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient9177);fill-opacity:1;stroke:none;stroke-width:0.001"
|
||||
d="m 95.751434,-11.419665 -0.01986,-0.232116 0,-0.232116 -0.03972,-0.215536 -0.05958,-0.232116 -0.05958,-0.215536 -0.05958,-0.215536 -0.0993,-0.215537 -0.0993,-0.215534 -0.0993,-0.198958 -0.119148,-0.198957 -0.158878,-0.198956 -0.158878,-0.198957 -0.139019,-0.182376 -0.178736,-0.165797 -0.178738,-0.165798 -0.198596,-0.165797 -0.198597,-0.149218 -0.198596,-0.149217 -0.218457,-0.132637 -0.238318,-0.132639 -0.238314,-0.116057 -0.218458,-0.09948 -0.258175,-0.09948 -0.258176,-0.0829 -0.258176,-0.0829 -0.258176,-0.04974 -0.258175,-0.04974 -0.278036,-0.03316 -0.258176,-0.03316 -0.278035,-0.01658 -0.258175,0 0,0 -0.278037,0 -0.258175,0.01658 -0.278037,0.03316 -0.278036,0.03316 -0.258175,0.04974 -0.258176,0.04974 -0.258176,0.0829 -0.258176,0.0829 -0.238315,0.09948 -0.238318,0.09948 -0.238314,0.116057 -0.238316,0.132639 -0.198598,0.132637 -0.218455,0.149217 -0.198598,0.149218 -0.178737,0.165797 -0.198596,0.165798 -0.178738,0.165797 -0.139017,0.182376 -0.158877,0.198957 -0.158878,0.198956 -0.0993,0.198957 -0.119159,0.198958 -0.0993,0.215534 -0.0993,0.215537 -0.05958,0.215536 -0.05958,0.215536 -0.05958,0.232116 -0.03972,0.215536 0,0.232116 -0.01986,0.232116 0,0 0.01986,0.215537 0,0.232115 0.03972,0.232116 0.05958,0.215536 0.05958,0.232115 0.05958,0.215538 0.0993,0.2155368 0.0993,0.198956 0.119159,0.215536 0.0993,0.198956 0.158878,0.198958 0.158877,0.182375 0.139017,0.182378 0.178738,0.165796 0.198596,0.182377 0.178737,0.149218 0.198598,0.165797 0.218455,0.132638 0.198598,0.149216 0.238316,0.116058 0.238314,0.116059 0.238318,0.116057 0.238315,0.0829 0.258176,0.0829 0.258176,0.0829 0.258176,0.04974 0.258175,0.04974 0.278036,0.04974 0.278037,0.03316 0.258175,0 0.278037,0.01658 0,0 0.258175,-0.01658 0.278035,0 0.258176,-0.03316 0.278036,-0.04974 0.258175,-0.04974 0.258176,-0.04974 0.258176,-0.0829 0.258176,-0.0829 0.258175,-0.0829 0.218458,-0.116057 0.238314,-0.116059 0.238318,-0.116058 0.218457,-0.149216 0.198596,-0.132638 0.198597,-0.165797 0.198596,-0.149218 0.178738,-0.182377 0.178736,-0.165796 0.139019,-0.182378 0.158878,-0.182375 0.158878,-0.198958 0.119156,-0.198956 0.0993,-0.215536 0.0993,-0.198956 0.0993,-0.2155368 0.05958,-0.215538 0.05958,-0.232115 0.05958,-0.215536 0.03972,-0.232116 0,-0.232115 0.01986,-0.215537"
|
||||
id="path2085"
|
||||
inkscape:connector-curvature="0" />
|
||||
<image
|
||||
y="0.11224562"
|
||||
x="72.823662"
|
||||
id="image4051"
|
||||
xlink:href="data:image/png;base64,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 TVD8UhG/VET6fkCKVyrGf8JS3zvTLine truncated
|
||||
height="19.227247"
|
||||
width="36.265862" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 94 KiB |
@@ -0,0 +1,85 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
height="70"
|
||||
width="70"
|
||||
id="svg2"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="microsoft.svg">
|
||||
<metadata
|
||||
id="metadata18">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs16" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1056"
|
||||
id="namedview14"
|
||||
showgrid="false"
|
||||
inkscape:zoom="6.0820847"
|
||||
inkscape:cx="11.449874"
|
||||
inkscape:cy="32.506345"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<rect
|
||||
height="64.5785798"
|
||||
width="64.5785805"
|
||||
x="2.7154145"
|
||||
y="2.8091612"
|
||||
id="rect0"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
height="30.933941"
|
||||
width="30.933941"
|
||||
x="2.7154145"
|
||||
y="2.8091612"
|
||||
id="rect6"
|
||||
style="fill:#f35325" />
|
||||
<rect
|
||||
height="30.933941"
|
||||
width="30.933941"
|
||||
x="36.360054"
|
||||
y="2.8091612"
|
||||
id="rect8"
|
||||
style="fill:#81bc06" />
|
||||
<rect
|
||||
height="30.933941"
|
||||
width="30.933941"
|
||||
x="2.7154145"
|
||||
y="36.4538"
|
||||
id="rect10"
|
||||
style="fill:#05a6f0" />
|
||||
<rect
|
||||
height="30.933941"
|
||||
width="30.933941"
|
||||
x="36.360054"
|
||||
y="36.4538"
|
||||
id="rect12"
|
||||
style="fill:#ffba08" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,332 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg1998"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
width="51.358818"
|
||||
height="47.630692"
|
||||
version="1.0"
|
||||
sodipodi:docname="multilayer_switch_docker.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
sodipodi:modified="true">
|
||||
<metadata
|
||||
id="metadata2003">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jeremy Grossmann</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>GNS-3</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2001">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient10123">
|
||||
<stop
|
||||
style="stop-color:#e4405c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop10125" />
|
||||
<stop
|
||||
style="stop-color:#e4405c;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop10127" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient8331">
|
||||
<stop
|
||||
style="stop-color:#6e8caa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop8333" />
|
||||
<stop
|
||||
style="stop-color:#cfd8e9;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop8335" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6603">
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6605" />
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6607" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6587">
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6589" />
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6591" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11918"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="matrix(1.1,0,0,1.1,1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11921"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11936"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6587"
|
||||
id="linearGradient6593"
|
||||
x1="3.95626"
|
||||
y1="0.64267641"
|
||||
x2="-1.2664427"
|
||||
y2="0.62730032"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942481e-3,-0.356572)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6603"
|
||||
id="linearGradient6609"
|
||||
x1="2.2801981"
|
||||
y1="1.4519272"
|
||||
x2="-0.41311559"
|
||||
y2="1.4649135"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942482e-3,-0.356572)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8331"
|
||||
id="linearGradient8337"
|
||||
x1="2.1178279"
|
||||
y1="0.30649999"
|
||||
x2="-0.4954865"
|
||||
y2="0.30649999"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.117962,0,0,1.035008,-4.0973e-2,-6.788682e-3)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10123"
|
||||
id="linearGradient9177"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(46.099937,0,0,44.044643,-34.933093,-32.464927)"
|
||||
x1="1.3990936"
|
||||
y1="1.4711363"
|
||||
x2="0.49966058"
|
||||
y2="0.56367606" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8331"
|
||||
id="linearGradient9199"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(24.666332,1.3331909e-2,-1.2883406e-2,23.708747,-8.6563136,-4.6316275)"
|
||||
x1="2.1178279"
|
||||
y1="0.30649999"
|
||||
x2="-0.4954865"
|
||||
y2="0.30649999" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="940"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="7.8958335"
|
||||
inkscape:cx="35.517778"
|
||||
inkscape:cy="24.036017"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="35"
|
||||
inkscape:current-layer="svg1998"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<path
|
||||
id="path11907"
|
||||
d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612"
|
||||
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path11020"
|
||||
d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672"
|
||||
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
id="path2037"
|
||||
d="M 0.062500355,5.0439492 L 0.062500355,46.326915 L 44.31814,46.326915 L 44.31814,5.0439492 L 0.062500355,5.0439492"
|
||||
style="fill:#6e8caa;fill-opacity:1;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2041"
|
||||
d="M -0.028418806,5.1647552 L 5.5982489,0.11782966 L 50.022311,0.14184042 L 44.346312,5.1887393 L -0.028418806,5.1647552"
|
||||
style="fill:url(#linearGradient9199);fill-opacity:1;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2045"
|
||||
d="M 44.228586,5.0887264 L 49.976169,0.12831483 L 49.976169,41.348635 L 44.228586,46.309047 L 44.228586,5.0887264"
|
||||
style="fill:#6e8296;fill-opacity:1;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2049"
|
||||
d="m 17.380994,23.789246 -11.7096633,0 0,-1.53703 -3.5916196,3.074057 3.5916196,3.423384 0,-1.513742 11.7096633,0 0,-3.446669"
|
||||
style="fill:#000000;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2051"
|
||||
d="M 19.767207,21.506989 L 11.329361,13.495809 L 12.534768,12.354681 L 7.7131417,12.354681 L 7.7131417,16.919191 L 8.893948,15.778064 L 17.380994,23.789246 L 19.767207,21.506989"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2053"
|
||||
d="M 23.383427,21.506989 L 23.383427,10.049138 L 24.982435,10.049138 L 21.784419,6.9983684 L 18.168199,10.049138 L 19.767207,10.049138 L 19.767207,21.506989 L 23.383427,21.506989"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2055"
|
||||
d="M 25.818839,23.789246 L 34.281285,15.778064 L 35.462092,16.919191 L 35.462092,12.354681 L 30.665065,12.354681 L 31.845872,13.495809 L 23.383427,21.506989 L 25.818839,23.789246"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2057"
|
||||
d="M 25.818839,27.235915 L 37.872905,27.235915 L 37.872905,28.749657 L 41.120121,25.326273 L 37.872905,22.252216 L 37.872905,23.789246 L 25.818839,23.789246 L 25.818839,27.235915"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2059"
|
||||
d="M 23.383427,29.51817 L 31.845872,37.529351 L 30.665065,38.693768 L 35.462092,38.321154 L 35.462092,34.129257 L 34.281285,35.270385 L 25.818839,27.235915 L 23.383427,29.51817"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2061"
|
||||
d="M 19.767207,29.51817 L 19.767207,40.999311 L 18.168199,40.999311 L 21.784419,44.026792 L 24.982435,40.999311 L 23.383427,40.999311 L 23.383427,29.51817 L 19.767207,29.51817"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2063"
|
||||
d="M 17.380994,27.235915 L 8.893948,35.270385 L 7.7131417,34.129257 L 7.7131417,38.693768 L 12.534768,38.693768 L 11.329361,37.529351 L 19.767207,29.51817 L 17.380994,27.235915"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2065"
|
||||
d="m 17.749996,24.185146 -11.6604631,0 0,-1.537028 -3.6162195,3.05077 3.6162195,3.44667 0,-1.51374 11.6604631,0 0,-3.446672"
|
||||
style="fill:#ffffff;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2067"
|
||||
d="M 20.185408,21.902892 L 11.722963,13.868422 L 12.95297,12.727294 L 8.1067438,12.727294 L 8.1067438,17.315093 L 9.2875501,16.150677 L 17.749996,24.185146 L 20.185408,21.902892"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2069"
|
||||
d="M 23.801628,21.902892 L 23.801628,10.421751 L 25.400638,10.421751 L 22.178019,7.3709816 L 18.561799,10.421751 L 20.185408,10.421751 L 20.185408,21.902892 L 23.801628,21.902892"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2071"
|
||||
d="M 26.237042,24.185146 L 34.674887,16.150677 L 35.880293,17.315093 L 35.880293,12.727294 L 31.034067,12.727294 L 32.239475,13.868422 L 23.801628,21.902892 L 26.237042,24.185146"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2073"
|
||||
d="M 26.237042,27.631818 L 38.266506,27.631818 L 38.266506,29.145558 L 41.513724,25.698888 L 38.266506,22.648118 L 38.266506,24.185146 L 26.237042,24.185146 L 26.237042,27.631818"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2075"
|
||||
d="M 23.801628,29.914073 L 32.239475,37.925254 L 31.034067,39.066381 L 35.880293,38.693768 L 35.880293,34.478581 L 34.674887,35.619709 L 26.237042,27.631818 L 23.801628,29.914073"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2077"
|
||||
d="M 20.185408,29.914073 L 20.185408,41.348635 L 18.561799,41.348635 L 22.178019,44.422693 L 25.400638,41.348635 L 23.801628,41.348635 L 23.801628,29.914073 L 20.185408,29.914073"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2079"
|
||||
d="M 17.749996,27.631818 L 9.2875501,35.619709 L 8.1067438,34.478581 L 8.1067438,39.066381 L 12.95297,39.066381 L 11.722963,37.925254 L 20.185408,29.914073 L 17.749996,27.631818"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2081"
|
||||
d="m 34.118834,25.441927 -0.04606,-0.574105 -0.04606,-0.662429 -0.09212,-0.574105 -0.09212,-0.574104 -0.138179,-0.618267 -0.18424,-0.574109 -0.230299,-0.574105 -0.18424,-0.574105 -0.276361,-0.529944 -0.276359,-0.529943 -0.322423,-0.529943 -0.36848,-0.529943 -0.368485,-0.485782 -0.414542,-0.44162 -0.414543,-0.485783 -0.414539,-0.397453 -0.506663,-0.39746 -0.4606,-0.397458 -0.506663,-0.353293 -0.506662,-0.309135 -0.59878,-0.353296 -0.506662,-0.26497 -0.598782,-0.220812 -0.598782,-0.22081 -0.552719,-0.220806 -0.644843,-0.132495 -0.552718,-0.176642 -0.690907,-0.08833 -0.598782,-0.08834 -0.644838,-0.04416 -0.598782,0 0,0 -0.644841,0 -0.598782,0.04416 -0.644843,0.08834 -0.598782,0.08833 -0.644843,0.176642 -0.59878,0.132495 -0.598782,0.220806 -0.598781,0.22081 -0.55272,0.220812 -0.506663,0.26497 -0.598782,0.353296 -0.552718,0.309135 -0.460604,0.353293 -0.506658,0.397458 -0.460605,0.39746 -0.414539,0.397453 -0.4606,0.485783 -0.368481,0.44162 -0.368481,0.485782 -0.36848,0.529943 -0.322426,0.529943 -0.276357,0.529943 -0.276364,0.529944 -0.230298,0.574105 -0.2302998,0.574105 -0.138179,0.574109 -0.1381801,0.618267 -0.138179,0.574104 -0.092116,0.574105 0,0.662429 -0.046064,0.574105 0,0 0.046064,0.574105 0,0.61827 0.092116,0.618266 0.138179,0.618267 0.1381801,0.574105 0.138179,0.574105 0.2302998,0.574105 0.230298,0.574106 0.276364,0.529941 0.276357,0.529944 0.322426,0.529943 0.36848,0.529944 0.368481,0.485781 0.368481,0.441621 0.4606,0.44162 0.414539,0.44162 0.460605,0.397458 0.506658,0.397457 0.460604,0.353296 0.552718,0.309134 0.598782,0.309132 0.506663,0.309135 0.55272,0.26497 0.598781,0.220812 0.598782,0.132477 0.59878,0.176642 0.644843,0.176641 0.598782,0.04416 0.644843,0.132495 0.598782,0.04416 0.644841,0 0,0 0.598782,0 0.644838,-0.04416 0.598782,-0.132495 0.690907,-0.04416 0.552718,-0.176641 0.644843,-0.176642 0.552719,-0.132477 0.598782,-0.220812 0.598782,-0.26497 0.506662,-0.309135 0.59878,-0.309132 0.506662,-0.309134 0.506663,-0.353296 0.4606,-0.397457 0.506663,-0.397458 0.414539,-0.44162 0.414543,-0.44162 0.414542,-0.441621 0.368477,-0.485781 0.368481,-0.529944 0.322423,-0.529943 0.276359,-0.529944 0.276361,-0.529941 0.18424,-0.574106 0.230298,-0.574105 0.18424,-0.574105 0.13818,-0.574105 0.09212,-0.618267 0.09212,-0.618266 0.04606,-0.61827 0.04606,-0.574105"
|
||||
style="fill:#000000;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2083"
|
||||
d="m 35.032688,26.020463 -0.04599,-0.571057 -0.04599,-0.614983 -0.09196,-0.614983 -0.04599,-0.614989 -0.183929,-0.571054 -0.183929,-0.571058 -0.183928,-0.571056 -0.229912,-0.527129 -0.275896,-0.571056 -0.275892,-0.52713 -0.321879,-0.527128 -0.321878,-0.527129 -0.413843,-0.483203 -0.413839,-0.439274 -0.36786,-0.439275 -0.459824,-0.439271 -0.505807,-0.395349 -0.459823,-0.395347 -0.505807,-0.35142 -0.505809,-0.30749 -0.551772,-0.307493 -0.551792,-0.307491 -0.597771,-0.263565 -0.551788,-0.219637 -0.597772,-0.175704 -0.597771,-0.131772 -0.597776,-0.175704 -0.643751,-0.08787 -0.597773,-0.08786 -0.643755,-0.04393 -0.643756,0 0,0 -0.643753,0 -0.59777,0.04393 -0.597771,0.08786 -0.643755,0.08787 -0.597773,0.175704 -0.597773,0.131772 -0.643754,0.175704 -0.551788,0.219637 -0.551792,0.263565 -0.597771,0.307491 -0.505807,0.307493 -0.551789,0.30749 -0.505808,0.35142 -0.505807,0.395347 -0.459825,0.395349 -0.413838,0.439271 -0.45983,0.439275 -0.367856,0.439274 -0.367859,0.483203 -0.367859,0.527129 -0.321879,0.527128 -0.275892,0.52713 -0.275897,0.571056 -0.22991,0.527129 -0.183929,0.571056 -0.18393,0.571058 -0.137946,0.571054 -0.09197,0.614989 -0.09197,0.614983 -0.04598,0.614983 0,0.571057 0,0 0,0.614983 0.04598,0.614982 0.09197,0.52713 0.09197,0.614987 0.137946,0.614983 0.18393,0.571057 0.183929,0.571056 0.22991,0.571056 0.275897,0.527128 0.275892,0.52713 0.321879,0.527129 0.367859,0.483203 0.367859,0.527127 0.367856,0.439276 0.45983,0.439274 0.413838,0.439276 0.459825,0.395343 0.505807,0.351421 0.505808,0.395349 0.551789,0.307489 0.505807,0.307494 0.597771,0.307493 0.551792,0.219636 0.551788,0.219635 0.643754,0.219639 0.597773,0.175704 0.597773,0.131773 0.643755,0.08786 0.597771,0.08787 0.59777,0.04393 0.643753,0 0,0 0.643756,0 0.643755,-0.04393 0.597773,-0.08787 0.643751,-0.08786 0.597776,-0.131773 0.597771,-0.175704 0.597772,-0.219639 0.551788,-0.219635 0.597771,-0.219636 0.551792,-0.307493 0.551788,-0.307494 0.505809,-0.307489 0.505807,-0.395349 0.459823,-0.351421 0.505807,-0.395343 0.459824,-0.439276 0.36786,-0.439274 0.413839,-0.439276 0.413843,-0.527127 0.321878,-0.483203 0.321879,-0.527129 0.275892,-0.52713 0.275896,-0.527128 0.229912,-0.571056 0.183928,-0.571056 0.183929,-0.571057 0.183929,-0.614983 0.04599,-0.614987 0.09196,-0.52713 0.04599,-0.614982 0.04599,-0.614983"
|
||||
style="fill:#ffffff;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2085"
|
||||
d="m 34.677809,25.806162 -0.04611,-0.616625 0,-0.616628 -0.0922,-0.57258 -0.138299,-0.616626 -0.138299,-0.57258 -0.138299,-0.572579 -0.230499,-0.572581 -0.230504,-0.572578 -0.230498,-0.528537 -0.276597,-0.528537 -0.368799,-0.528536 -0.3688,-0.528535 -0.322694,-0.484491 -0.414898,-0.440449 -0.4149,-0.440446 -0.460999,-0.440448 -0.460999,-0.396402 -0.460999,-0.396399 -0.5071,-0.35236 -0.553201,-0.352357 -0.553197,-0.308311 -0.5071,-0.26427 -0.5993,-0.264265 -0.599298,-0.220225 -0.599299,-0.220222 -0.599299,-0.132126 -0.599299,-0.132143 -0.645402,-0.0881 -0.599297,-0.0881 -0.645398,-0.04406 -0.599297,0 0,0 -0.645401,0 -0.5993,0.04406 -0.6454,0.0881 -0.645401,0.0881 -0.599298,0.132143 -0.599299,0.132126 -0.5993,0.220222 -0.599298,0.220225 -0.553198,0.264265 -0.553203,0.26427 -0.553194,0.308311 -0.553199,0.352357 -0.461002,0.35236 -0.507096,0.396399 -0.461003,0.396402 -0.414898,0.440448 -0.460998,0.440446 -0.414901,0.440449 -0.322698,0.484491 -0.3688,0.528535 -0.368799,0.528536 -0.2305,0.528537 -0.276599,0.528537 -0.230502,0.572578 -0.230498,0.572581 -0.138299,0.572579 -0.138299,0.57258 -0.1382985,0.616626 -0.09221,0.57258 0,0.616628 -0.0461,0.616625 0,0 0.0461,0.572579 0,0.616625 0.09221,0.616624 0.1382985,0.57258 0.138299,0.616625 0.138299,0.572585 0.230498,0.57258 0.230502,0.528536 0.276599,0.57258 0.2305,0.528537 0.368799,0.528537 0.3688,0.484489 0.322698,0.484493 0.414901,0.440442 0.460998,0.484492 0.414898,0.396404 0.461003,0.440447 0.507096,0.352358 0.461002,0.396399 0.553199,0.308313 0.553194,0.308315 0.553203,0.30831 0.553198,0.220226 0.599298,0.220223 0.5993,0.220221 0.599299,0.132144 0.599298,0.132143 0.645401,0.132125 0.6454,0.0881 0.5993,0 0.645401,0.04406 0,0 0.599297,-0.04406 0.645398,0 0.599297,-0.0881 0.645402,-0.132125 0.599299,-0.132143 0.599299,-0.132144 0.599299,-0.220221 0.599298,-0.220223 0.5993,-0.220226 0.5071,-0.30831 0.553197,-0.308315 0.553201,-0.308313 0.5071,-0.396399 0.460999,-0.352358 0.460999,-0.440447 0.460999,-0.396404 0.4149,-0.484492 0.414898,-0.440442 0.322702,-0.484493 0.3688,-0.484489 0.3688,-0.528537 0.276596,-0.528537 0.230498,-0.57258 0.230504,-0.528536 0.230499,-0.57258 0.138299,-0.572585 0.138299,-0.616625 0.138299,-0.57258 0.0922,-0.616624 0,-0.616625 0.04611,-0.572579"
|
||||
style="fill:url(#linearGradient9177);fill-opacity:1;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<image
|
||||
y="18.196489"
|
||||
x="9.4765692"
|
||||
id="image4051"
|
||||
xlink:href="data:image/png;base64,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 TVD8UhG/VET6fkCKVyrGf8JS3zvTJgzxLine truncated
|
||||
height="14.351258"
|
||||
width="24.804121" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 53 KiB |
@@ -0,0 +1,344 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg1998"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
width="51.358818"
|
||||
height="47.630692"
|
||||
version="1.0"
|
||||
sodipodi:docname="multilayer_switch_red_docker.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
sodipodi:modified="true">
|
||||
<metadata
|
||||
id="metadata2003">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jeremy Grossmann</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>GNS-3</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2001">
|
||||
<linearGradient
|
||||
id="linearGradient6294">
|
||||
<stop
|
||||
style="stop-color:#2f7b2f;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6296" />
|
||||
<stop
|
||||
style="stop-color:#533221;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6298" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient10123">
|
||||
<stop
|
||||
style="stop-color:#e4405c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop10125" />
|
||||
<stop
|
||||
style="stop-color:#e4405c;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop10127" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient8331">
|
||||
<stop
|
||||
style="stop-color:#6e8caa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop8333" />
|
||||
<stop
|
||||
style="stop-color:#cfd8e9;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop8335" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6603">
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6605" />
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6607" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6587">
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6589" />
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6591" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11918"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="matrix(1.1,0,0,1.1,1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11921"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11936"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6587"
|
||||
id="linearGradient6593"
|
||||
x1="3.95626"
|
||||
y1="0.64267641"
|
||||
x2="-1.2664427"
|
||||
y2="0.62730032"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942481e-3,-0.356572)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6603"
|
||||
id="linearGradient6609"
|
||||
x1="2.2801981"
|
||||
y1="1.4519272"
|
||||
x2="-0.41311559"
|
||||
y2="1.4649135"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942482e-3,-0.356572)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8331"
|
||||
id="linearGradient8337"
|
||||
x1="2.1178279"
|
||||
y1="0.30649999"
|
||||
x2="-0.4954865"
|
||||
y2="0.30649999"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.117962,0,0,1.035008,-4.0973e-2,-6.788682e-3)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10123"
|
||||
id="linearGradient9177"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(46.099937,0,0,44.044643,-34.933093,-32.464927)"
|
||||
x1="1.3990936"
|
||||
y1="1.4711363"
|
||||
x2="0.49966058"
|
||||
y2="0.56367606" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6294"
|
||||
id="linearGradient6300"
|
||||
x1="-0.028418806"
|
||||
y1="2.6532845"
|
||||
x2="75.554962"
|
||||
y2="2.8541231"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1,0,0,-1,49.993892,5.306569)" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="940"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="7.8958335"
|
||||
inkscape:cx="19.474194"
|
||||
inkscape:cy="23.998173"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="35"
|
||||
inkscape:current-layer="svg1998"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<path
|
||||
id="path11907"
|
||||
d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612"
|
||||
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path11020"
|
||||
d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672"
|
||||
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
id="path2037"
|
||||
d="M 0.062500355,5.0439492 L 0.062500355,46.326915 L 44.31814,46.326915 L 44.31814,5.0439492 L 0.062500355,5.0439492"
|
||||
style="fill:#40814a;fill-opacity:1;stroke:none;stroke-width:0.00100000000000000" />
|
||||
<path
|
||||
id="path2041"
|
||||
d="M 50.022311,0.14181376 44.395643,5.1887393 -0.02841881,5.1647285 5.6475802,0.11782966 50.022311,0.14181376"
|
||||
style="fill:url(#linearGradient6300);fill-opacity:1;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2045"
|
||||
d="M 44.228586,5.0887264 L 49.976169,0.12831483 L 49.976169,41.348635 L 44.228586,46.309047 L 44.228586,5.0887264"
|
||||
style="fill:#347b21;fill-opacity:1;stroke:none;stroke-width:0.00100000000000000" />
|
||||
<path
|
||||
id="path2049"
|
||||
d="m 17.380994,23.789246 -11.7096633,0 0,-1.53703 -3.5916196,3.074057 3.5916196,3.423384 0,-1.513742 11.7096633,0 0,-3.446669"
|
||||
style="fill:#000000;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2051"
|
||||
d="M 19.767207,21.506989 L 11.329361,13.495809 L 12.534768,12.354681 L 7.7131417,12.354681 L 7.7131417,16.919191 L 8.893948,15.778064 L 17.380994,23.789246 L 19.767207,21.506989"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2053"
|
||||
d="M 23.383427,21.506989 L 23.383427,10.049138 L 24.982435,10.049138 L 21.784419,6.9983684 L 18.168199,10.049138 L 19.767207,10.049138 L 19.767207,21.506989 L 23.383427,21.506989"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2055"
|
||||
d="M 25.818839,23.789246 L 34.281285,15.778064 L 35.462092,16.919191 L 35.462092,12.354681 L 30.665065,12.354681 L 31.845872,13.495809 L 23.383427,21.506989 L 25.818839,23.789246"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2057"
|
||||
d="M 25.818839,27.235915 L 37.872905,27.235915 L 37.872905,28.749657 L 41.120121,25.326273 L 37.872905,22.252216 L 37.872905,23.789246 L 25.818839,23.789246 L 25.818839,27.235915"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2059"
|
||||
d="M 23.383427,29.51817 L 31.845872,37.529351 L 30.665065,38.693768 L 35.462092,38.321154 L 35.462092,34.129257 L 34.281285,35.270385 L 25.818839,27.235915 L 23.383427,29.51817"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2061"
|
||||
d="M 19.767207,29.51817 L 19.767207,40.999311 L 18.168199,40.999311 L 21.784419,44.026792 L 24.982435,40.999311 L 23.383427,40.999311 L 23.383427,29.51817 L 19.767207,29.51817"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2063"
|
||||
d="M 17.380994,27.235915 L 8.893948,35.270385 L 7.7131417,34.129257 L 7.7131417,38.693768 L 12.534768,38.693768 L 11.329361,37.529351 L 19.767207,29.51817 L 17.380994,27.235915"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2065"
|
||||
d="m 17.749996,24.185146 -11.6604631,0 0,-1.537028 -3.6162195,3.05077 3.6162195,3.44667 0,-1.51374 11.6604631,0 0,-3.446672"
|
||||
style="fill:#ffffff;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2067"
|
||||
d="M 20.185408,21.902892 L 11.722963,13.868422 L 12.95297,12.727294 L 8.1067438,12.727294 L 8.1067438,17.315093 L 9.2875501,16.150677 L 17.749996,24.185146 L 20.185408,21.902892"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2069"
|
||||
d="M 23.801628,21.902892 L 23.801628,10.421751 L 25.400638,10.421751 L 22.178019,7.3709816 L 18.561799,10.421751 L 20.185408,10.421751 L 20.185408,21.902892 L 23.801628,21.902892"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2071"
|
||||
d="M 26.237042,24.185146 L 34.674887,16.150677 L 35.880293,17.315093 L 35.880293,12.727294 L 31.034067,12.727294 L 32.239475,13.868422 L 23.801628,21.902892 L 26.237042,24.185146"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2073"
|
||||
d="M 26.237042,27.631818 L 38.266506,27.631818 L 38.266506,29.145558 L 41.513724,25.698888 L 38.266506,22.648118 L 38.266506,24.185146 L 26.237042,24.185146 L 26.237042,27.631818"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2075"
|
||||
d="M 23.801628,29.914073 L 32.239475,37.925254 L 31.034067,39.066381 L 35.880293,38.693768 L 35.880293,34.478581 L 34.674887,35.619709 L 26.237042,27.631818 L 23.801628,29.914073"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2077"
|
||||
d="M 20.185408,29.914073 L 20.185408,41.348635 L 18.561799,41.348635 L 22.178019,44.422693 L 25.400638,41.348635 L 23.801628,41.348635 L 23.801628,29.914073 L 20.185408,29.914073"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2079"
|
||||
d="M 17.749996,27.631818 L 9.2875501,35.619709 L 8.1067438,34.478581 L 8.1067438,39.066381 L 12.95297,39.066381 L 11.722963,37.925254 L 20.185408,29.914073 L 17.749996,27.631818"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2081"
|
||||
d="m 34.118834,25.441927 -0.04606,-0.574105 -0.04606,-0.662429 -0.09212,-0.574105 -0.09212,-0.574104 -0.138179,-0.618267 -0.18424,-0.574109 -0.230299,-0.574105 -0.18424,-0.574105 -0.276361,-0.529944 -0.276359,-0.529943 -0.322423,-0.529943 -0.36848,-0.529943 -0.368485,-0.485782 -0.414542,-0.44162 -0.414543,-0.485783 -0.414539,-0.397453 -0.506663,-0.39746 -0.4606,-0.397458 -0.506663,-0.353293 -0.506662,-0.309135 -0.59878,-0.353296 -0.506662,-0.26497 -0.598782,-0.220812 -0.598782,-0.22081 -0.552719,-0.220806 -0.644843,-0.132495 -0.552718,-0.176642 -0.690907,-0.08833 -0.598782,-0.08834 -0.644838,-0.04416 -0.598782,0 0,0 -0.644841,0 -0.598782,0.04416 -0.644843,0.08834 -0.598782,0.08833 -0.644843,0.176642 -0.59878,0.132495 -0.598782,0.220806 -0.598781,0.22081 -0.55272,0.220812 -0.506663,0.26497 -0.598782,0.353296 -0.552718,0.309135 -0.460604,0.353293 -0.506658,0.397458 -0.460605,0.39746 -0.414539,0.397453 -0.4606,0.485783 -0.368481,0.44162 -0.368481,0.485782 -0.36848,0.529943 -0.322426,0.529943 -0.276357,0.529943 -0.276364,0.529944 -0.230298,0.574105 -0.2302998,0.574105 -0.138179,0.574109 -0.1381801,0.618267 -0.138179,0.574104 -0.092116,0.574105 0,0.662429 -0.046064,0.574105 0,0 0.046064,0.574105 0,0.61827 0.092116,0.618266 0.138179,0.618267 0.1381801,0.574105 0.138179,0.574105 0.2302998,0.574105 0.230298,0.574106 0.276364,0.529941 0.276357,0.529944 0.322426,0.529943 0.36848,0.529944 0.368481,0.485781 0.368481,0.441621 0.4606,0.44162 0.414539,0.44162 0.460605,0.397458 0.506658,0.397457 0.460604,0.353296 0.552718,0.309134 0.598782,0.309132 0.506663,0.309135 0.55272,0.26497 0.598781,0.220812 0.598782,0.132477 0.59878,0.176642 0.644843,0.176641 0.598782,0.04416 0.644843,0.132495 0.598782,0.04416 0.644841,0 0,0 0.598782,0 0.644838,-0.04416 0.598782,-0.132495 0.690907,-0.04416 0.552718,-0.176641 0.644843,-0.176642 0.552719,-0.132477 0.598782,-0.220812 0.598782,-0.26497 0.506662,-0.309135 0.59878,-0.309132 0.506662,-0.309134 0.506663,-0.353296 0.4606,-0.397457 0.506663,-0.397458 0.414539,-0.44162 0.414543,-0.44162 0.414542,-0.441621 0.368477,-0.485781 0.368481,-0.529944 0.322423,-0.529943 0.276359,-0.529944 0.276361,-0.529941 0.18424,-0.574106 0.230298,-0.574105 0.18424,-0.574105 0.13818,-0.574105 0.09212,-0.618267 0.09212,-0.618266 0.04606,-0.61827 0.04606,-0.574105"
|
||||
style="fill:#000000;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2083"
|
||||
d="m 35.032688,26.020463 -0.04599,-0.571057 -0.04599,-0.614983 -0.09196,-0.614983 -0.04599,-0.614989 -0.183929,-0.571054 -0.183929,-0.571058 -0.183928,-0.571056 -0.229912,-0.527129 -0.275896,-0.571056 -0.275892,-0.52713 -0.321879,-0.527128 -0.321878,-0.527129 -0.413843,-0.483203 -0.413839,-0.439274 -0.36786,-0.439275 -0.459824,-0.439271 -0.505807,-0.395349 -0.459823,-0.395347 -0.505807,-0.35142 -0.505809,-0.30749 -0.551772,-0.307493 -0.551792,-0.307491 -0.597771,-0.263565 -0.551788,-0.219637 -0.597772,-0.175704 -0.597771,-0.131772 -0.597776,-0.175704 -0.643751,-0.08787 -0.597773,-0.08786 -0.643755,-0.04393 -0.643756,0 0,0 -0.643753,0 -0.59777,0.04393 -0.597771,0.08786 -0.643755,0.08787 -0.597773,0.175704 -0.597773,0.131772 -0.643754,0.175704 -0.551788,0.219637 -0.551792,0.263565 -0.597771,0.307491 -0.505807,0.307493 -0.551789,0.30749 -0.505808,0.35142 -0.505807,0.395347 -0.459825,0.395349 -0.413838,0.439271 -0.45983,0.439275 -0.367856,0.439274 -0.367859,0.483203 -0.367859,0.527129 -0.321879,0.527128 -0.275892,0.52713 -0.275897,0.571056 -0.22991,0.527129 -0.183929,0.571056 -0.18393,0.571058 -0.137946,0.571054 -0.09197,0.614989 -0.09197,0.614983 -0.04598,0.614983 0,0.571057 0,0 0,0.614983 0.04598,0.614982 0.09197,0.52713 0.09197,0.614987 0.137946,0.614983 0.18393,0.571057 0.183929,0.571056 0.22991,0.571056 0.275897,0.527128 0.275892,0.52713 0.321879,0.527129 0.367859,0.483203 0.367859,0.527127 0.367856,0.439276 0.45983,0.439274 0.413838,0.439276 0.459825,0.395343 0.505807,0.351421 0.505808,0.395349 0.551789,0.307489 0.505807,0.307494 0.597771,0.307493 0.551792,0.219636 0.551788,0.219635 0.643754,0.219639 0.597773,0.175704 0.597773,0.131773 0.643755,0.08786 0.597771,0.08787 0.59777,0.04393 0.643753,0 0,0 0.643756,0 0.643755,-0.04393 0.597773,-0.08787 0.643751,-0.08786 0.597776,-0.131773 0.597771,-0.175704 0.597772,-0.219639 0.551788,-0.219635 0.597771,-0.219636 0.551792,-0.307493 0.551788,-0.307494 0.505809,-0.307489 0.505807,-0.395349 0.459823,-0.351421 0.505807,-0.395343 0.459824,-0.439276 0.36786,-0.439274 0.413839,-0.439276 0.413843,-0.527127 0.321878,-0.483203 0.321879,-0.527129 0.275892,-0.52713 0.275896,-0.527128 0.229912,-0.571056 0.183928,-0.571056 0.183929,-0.571057 0.183929,-0.614983 0.04599,-0.614987 0.09196,-0.52713 0.04599,-0.614982 0.04599,-0.614983"
|
||||
style="fill:#ffffff;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2085"
|
||||
d="m 34.677809,25.806162 -0.04611,-0.616625 0,-0.616628 -0.0922,-0.57258 -0.138299,-0.616626 -0.138299,-0.57258 -0.138299,-0.572579 -0.230499,-0.572581 -0.230504,-0.572578 -0.230498,-0.528537 -0.276597,-0.528537 -0.368799,-0.528536 -0.3688,-0.528535 -0.322694,-0.484491 -0.414898,-0.440449 -0.4149,-0.440446 -0.460999,-0.440448 -0.460999,-0.396402 -0.460999,-0.396399 -0.5071,-0.35236 -0.553201,-0.352357 -0.553197,-0.308311 -0.5071,-0.26427 -0.5993,-0.264265 -0.599298,-0.220225 -0.599299,-0.220222 -0.599299,-0.132126 -0.599299,-0.132143 -0.645402,-0.0881 -0.599297,-0.0881 -0.645398,-0.04406 -0.599297,0 0,0 -0.645401,0 -0.5993,0.04406 -0.6454,0.0881 -0.645401,0.0881 -0.599298,0.132143 -0.599299,0.132126 -0.5993,0.220222 -0.599298,0.220225 -0.553198,0.264265 -0.553203,0.26427 -0.553194,0.308311 -0.553199,0.352357 -0.461002,0.35236 -0.507096,0.396399 -0.461003,0.396402 -0.414898,0.440448 -0.460998,0.440446 -0.414901,0.440449 -0.322698,0.484491 -0.3688,0.528535 -0.368799,0.528536 -0.2305,0.528537 -0.276599,0.528537 -0.230502,0.572578 -0.230498,0.572581 -0.138299,0.572579 -0.138299,0.57258 -0.1382985,0.616626 -0.09221,0.57258 0,0.616628 -0.0461,0.616625 0,0 0.0461,0.572579 0,0.616625 0.09221,0.616624 0.1382985,0.57258 0.138299,0.616625 0.138299,0.572585 0.230498,0.57258 0.230502,0.528536 0.276599,0.57258 0.2305,0.528537 0.368799,0.528537 0.3688,0.484489 0.322698,0.484493 0.414901,0.440442 0.460998,0.484492 0.414898,0.396404 0.461003,0.440447 0.507096,0.352358 0.461002,0.396399 0.553199,0.308313 0.553194,0.308315 0.553203,0.30831 0.553198,0.220226 0.599298,0.220223 0.5993,0.220221 0.599299,0.132144 0.599298,0.132143 0.645401,0.132125 0.6454,0.0881 0.5993,0 0.645401,0.04406 0,0 0.599297,-0.04406 0.645398,0 0.599297,-0.0881 0.645402,-0.132125 0.599299,-0.132143 0.599299,-0.132144 0.599299,-0.220221 0.599298,-0.220223 0.5993,-0.220226 0.5071,-0.30831 0.553197,-0.308315 0.553201,-0.308313 0.5071,-0.396399 0.460999,-0.352358 0.460999,-0.440447 0.460999,-0.396404 0.4149,-0.484492 0.414898,-0.440442 0.322702,-0.484493 0.3688,-0.484489 0.3688,-0.528537 0.276596,-0.528537 0.230498,-0.57258 0.230504,-0.528536 0.230499,-0.57258 0.138299,-0.572585 0.138299,-0.616625 0.138299,-0.57258 0.0922,-0.616624 0,-0.616625 0.04611,-0.572579"
|
||||
style="fill:url(#linearGradient9177);fill-opacity:1;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<image
|
||||
y="18.196489"
|
||||
x="9.4765692"
|
||||
id="image4051"
|
||||
xlink:href="data:image/png;base64,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 TVD8UhG/VET6fkCKVyrGf8JS3zvTJgzxLine truncated
|
||||
height="14.351258"
|
||||
width="24.804121" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 54 KiB |
@@ -0,0 +1,344 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg1998"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
width="51.358818"
|
||||
height="47.630692"
|
||||
version="1.0"
|
||||
sodipodi:docname="multilayer_switch_green_docker.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
sodipodi:modified="true">
|
||||
<metadata
|
||||
id="metadata2003">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jeremy Grossmann</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>GNS-3</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2001">
|
||||
<linearGradient
|
||||
id="linearGradient6294">
|
||||
<stop
|
||||
style="stop-color:#ff3221;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6296" />
|
||||
<stop
|
||||
style="stop-color:#ff3221;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6298" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient10123">
|
||||
<stop
|
||||
style="stop-color:#e4405c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop10125" />
|
||||
<stop
|
||||
style="stop-color:#e4405c;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop10127" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient8331">
|
||||
<stop
|
||||
style="stop-color:#6e8caa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop8333" />
|
||||
<stop
|
||||
style="stop-color:#cfd8e9;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop8335" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6603">
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6605" />
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6607" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6587">
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6589" />
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6591" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11918"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="matrix(1.1,0,0,1.1,1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11921"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11936"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6587"
|
||||
id="linearGradient6593"
|
||||
x1="3.95626"
|
||||
y1="0.64267641"
|
||||
x2="-1.2664427"
|
||||
y2="0.62730032"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942481e-3,-0.356572)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6603"
|
||||
id="linearGradient6609"
|
||||
x1="2.2801981"
|
||||
y1="1.4519272"
|
||||
x2="-0.41311559"
|
||||
y2="1.4649135"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942482e-3,-0.356572)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8331"
|
||||
id="linearGradient8337"
|
||||
x1="2.1178279"
|
||||
y1="0.30649999"
|
||||
x2="-0.4954865"
|
||||
y2="0.30649999"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.117962,0,0,1.035008,-4.0973e-2,-6.788682e-3)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10123"
|
||||
id="linearGradient9177"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(46.099937,0,0,44.044643,-34.933093,-32.464927)"
|
||||
x1="1.3990936"
|
||||
y1="1.4711363"
|
||||
x2="0.49966058"
|
||||
y2="0.56367606" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6294"
|
||||
id="linearGradient6300"
|
||||
x1="-0.028418806"
|
||||
y1="2.6532845"
|
||||
x2="98.225143"
|
||||
y2="2.727474"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1,0,0,-1,49.993892,5.306569)" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="940"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="7.8958335"
|
||||
inkscape:cx="23.891466"
|
||||
inkscape:cy="23.998173"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="35"
|
||||
inkscape:current-layer="svg1998"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<path
|
||||
id="path11907"
|
||||
d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612"
|
||||
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path11020"
|
||||
d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672"
|
||||
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
id="path2037"
|
||||
d="M 0.062500355,5.0439492 L 0.062500355,46.326915 L 44.31814,46.326915 L 44.31814,5.0439492 L 0.062500355,5.0439492"
|
||||
style="fill:#ff494a;fill-opacity:1;stroke:none;stroke-width:0.00100000000000000" />
|
||||
<path
|
||||
id="path2041"
|
||||
d="M 50.022311,0.14181376 44.395643,5.1887393 -0.02841881,5.1647285 5.6475802,0.11782966 50.022311,0.14181376"
|
||||
style="fill:url(#linearGradient6300);fill-opacity:1;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2045"
|
||||
d="M 44.228586,5.0887264 L 49.976169,0.12831483 L 49.976169,41.348635 L 44.228586,46.309047 L 44.228586,5.0887264"
|
||||
style="fill:#ff3221;fill-opacity:1;stroke:none;stroke-width:0.00100000000000000" />
|
||||
<path
|
||||
id="path2049"
|
||||
d="m 17.380994,23.789246 -11.7096633,0 0,-1.53703 -3.5916196,3.074057 3.5916196,3.423384 0,-1.513742 11.7096633,0 0,-3.446669"
|
||||
style="fill:#000000;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2051"
|
||||
d="M 19.767207,21.506989 L 11.329361,13.495809 L 12.534768,12.354681 L 7.7131417,12.354681 L 7.7131417,16.919191 L 8.893948,15.778064 L 17.380994,23.789246 L 19.767207,21.506989"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2053"
|
||||
d="M 23.383427,21.506989 L 23.383427,10.049138 L 24.982435,10.049138 L 21.784419,6.9983684 L 18.168199,10.049138 L 19.767207,10.049138 L 19.767207,21.506989 L 23.383427,21.506989"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2055"
|
||||
d="M 25.818839,23.789246 L 34.281285,15.778064 L 35.462092,16.919191 L 35.462092,12.354681 L 30.665065,12.354681 L 31.845872,13.495809 L 23.383427,21.506989 L 25.818839,23.789246"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2057"
|
||||
d="M 25.818839,27.235915 L 37.872905,27.235915 L 37.872905,28.749657 L 41.120121,25.326273 L 37.872905,22.252216 L 37.872905,23.789246 L 25.818839,23.789246 L 25.818839,27.235915"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2059"
|
||||
d="M 23.383427,29.51817 L 31.845872,37.529351 L 30.665065,38.693768 L 35.462092,38.321154 L 35.462092,34.129257 L 34.281285,35.270385 L 25.818839,27.235915 L 23.383427,29.51817"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2061"
|
||||
d="M 19.767207,29.51817 L 19.767207,40.999311 L 18.168199,40.999311 L 21.784419,44.026792 L 24.982435,40.999311 L 23.383427,40.999311 L 23.383427,29.51817 L 19.767207,29.51817"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2063"
|
||||
d="M 17.380994,27.235915 L 8.893948,35.270385 L 7.7131417,34.129257 L 7.7131417,38.693768 L 12.534768,38.693768 L 11.329361,37.529351 L 19.767207,29.51817 L 17.380994,27.235915"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2065"
|
||||
d="m 17.749996,24.185146 -11.6604631,0 0,-1.537028 -3.6162195,3.05077 3.6162195,3.44667 0,-1.51374 11.6604631,0 0,-3.446672"
|
||||
style="fill:#ffffff;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2067"
|
||||
d="M 20.185408,21.902892 L 11.722963,13.868422 L 12.95297,12.727294 L 8.1067438,12.727294 L 8.1067438,17.315093 L 9.2875501,16.150677 L 17.749996,24.185146 L 20.185408,21.902892"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2069"
|
||||
d="M 23.801628,21.902892 L 23.801628,10.421751 L 25.400638,10.421751 L 22.178019,7.3709816 L 18.561799,10.421751 L 20.185408,10.421751 L 20.185408,21.902892 L 23.801628,21.902892"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2071"
|
||||
d="M 26.237042,24.185146 L 34.674887,16.150677 L 35.880293,17.315093 L 35.880293,12.727294 L 31.034067,12.727294 L 32.239475,13.868422 L 23.801628,21.902892 L 26.237042,24.185146"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2073"
|
||||
d="M 26.237042,27.631818 L 38.266506,27.631818 L 38.266506,29.145558 L 41.513724,25.698888 L 38.266506,22.648118 L 38.266506,24.185146 L 26.237042,24.185146 L 26.237042,27.631818"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2075"
|
||||
d="M 23.801628,29.914073 L 32.239475,37.925254 L 31.034067,39.066381 L 35.880293,38.693768 L 35.880293,34.478581 L 34.674887,35.619709 L 26.237042,27.631818 L 23.801628,29.914073"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2077"
|
||||
d="M 20.185408,29.914073 L 20.185408,41.348635 L 18.561799,41.348635 L 22.178019,44.422693 L 25.400638,41.348635 L 23.801628,41.348635 L 23.801628,29.914073 L 20.185408,29.914073"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2079"
|
||||
d="M 17.749996,27.631818 L 9.2875501,35.619709 L 8.1067438,34.478581 L 8.1067438,39.066381 L 12.95297,39.066381 L 11.722963,37.925254 L 20.185408,29.914073 L 17.749996,27.631818"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path2081"
|
||||
d="m 34.118834,25.441927 -0.04606,-0.574105 -0.04606,-0.662429 -0.09212,-0.574105 -0.09212,-0.574104 -0.138179,-0.618267 -0.18424,-0.574109 -0.230299,-0.574105 -0.18424,-0.574105 -0.276361,-0.529944 -0.276359,-0.529943 -0.322423,-0.529943 -0.36848,-0.529943 -0.368485,-0.485782 -0.414542,-0.44162 -0.414543,-0.485783 -0.414539,-0.397453 -0.506663,-0.39746 -0.4606,-0.397458 -0.506663,-0.353293 -0.506662,-0.309135 -0.59878,-0.353296 -0.506662,-0.26497 -0.598782,-0.220812 -0.598782,-0.22081 -0.552719,-0.220806 -0.644843,-0.132495 -0.552718,-0.176642 -0.690907,-0.08833 -0.598782,-0.08834 -0.644838,-0.04416 -0.598782,0 0,0 -0.644841,0 -0.598782,0.04416 -0.644843,0.08834 -0.598782,0.08833 -0.644843,0.176642 -0.59878,0.132495 -0.598782,0.220806 -0.598781,0.22081 -0.55272,0.220812 -0.506663,0.26497 -0.598782,0.353296 -0.552718,0.309135 -0.460604,0.353293 -0.506658,0.397458 -0.460605,0.39746 -0.414539,0.397453 -0.4606,0.485783 -0.368481,0.44162 -0.368481,0.485782 -0.36848,0.529943 -0.322426,0.529943 -0.276357,0.529943 -0.276364,0.529944 -0.230298,0.574105 -0.2302998,0.574105 -0.138179,0.574109 -0.1381801,0.618267 -0.138179,0.574104 -0.092116,0.574105 0,0.662429 -0.046064,0.574105 0,0 0.046064,0.574105 0,0.61827 0.092116,0.618266 0.138179,0.618267 0.1381801,0.574105 0.138179,0.574105 0.2302998,0.574105 0.230298,0.574106 0.276364,0.529941 0.276357,0.529944 0.322426,0.529943 0.36848,0.529944 0.368481,0.485781 0.368481,0.441621 0.4606,0.44162 0.414539,0.44162 0.460605,0.397458 0.506658,0.397457 0.460604,0.353296 0.552718,0.309134 0.598782,0.309132 0.506663,0.309135 0.55272,0.26497 0.598781,0.220812 0.598782,0.132477 0.59878,0.176642 0.644843,0.176641 0.598782,0.04416 0.644843,0.132495 0.598782,0.04416 0.644841,0 0,0 0.598782,0 0.644838,-0.04416 0.598782,-0.132495 0.690907,-0.04416 0.552718,-0.176641 0.644843,-0.176642 0.552719,-0.132477 0.598782,-0.220812 0.598782,-0.26497 0.506662,-0.309135 0.59878,-0.309132 0.506662,-0.309134 0.506663,-0.353296 0.4606,-0.397457 0.506663,-0.397458 0.414539,-0.44162 0.414543,-0.44162 0.414542,-0.441621 0.368477,-0.485781 0.368481,-0.529944 0.322423,-0.529943 0.276359,-0.529944 0.276361,-0.529941 0.18424,-0.574106 0.230298,-0.574105 0.18424,-0.574105 0.13818,-0.574105 0.09212,-0.618267 0.09212,-0.618266 0.04606,-0.61827 0.04606,-0.574105"
|
||||
style="fill:#000000;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2083"
|
||||
d="m 35.032688,26.020463 -0.04599,-0.571057 -0.04599,-0.614983 -0.09196,-0.614983 -0.04599,-0.614989 -0.183929,-0.571054 -0.183929,-0.571058 -0.183928,-0.571056 -0.229912,-0.527129 -0.275896,-0.571056 -0.275892,-0.52713 -0.321879,-0.527128 -0.321878,-0.527129 -0.413843,-0.483203 -0.413839,-0.439274 -0.36786,-0.439275 -0.459824,-0.439271 -0.505807,-0.395349 -0.459823,-0.395347 -0.505807,-0.35142 -0.505809,-0.30749 -0.551772,-0.307493 -0.551792,-0.307491 -0.597771,-0.263565 -0.551788,-0.219637 -0.597772,-0.175704 -0.597771,-0.131772 -0.597776,-0.175704 -0.643751,-0.08787 -0.597773,-0.08786 -0.643755,-0.04393 -0.643756,0 0,0 -0.643753,0 -0.59777,0.04393 -0.597771,0.08786 -0.643755,0.08787 -0.597773,0.175704 -0.597773,0.131772 -0.643754,0.175704 -0.551788,0.219637 -0.551792,0.263565 -0.597771,0.307491 -0.505807,0.307493 -0.551789,0.30749 -0.505808,0.35142 -0.505807,0.395347 -0.459825,0.395349 -0.413838,0.439271 -0.45983,0.439275 -0.367856,0.439274 -0.367859,0.483203 -0.367859,0.527129 -0.321879,0.527128 -0.275892,0.52713 -0.275897,0.571056 -0.22991,0.527129 -0.183929,0.571056 -0.18393,0.571058 -0.137946,0.571054 -0.09197,0.614989 -0.09197,0.614983 -0.04598,0.614983 0,0.571057 0,0 0,0.614983 0.04598,0.614982 0.09197,0.52713 0.09197,0.614987 0.137946,0.614983 0.18393,0.571057 0.183929,0.571056 0.22991,0.571056 0.275897,0.527128 0.275892,0.52713 0.321879,0.527129 0.367859,0.483203 0.367859,0.527127 0.367856,0.439276 0.45983,0.439274 0.413838,0.439276 0.459825,0.395343 0.505807,0.351421 0.505808,0.395349 0.551789,0.307489 0.505807,0.307494 0.597771,0.307493 0.551792,0.219636 0.551788,0.219635 0.643754,0.219639 0.597773,0.175704 0.597773,0.131773 0.643755,0.08786 0.597771,0.08787 0.59777,0.04393 0.643753,0 0,0 0.643756,0 0.643755,-0.04393 0.597773,-0.08787 0.643751,-0.08786 0.597776,-0.131773 0.597771,-0.175704 0.597772,-0.219639 0.551788,-0.219635 0.597771,-0.219636 0.551792,-0.307493 0.551788,-0.307494 0.505809,-0.307489 0.505807,-0.395349 0.459823,-0.351421 0.505807,-0.395343 0.459824,-0.439276 0.36786,-0.439274 0.413839,-0.439276 0.413843,-0.527127 0.321878,-0.483203 0.321879,-0.527129 0.275892,-0.52713 0.275896,-0.527128 0.229912,-0.571056 0.183928,-0.571056 0.183929,-0.571057 0.183929,-0.614983 0.04599,-0.614987 0.09196,-0.52713 0.04599,-0.614982 0.04599,-0.614983"
|
||||
style="fill:#ffffff;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2085"
|
||||
d="m 34.677809,25.806162 -0.04611,-0.616625 0,-0.616628 -0.0922,-0.57258 -0.138299,-0.616626 -0.138299,-0.57258 -0.138299,-0.572579 -0.230499,-0.572581 -0.230504,-0.572578 -0.230498,-0.528537 -0.276597,-0.528537 -0.368799,-0.528536 -0.3688,-0.528535 -0.322694,-0.484491 -0.414898,-0.440449 -0.4149,-0.440446 -0.460999,-0.440448 -0.460999,-0.396402 -0.460999,-0.396399 -0.5071,-0.35236 -0.553201,-0.352357 -0.553197,-0.308311 -0.5071,-0.26427 -0.5993,-0.264265 -0.599298,-0.220225 -0.599299,-0.220222 -0.599299,-0.132126 -0.599299,-0.132143 -0.645402,-0.0881 -0.599297,-0.0881 -0.645398,-0.04406 -0.599297,0 0,0 -0.645401,0 -0.5993,0.04406 -0.6454,0.0881 -0.645401,0.0881 -0.599298,0.132143 -0.599299,0.132126 -0.5993,0.220222 -0.599298,0.220225 -0.553198,0.264265 -0.553203,0.26427 -0.553194,0.308311 -0.553199,0.352357 -0.461002,0.35236 -0.507096,0.396399 -0.461003,0.396402 -0.414898,0.440448 -0.460998,0.440446 -0.414901,0.440449 -0.322698,0.484491 -0.3688,0.528535 -0.368799,0.528536 -0.2305,0.528537 -0.276599,0.528537 -0.230502,0.572578 -0.230498,0.572581 -0.138299,0.572579 -0.138299,0.57258 -0.1382985,0.616626 -0.09221,0.57258 0,0.616628 -0.0461,0.616625 0,0 0.0461,0.572579 0,0.616625 0.09221,0.616624 0.1382985,0.57258 0.138299,0.616625 0.138299,0.572585 0.230498,0.57258 0.230502,0.528536 0.276599,0.57258 0.2305,0.528537 0.368799,0.528537 0.3688,0.484489 0.322698,0.484493 0.414901,0.440442 0.460998,0.484492 0.414898,0.396404 0.461003,0.440447 0.507096,0.352358 0.461002,0.396399 0.553199,0.308313 0.553194,0.308315 0.553203,0.30831 0.553198,0.220226 0.599298,0.220223 0.5993,0.220221 0.599299,0.132144 0.599298,0.132143 0.645401,0.132125 0.6454,0.0881 0.5993,0 0.645401,0.04406 0,0 0.599297,-0.04406 0.645398,0 0.599297,-0.0881 0.645402,-0.132125 0.599299,-0.132143 0.599299,-0.132144 0.599299,-0.220221 0.599298,-0.220223 0.5993,-0.220226 0.5071,-0.30831 0.553197,-0.308315 0.553201,-0.308313 0.5071,-0.396399 0.460999,-0.352358 0.460999,-0.440447 0.460999,-0.396404 0.4149,-0.484492 0.414898,-0.440442 0.322702,-0.484493 0.3688,-0.484489 0.3688,-0.528537 0.276596,-0.528537 0.230498,-0.57258 0.230504,-0.528536 0.230499,-0.57258 0.138299,-0.572585 0.138299,-0.616625 0.138299,-0.57258 0.0922,-0.616624 0,-0.616625 0.04611,-0.572579"
|
||||
style="fill:url(#linearGradient9177);fill-opacity:1;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<image
|
||||
y="18.196489"
|
||||
x="9.4765692"
|
||||
id="image4051"
|
||||
xlink:href="data:image/png;base64,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 TVD8UhG/VET6fkCKVyrGf8JS3zvTJgzxLine truncated
|
||||
height="14.351258"
|
||||
width="24.804121" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 782 B |
@@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.0"
|
||||
width="70.00013"
|
||||
height="44.285007"
|
||||
id="svg2"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="opensuse.svg">
|
||||
<metadata
|
||||
id="metadata29">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs27" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2495"
|
||||
inkscape:window-height="1056"
|
||||
id="namedview25"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:zoom="2.6257672"
|
||||
inkscape:cx="10.160224"
|
||||
inkscape:cy="17.860616"
|
||||
inkscape:window-x="1985"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
inkscape:label="Logo">
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#ffffff;stroke-opacity:1"
|
||||
id="rect4169"
|
||||
width="70.265175"
|
||||
height="44.939247"
|
||||
x="0.19042054"
|
||||
y="-0.27339759" />
|
||||
<path
|
||||
d="m 61.241669,11.174955 c -1.53878,-0.05651 -2.74666,-1.3536628 -2.69527,-2.8946458 0.0237,-0.746062 0.34262,-1.435659 0.88457,-1.944803 0.54415,-0.508997 1.25487,-0.773944 2.00093,-0.745877 1.54098,0.05393 2.7492,1.348923 2.69744,2.892257 -0.0233,0.743712 -0.33788,1.433269 -0.88203,1.9446168 -0.54669,0.506794 -1.25741,0.771779 -2.00568,0.748452 l 4e-5,0 z m 0.64765,-2.5312428 c 0.68485,0 1.24065,-0.370493 1.24065,-0.825521 0,-0.457417 -0.55583,-0.828099 -1.24065,-0.828099 -0.68519,0 -1.23883,0.370682 -1.23883,0.828099 0,0.455028 0.55364,0.825521 1.23883,0.825521"
|
||||
style="fill:#73ba25;fill-rule:nonzero"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 29.583689,27.224557 0.099,-0.0093 0.0161,-0.117267 c -0.0254,-0.09207 -0.0851,-0.174814 -0.17734,-1.31622 -0.0783,-1.010192 -0.23705,-3.780477 1.1573,-5.154248 0.54092,-0.536129 1.36682,-1.012503 2.01823,-1.166597 2.67143,-0.651227 6.13906,-0.200223 9.10042,3.223814 1.52805,1.769386 2.27816,2.577052 2.6532,2.938324 l 0.12872,0.119605 0.15658,0.112799 c 0.12192,0.06901 5.08971,2.356252 5.08971,2.356252 l 0.10119,-0.02536 0.003,-0.107964 c -0.0322,-0.03683 -3.14766,-4.061499 -2.59561,-7.377169 0.43723,-2.641561 2.54022,-2.404543 5.44654,-2.073291 0.9503,0.108148 2.03181,0.232405 3.15016,0.257775 3.12225,0.01843 6.48658,-0.554502 8.55987,-1.461199 1.34145,-0.586685 2.19737,-0.973367 2.73364,-1.461201 0.19304,-0.158743 0.29423,-0.420982 0.39791,-0.697174 l 0.0715,-0.186275 c 0.0873,-0.223286 0.21381,-0.701824 0.26924,-0.961904 0.0254,-0.114958 0.0368,-0.239359 -0.044,-0.301379 l -0.28747,0.0529 c -0.90882,0.545386 -3.18482,1.585453 -5.31533,1.6269 -2.63926,0.05506 -7.95921,-2.65551 -8.51375,-2.943157 l -0.0529,-0.06202 c -0.1337,-0.317667 -0.93207,-2.20681 -1.10011,-2.6047298 3.8291,2.5218068 7.00425,3.9163408 9.43651,4.1326328 2.70611,0.24152 4.81623,-1.235605 5.71824,-1.866296 0.17697,-0.119605 0.31067,-0.216291 0.36574,-0.236868 l 0.0575,-0.09438 c -0.14981,-0.9503 -1.56489,-5.5523538 -2.63244,-6.6569298 -0.29674,-0.303721 -0.53379,-0.598143 -1.0125,-0.878983 -3.86805,-2.254915 -13.05144,-3.61726601 -13.48154,-3.67928501 l -0.0737,0.02072 -0.0275,0.06436 c 0,0 -0.0347,1.90524801 -0.0393,2.11707701 -0.93888,-0.31302 -7.75649,-2.51518001 -14.14906,-2.73828401 -5.41861,-0.19096 -12.82114,-0.448735 -23.28162,5.98029301 l -0.30837,0.193229 C 8.301909,9.3132972 4.905588,13.096264 3.129245,17.495785 2.572399,18.878675 1.822322,22.001299 2.5631,24.939623 c 0.322136,1.286385 0.918119,2.574894 1.723624,3.730064 1.815516,2.609233 4.864295,4.342157 8.147825,4.634235 4.63423,0.414027 8.14566,-1.668197 9.39503,-5.566303 0.85822,-2.689846 0,-6.636023 -3.29048,-8.649421 -2.67609,-1.640665 -5.55701,-1.265625 -7.22524,-0.16339 -1.44959,0.961757 -2.27099,2.452795 -2.25492,4.093494 0.0322,2.906146 2.53807,4.452427 4.33751,4.454768 0.52448,0 1.04915,-0.08973 1.64282,-0.282961 0.20953,-0.06454 0.40957,-0.142636 0.62817,-0.278498 l 0.0669,-0.0436 0.0436,-0.02536 -0.0161,0.007 c 0.41187,-0.27619 0.66034,-0.731663 0.66034,-1.219534 0,-0.133517 -0.0207,-0.269233 -0.0575,-0.405058 -0.21165,-0.734002 -0.93888,-1.180362 -1.6936,-1.042375 l -0.10119,0.02071 -0.13803,0.04595 -0.20022,0.06685 c -0.41417,0.103501 -0.72719,0.110495 -0.79155,0.112617 -0.21165,-0.01378 -1.24956,-0.324258 -1.24956,-1.461018 l 0,-0.01375 c 0.003,-0.416521 0.17035,-0.708781 0.26242,-0.867525 0.3198,-0.50625 1.20343,-1.003203 2.39756,-0.897398 1.56488,0.133371 2.69233,0.936537 3.4401,2.450637 0.69502,1.408114 0.51325,3.138548 -0.46711,4.408641 -0.97336,1.258854 -2.70592,1.792635 -5.01162,1.541632 -2.32407,-0.255286 -4.28903,-1.592231 -5.38895,-3.674634 -1.076867,-2.034155 -1.136762,-4.447961 -0.154099,-6.302429 2.353949,-4.441006 6.797079,-4.39506 9.233979,-3.973892 3.60797,0.623516 6.88234,3.511241 8.3389,7.351799 0.2324,0.612089 0.35197,1.097582 0.45547,1.539326 l 0.15658,0.664993 4.0749,1.99033 0.0554,0.03914 1.1e-4,-3.7e-5 z M 58.548909,5.5489272 c -0.76831,0.713245 -1.20807,1.686612 -1.24491,2.735942 -0.0711,2.1628418 1.62709,3.9853128 3.78978,4.0659648 1.05399,0.03449 2.05253,-0.336085 2.81872,-1.05398 0.76619,-0.715592 1.20592,-1.6866118 1.2449,-2.7336368 0.0737,-2.165181 -1.62459,-3.989959 -3.79189,-4.06809 -1.04933,-0.03448 -2.05041,0.335905 -2.8166,1.0538"
|
||||
style="fill:#73ba25;fill-rule:evenodd"
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 69.880729,32.589151 -0.0455,0 c -0.0526,0 -0.0982,-0.04561 -0.0982,-0.09822 l 0,-0.704859 -0.15433,0.234949 c -0.0175,0.02452 -0.0491,0.03502 -0.0771,0.03502 l -0.0176,0 c -0.028,0 -0.0596,-0.01051 -0.0771,-0.03502 l -0.15784,-0.234949 0,0.704859 c 0,0.05261 -0.0456,0.09822 -0.10172,0.09822 l -0.0455,0 c -0.0526,0 -0.0982,-0.04561 -0.0982,-0.09822 l 0,-0.841684 -0.4735,0 0,0.841684 c 0,0.05261 -0.0491,0.09822 -0.10513,0.09822 l -0.0421,0 c -0.0526,0 -0.0982,-0.04561 -0.0982,-0.09822 l 0,-0.841684 -0.35418,0 c -0.0526,0 -0.0947,-0.03511 -0.0947,-0.09113 l 0,-0.0491 c 0,-0.05611 0.0421,-0.09122 0.0947,-0.09122 l 1.24147,0 c 0.0491,0 0.0806,0.0175 0.0982,0.04561 l 0.23494,0.35418 0.23496,-0.35418 c 0.0175,-0.0246 0.0456,-0.04561 0.0982,-0.04561 l 0.15783,0 0,1.080139 c 0,0.05261 -0.0491,0.09822 -0.10522,0.09822"
|
||||
style="fill:#73ba25"
|
||||
id="path8"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 29.287079,31.112727 c -1.69737,0 -2.63727,1.437818 -2.63727,2.433833 l 0,1.276578 c 0,1.462418 1.19586,2.370719 2.3076,2.370719 l 3.89275,0 c 0.48751,0 0.58922,0.319076 0.58922,0.589128 l 0,0.824177 c 0,0.08763 -0.014,0.880293 -0.58922,0.880293 l -5.31306,0 c -0.52611,0 -0.9083,0.364684 -0.9083,0.866189 l 0,0.227955 c 0,0.498004 0.37869,0.866282 0.9083,0.866282 l 5.60422,0 c 1.46242,0 2.40932,-1.017113 2.40932,-2.595259 l 0,-1.378208 c 0,-1.480014 -1.06613,-2.142767 -2.12176,-2.142767 l -3.82964,0 c -0.57871,0 -0.83818,-0.427891 -0.83818,-0.736464 l 0,-0.757558 c 0,-0.480409 0.31908,-0.753967 0.8802,-0.753967 l 4.24352,0 c 0.51902,0 0.9083,-0.371774 0.9083,-0.866282 l 0,-0.227952 c 0,-0.491002 -0.39629,-0.866195 -0.9258,-0.866195 l -4.5732,0"
|
||||
id="S"
|
||||
style="fill:#73ba25"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 45.219449,31.112727 c -0.50151,0 -0.9083,0.40679 -0.9083,0.908297 l 0,6.523027 c 0,0.519012 -0.42438,0.939901 -0.9399,0.939901 l -2.95994,0 c -0.51902,0 -0.93991,-0.420889 -0.93991,-0.939901 l 0,-6.523027 c 0,-0.501507 -0.40328,-0.908297 -0.9083,-0.908297 l -0.28756,0 c -0.50501,0 -0.9083,0.399788 -0.9083,0.908297 l 0,6.771984 c 0,1.574646 1.23797,2.717986 2.94585,2.717986 l 3.16338,0 c 1.70788,0 2.94585,-1.14334 2.94585,-2.717986 l 0,-6.771984 c 0,-0.508509 -0.39979,-0.908297 -0.9083,-0.908297 l -0.28757,0"
|
||||
style="fill:#73ba25"
|
||||
id="path11"
|
||||
inkscape:connector-curvature="0" />
|
||||
<use
|
||||
style=""
|
||||
transform="translate(21.601409,1.9460253e-7)"
|
||||
xlink:href="#S"
|
||||
id="use13"
|
||||
x="0"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
<path
|
||||
d="m 59.843639,31.112727 c -0.50142,0 -0.8872,0.371687 -0.8872,0.866189 l 0,8.602683 c 0,0.491002 0.37169,0.866282 0.86969,0.866282 l 6.8562,0 c 0.52611,0 0.90839,-0.364775 0.90839,-0.866282 l 0,-0.227955 c 0,-0.498005 -0.37878,-0.866189 -0.90839,-0.866189 0,0 -5.36217,0 -5.61472,0 0,-0.22445 0,-1.967432 0,-2.191882 0.25255,0 4.11379,0 4.11379,0 0.52602,0 0.9083,-0.364772 0.9083,-0.869784 l 0,-0.224447 c 0,-0.50151 -0.38228,-0.869695 -0.9083,-0.869695 0,0 -3.86124,0 -4.11379,0 0,-0.224446 0,-2.027045 0,-2.251491 0.25255,0 5.33066,0 5.33066,0 0.52611,0 0.90839,-0.364772 0.90839,-0.866283 l 0,-0.227949 c 0,-0.50151 -0.38228,-0.866192 -0.90839,-0.866192 l -6.55103,0"
|
||||
style="fill:#73ba25"
|
||||
id="path15"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 1.553608,35.20533 C 0.697896,35.20533 0,35.87167 0,36.695847 l 0,3.244006 c 0,0.834679 0.673347,1.51503 1.501007,1.51503 l 2.097187,0 c 0.82766,0 1.504508,-0.680351 1.504508,-1.51503 l 0,-3.244006 c 0,-0.820674 -0.697893,-1.490517 -1.553608,-1.490517 l -1.995486,0 z m -0.452408,4.608203 0,-2.959853 c 0,-0.347267 0.284072,-0.63133 0.631267,-0.63133 l 1.634267,0 c 0.340183,0 0.631258,0.287653 0.631258,0.63133 l 0,2.959853 c 0,0.34727 -0.284063,0.631328 -0.631258,0.631328 l -1.6483,0 c -0.347195,0 -0.617234,-0.277055 -0.617234,-0.631328"
|
||||
style="fill:#73ba25"
|
||||
id="path17"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 9.858239,35.166812 c -0.60673,0 -1.05914,0.217447 -1.42738,0.392785 -0.22094,0.105135 -0.41382,0.196349 -0.56463,0.196349 -0.0631,0 -0.12274,-0.02801 -0.15431,-0.07712 l -0.13677,-0.266555 c -0.0316,-0.07012 -0.17185,-0.206939 -0.347194,-0.206939 l -0.203405,0 c -0.196393,0 -0.357718,0.175426 -0.357718,0.396282 l 0,8.223993 c 0,0.25596 0.199904,0.4594 0.45942,0.4594 l 0.178859,0 c 0.252508,0 0.459418,-0.20694 0.459418,-0.4594 l 0,-2.728494 c 0,-0.08062 0.0526,-0.164836 0.1017,-0.164836 0.15081,0 0.34369,0.08422 0.56814,0.189437 0.36473,0.164833 0.82065,0.375187 1.42738,0.375187 l 0.18934,0 c 1.06963,0 1.73598,-0.610142 1.73598,-1.592149 l 0,-3.138784 c 0,-0.967914 -0.68035,-1.595655 -1.73598,-1.595655 l -0.19285,0 0,0 0,-0.0035 z m -2.09722,4.583605 0,-2.830121 c 0,-0.389282 0.30512,-0.694443 0.69439,-0.694443 l 1.52906,0 c 0.38929,0 0.69436,0.305161 0.69436,0.694443 l 0,2.830121 c 0,0.38228 -0.30857,0.694444 -0.69436,0.694444 l -1.52906,0 c -0.38226,0 -0.69439,-0.312164 -0.69439,-0.694444"
|
||||
style="fill:#73ba25"
|
||||
id="path19"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 14.894249,35.20533 c -0.85569,0 -1.55354,0.66634 -1.55354,1.490517 l 0,3.219406 c 0,0.834678 0.67684,1.54313 1.47642,1.54313 l 2.16386,0 c 0.26647,0 0.45941,-0.182431 0.45941,-0.434891 l 0,-0.140328 c 0,-0.25246 -0.19294,-0.434798 -0.45941,-0.434798 l -1.77458,0 c -0.49801,0 -0.76106,-0.242048 -0.76106,-0.708452 0,0 0,-0.810083 0,-0.939903 0.14383,0 3.20549,0 3.20549,0 0.51201,0 0.82059,-0.315574 0.82059,-0.848684 l 0,-1.248475 c 0,-0.820676 -0.69786,-1.490432 -1.55355,-1.490432 l -2.02004,0 -0.004,-0.0071 z m -0.4524,1.634257 c 0,-0.343679 0.27006,-0.617237 0.61723,-0.617237 l 1.68687,0 c 0.34727,0 0.61724,0.270055 0.61724,0.617237 0,0 0,0.873282 0,1.003018 -0.13674,0 -2.78452,0 -2.92134,0 0,-0.129736 0,-1.003018 0,-1.003018"
|
||||
style="fill:#73ba25"
|
||||
id="path21"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 22.932389,35.166812 c -0.60322,0 -1.05913,0.213944 -1.4239,0.389285 -0.22795,0.105135 -0.4243,0.199849 -0.58213,0.199849 -0.0701,0 -0.0982,-0.007 -0.15083,-0.101723 l -0.12623,-0.231452 c -0.0701,-0.143735 -0.19285,-0.217441 -0.36118,-0.217441 l -0.17894,0 c -0.21385,0 -0.36818,0.16483 -0.36818,0.396282 l 0,5.393777 c 0,0.256053 0.20335,0.462994 0.4594,0.462994 l 0.17884,0 c 0.25255,0 0.4594,-0.206941 0.4594,-0.462994 l 0,-4.082095 c 0,-0.38228 0.31217,-0.694444 0.69445,-0.694444 l 1.52904,0 c 0.38228,0 0.69435,0.312164 0.69435,0.694444 l 0,4.082095 c 0,0.256053 0.20344,0.462994 0.45949,0.462994 l 0.17884,0 c 0.25246,0 0.45941,-0.206941 0.45941,-0.462994 l 0,-4.232926 c 0,-0.967911 -0.68035,-1.595651 -1.73598,-1.595651 l -0.19285,0"
|
||||
style="fill:#73ba25"
|
||||
id="path23"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 13 KiB |
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg id="svg1998" width="51.358818" height="47.630692" version="1.0" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs id="defs2001">
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow2Lstart" style="overflow:visible">
|
||||
<path id="path11918" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " transform="matrix(1.1,0,0,1.1,1.1,0)"/>
|
||||
</marker>
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow1Send" style="overflow:visible">
|
||||
<path id="path11921" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none" transform="matrix(-0.2,0,0,-0.2,-1.2,0)"/>
|
||||
</marker>
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow1Lstart" style="overflow:visible">
|
||||
<path id="path11936" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none" transform="matrix(0.8,0,0,0.8,10,0)"/>
|
||||
</marker>
|
||||
<linearGradient id="linearGradient9199" gradientUnits="userSpaceOnUse" gradientTransform="matrix(24.666332,1.3331909e-2,-1.2883406e-2,23.708747,-8.6563136,-4.6316275)" x1="2.1178279" y1="0.30649999" x2="-0.4954865" y2="0.30649999">
|
||||
<stop style="stop-opacity: 1; stop-color: rgb(239, 239, 239);" offset="0" id="stop8333"/>
|
||||
<stop style="stop-opacity: 1; stop-color: rgb(255, 255, 255);" offset="1" id="stop8335"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path id="path11907" d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"/>
|
||||
<path id="path11020" d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"/>
|
||||
<path id="path2037" d="M 0.062500355,5.0439492 L 0.062500355,46.326915 L 44.31814,46.326915 L 44.31814,5.0439492 L 0.062500355,5.0439492" style="fill-opacity: 1; stroke: none; stroke-width: 0.001; fill: rgb(239, 239, 239);"/>
|
||||
<path id="path2041" d="M -0.028418806,5.1647552 L 5.5982489,0.11782966 L 50.022311,0.14184042 L 44.346312,5.1887393 L -0.028418806,5.1647552" style="fill:url(#linearGradient9199);fill-opacity:1;stroke:none;stroke-width:0.001"/>
|
||||
<path id="path2045" d="M 44.228586,5.0887264 L 49.976169,0.12831483 L 49.976169,41.348635 L 44.228586,46.309047 L 44.228586,5.0887264" style="fill-opacity: 1; stroke: none; stroke-width: 0.001; fill: rgb(223, 223, 223);"/>
|
||||
<path id="path-1" style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 22.02 13.392 C 18.596 13.392 15.66 14.606 13.304 16.992 C 10.94 19.354 9.744 22.31 9.744 25.78 C 9.744 29.424 10.984 32.462 13.428 34.804 C 15.862 37.152 18.706 38.342 21.89 38.342 C 25.346 38.342 28.302 37.132 30.678 34.744 C 33.052 32.326 34.256 29.34 34.256 25.87 C 34.256 22.352 33.068 19.364 30.72 16.992 C 28.39 14.606 25.464 13.392 22.02 13.392 Z M 21.824 43.716 C 17.4 43.716 13.37 42.162 9.85 39.1 C 5.966 35.706 4 31.202 4 25.714 C 4 20.886 5.794 16.684 9.332 13.218 C 12.852 9.756 17.146 8 22.09 8 C 26.972 8 31.22 9.772 34.714 13.266 C 38.22 16.758 40 21.014 40 25.91 C 40 30.842 38.214 35.086 34.69 38.518 C 31.154 41.966 26.824 43.716 21.824 43.716"/>
|
||||
<path id="path-2" style="fill:#458d3e;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 32.134 22.922 L 27.044 18.878 L 27.044 21.402 L 18.01 21.402 L 18.01 24.442 L 27.044 24.442 L 27.044 26.968 L 32.134 22.922"/>
|
||||
<path id="path-3" style="fill:#458d3e;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 11.436 28.122 L 16.532 32.168 L 16.532 29.644 L 25.564 29.644 L 25.564 26.6 L 16.532 26.6 L 16.532 24.074 L 11.436 28.122"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.8 KiB |
@@ -0,0 +1,95 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="105"
|
||||
height="70"
|
||||
viewBox="0 0 105 70"
|
||||
enable-background="new 0 0 400 300"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
inkscape:version="0.47 r22583"
|
||||
sodipodi:docname="ostinato-3d-icon.svg"><title
|
||||
id="title2858">Ostinato</title><metadata
|
||||
id="metadata27"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title>Ostinato</dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs25"><inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 150 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="400 : 150 : 1"
|
||||
inkscape:persp3d-origin="200 : 100 : 1"
|
||||
id="perspective29" /></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1024"
|
||||
id="namedview23"
|
||||
showgrid="false"
|
||||
inkscape:zoom="11.442857"
|
||||
inkscape:cx="64.556804"
|
||||
inkscape:cy="35"
|
||||
inkscape:window-x="-4"
|
||||
inkscape:window-y="-4"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
|
||||
|
||||
<g
|
||||
id="g2835"
|
||||
transform="matrix(0.29470367,0,0,0.29470367,-7.2010588,-8.8501045)"><g
|
||||
id="_x33_D_Base">
|
||||
<path
|
||||
id="path5"
|
||||
d="m 371.564,143.856 c -0.19,0.357 -0.396,0.709 -0.613,1.057 -0.037,0.06 -0.076,0.12 -0.113,0.18 -0.21,0.329 -0.429,0.654 -0.662,0.975 -0.017,0.023 -0.034,0.046 -0.052,0.069 -0.243,0.332 -0.5,0.66 -0.769,0.982 -0.021,0.024 -0.04,0.048 -0.061,0.072 -0.278,0.331 -0.57,0.657 -0.875,0.979 -0.014,0.015 -0.028,0.03 -0.043,0.045 -0.312,0.328 -0.639,0.651 -0.979,0.968 -0.011,0.009 -0.021,0.018 -0.03,0.027 -0.346,0.321 -0.705,0.637 -1.079,0.947 -0.003,0.003 -0.007,0.005 -0.01,0.008 -0.373,0.31 -0.762,0.613 -1.163,0.912 -0.014,0.01 -0.027,0.021 -0.041,0.03 -0.397,0.295 -0.809,0.584 -1.233,0.867 -0.016,0.011 -0.032,0.021 -0.048,0.032 -0.426,0.283 -0.863,0.561 -1.316,0.833 -0.014,0.009 -0.029,0.018 -0.044,0.026 -0.453,0.271 -0.921,0.538 -1.401,0.8 -0.018,0.01 -0.036,0.02 -0.055,0.029 -0.48,0.261 -0.975,0.516 -1.482,0.765 -0.018,0.009 -0.035,0.018 -0.053,0.025 -0.51,0.25 -1.033,0.495 -1.57,0.733 -0.015,0.007 -0.028,0.013 -0.043,0.02 -0.543,0.241 -1.101,0.477 -1.671,0.706 -0.013,0.005 -0.024,0.01 -0.037,0.015 -0.565,0.228 -1.145,0.448 -1.737,0.665 -0.025,0.009 -0.052,0.019 -0.078,0.028 -1.214,0.441 -2.482,0.859 -3.808,1.253 l -0.115,40.758 c 0.017,-0.005 0.034,-0.01 0.052,-0.015 0.146,-0.044 0.293,-0.089 0.439,-0.133 0.146,-0.045 0.29,-0.09 0.435,-0.135 0.145,-0.045 0.288,-0.09 0.431,-0.136 0.141,-0.045 0.28,-0.09 0.419,-0.135 0.06,-0.02 0.119,-0.039 0.179,-0.059 0.008,-0.003 0.016,-0.005 0.023,-0.008 0.067,-0.022 0.137,-0.045 0.204,-0.067 0.135,-0.045 0.269,-0.09 0.402,-0.136 0.134,-0.045 0.267,-0.091 0.398,-0.137 0.13,-0.045 0.258,-0.09 0.386,-0.136 0.127,-0.045 0.253,-0.09 0.378,-0.135 0.126,-0.046 0.25,-0.092 0.374,-0.137 0.125,-0.047 0.248,-0.093 0.371,-0.139 0.12,-0.046 0.24,-0.091 0.359,-0.137 0.119,-0.046 0.236,-0.092 0.354,-0.138 0.118,-0.046 0.234,-0.093 0.351,-0.139 0.116,-0.047 0.232,-0.094 0.348,-0.141 0.113,-0.046 0.226,-0.093 0.339,-0.14 0.111,-0.047 0.223,-0.094 0.333,-0.141 0.111,-0.047 0.222,-0.094 0.331,-0.141 0.109,-0.048 0.219,-0.096 0.327,-0.144 0.036,-0.017 0.072,-0.032 0.108,-0.049 0.007,-0.003 0.014,-0.006 0.02,-0.009 0.064,-0.028 0.129,-0.057 0.193,-0.086 0.106,-0.047 0.212,-0.095 0.316,-0.144 0.105,-0.048 0.21,-0.097 0.314,-0.145 0.104,-0.049 0.207,-0.098 0.311,-0.146 0.103,-0.05 0.205,-0.099 0.307,-0.148 0.053,-0.025 0.104,-0.051 0.156,-0.076 0.009,-0.005 0.018,-0.009 0.027,-0.014 0.04,-0.02 0.08,-0.039 0.12,-0.059 0.101,-0.05 0.2,-0.1 0.3,-0.149 0.1,-0.051 0.198,-0.101 0.297,-0.151 0.099,-0.05 0.197,-0.102 0.295,-0.153 0.098,-0.051 0.195,-0.103 0.292,-0.154 0.098,-0.052 0.193,-0.104 0.29,-0.156 0.096,-0.053 0.191,-0.105 0.286,-0.158 0.095,-0.053 0.189,-0.105 0.283,-0.159 0.096,-0.054 0.19,-0.108 0.284,-0.163 0.095,-0.054 0.188,-0.109 0.281,-0.164 0.094,-0.055 0.187,-0.11 0.278,-0.165 0.092,-0.056 0.184,-0.112 0.275,-0.168 0.093,-0.058 0.187,-0.115 0.278,-0.173 0.093,-0.059 0.185,-0.116 0.275,-0.175 0.092,-0.059 0.182,-0.117 0.272,-0.177 0.091,-0.059 0.181,-0.118 0.27,-0.178 0.093,-0.062 0.185,-0.125 0.276,-0.188 0.091,-0.062 0.182,-0.125 0.271,-0.188 0.09,-0.063 0.18,-0.126 0.268,-0.189 0.091,-0.065 0.181,-0.13 0.27,-0.195 0.093,-0.067 0.184,-0.136 0.275,-0.203 0.09,-0.068 0.181,-0.137 0.27,-0.206 0.09,-0.068 0.179,-0.138 0.267,-0.207 0.093,-0.073 0.185,-0.146 0.276,-0.221 0.091,-0.075 0.184,-0.149 0.275,-0.226 0.091,-0.075 0.181,-0.151 0.271,-0.228 0.093,-0.079 0.185,-0.159 0.275,-0.239 0.096,-0.084 0.19,-0.168 0.284,-0.253 0.082,-0.074 0.163,-0.149 0.244,-0.224 10e-4,-0.001 0.002,-0.003 0.003,-0.004 0.011,-0.009 0.021,-0.019 0.03,-0.027 0.096,-0.089 0.189,-0.179 0.282,-0.268 0.1,-0.097 0.198,-0.192 0.295,-0.29 0.098,-0.097 0.193,-0.194 0.288,-0.292 0.033,-0.034 0.065,-0.069 0.098,-0.104 0.013,-0.013 0.025,-0.026 0.038,-0.04 0.056,-0.059 0.112,-0.116 0.167,-0.176 0.104,-0.112 0.207,-0.226 0.309,-0.339 0.104,-0.117 0.207,-0.234 0.308,-0.353 0.032,-0.038 0.063,-0.077 0.097,-0.116 0.019,-0.021 0.036,-0.044 0.055,-0.065 0.062,-0.075 0.125,-0.148 0.186,-0.224 0.112,-0.139 0.223,-0.278 0.33,-0.418 0.084,-0.109 0.164,-0.22 0.244,-0.329 0.024,-0.033 0.049,-0.065 0.073,-0.099 0.019,-0.025 0.038,-0.051 0.057,-0.076 0.134,-0.186 0.263,-0.372 0.389,-0.561 0.069,-0.104 0.134,-0.21 0.201,-0.315 0.04,-0.063 0.081,-0.126 0.121,-0.19 0.032,-0.052 0.067,-0.103 0.099,-0.154 0.168,-0.276 0.328,-0.556 0.479,-0.837 0.012,-0.021 0.022,-0.043 0.034,-0.063 1.178,-2.244 1.77,-4.482 1.776,-6.706 l 0.115,-40.758 c -0.006,2.232 -0.598,4.47 -1.776,6.713 z"
|
||||
style="fill:#58595b" />
|
||||
<path
|
||||
id="path7"
|
||||
d="m 165.558,215.588 c -0.519,-0.081 -1.038,-0.165 -1.554,-0.25 -0.822,-0.137 -1.641,-0.278 -2.458,-0.424 -0.492,-0.088 -0.985,-0.174 -1.476,-0.265 -0.614,-0.114 -1.228,-0.237 -1.841,-0.356 -0.888,-0.174 -1.776,-0.349 -2.665,-0.534 -1.112,-0.232 -2.224,-0.467 -3.341,-0.719 -1.71,-0.4 -3.419,-0.829 -5.125,-1.282 -0.095,-0.025 -0.19,-0.052 -0.285,-0.077 -1.609,-0.43 -3.216,-0.883 -4.822,-1.359 -0.139,-0.041 -0.278,-0.083 -0.417,-0.124 -1.663,-0.497 -3.323,-1.016 -4.98,-1.562 -0.008,-0.002 -0.016,-0.005 -0.023,-0.008 -1.682,-0.555 -3.361,-1.136 -5.038,-1.741 -0.069,-0.024 -0.139,-0.05 -0.208,-0.074 -1.642,-0.595 -3.281,-1.215 -4.917,-1.857 -0.097,-0.038 -0.194,-0.076 -0.292,-0.114 -1.625,-0.643 -3.248,-1.308 -4.867,-1.997 -0.084,-0.036 -0.169,-0.071 -0.254,-0.107 -1.631,-0.697 -3.259,-1.418 -4.882,-2.163 -0.069,-0.031 -0.138,-0.062 -0.208,-0.094 -1.672,-0.77 -3.34,-1.562 -5.003,-2.382 -1.423,-0.696 -2.82,-1.41 -4.196,-2.141 -0.061,-0.032 -0.122,-0.064 -0.182,-0.097 -1.372,-0.731 -2.721,-1.478 -4.043,-2.241 -0.958,-0.553 -1.902,-1.116 -2.835,-1.687 -0.06,-0.036 -0.119,-0.072 -0.179,-0.109 -0.901,-0.553 -1.791,-1.114 -2.668,-1.684 -0.058,-0.038 -0.116,-0.076 -0.174,-0.113 -0.876,-0.571 -1.74,-1.149 -2.593,-1.736 -0.049,-0.034 -0.099,-0.067 -0.148,-0.102 -0.862,-0.596 -1.712,-1.2 -2.55,-1.812 -0.039,-0.028 -0.078,-0.057 -0.116,-0.085 -0.837,-0.613 -1.662,-1.235 -2.474,-1.865 -0.043,-0.033 -0.086,-0.066 -0.129,-0.1 -0.819,-0.637 -1.625,-1.281 -2.418,-1.935 -0.022,-0.019 -0.044,-0.036 -0.066,-0.055 -0.002,-10e-4 -0.003,-0.003 -0.005,-0.004 -0.809,-0.667 -1.604,-1.343 -2.386,-2.027 -0.021,-0.018 -0.041,-0.035 -0.061,-0.053 -0.772,-0.677 -1.532,-1.362 -2.278,-2.056 -0.029,-0.027 -0.058,-0.055 -0.086,-0.081 -0.749,-0.698 -1.485,-1.403 -2.208,-2.118 -0.003,-0.003 -0.006,-0.006 -0.009,-0.009 -0.724,-0.716 -1.434,-1.441 -2.131,-2.175 -0.022,-0.022 -0.044,-0.046 -0.066,-0.068 -0.678,-0.715 -1.342,-1.438 -1.995,-2.167 -0.043,-0.049 -0.087,-0.098 -0.131,-0.146 -0.641,-0.721 -1.27,-1.448 -1.885,-2.185 -0.047,-0.057 -0.095,-0.112 -0.142,-0.169 -0.618,-0.741 -1.223,-1.489 -1.815,-2.245 -0.035,-0.044 -0.069,-0.089 -0.104,-0.134 -0.577,-0.74 -1.143,-1.487 -1.695,-2.242 -0.043,-0.059 -0.086,-0.117 -0.129,-0.176 -0.563,-0.772 -1.114,-1.552 -1.652,-2.339 -0.042,-0.062 -0.084,-0.125 -0.126,-0.188 -0.543,-0.799 -1.075,-1.605 -1.592,-2.42 -0.004,-0.007 -0.008,-0.014 -0.012,-0.021 -0.003,-0.005 -0.006,-0.01 -0.009,-0.015 -0.275,-0.453 -0.552,-0.905 -0.815,-1.357 L 64.684,198.7 c 0.025,0.044 0.052,0.089 0.078,0.133 0.161,0.274 0.326,0.548 0.492,0.822 0.084,0.139 0.169,0.278 0.254,0.418 0.004,0.007 0.009,0.014 0.013,0.021 0.144,0.226 0.288,0.451 0.434,0.677 0.231,0.358 0.466,0.715 0.703,1.07 0.152,0.229 0.306,0.454 0.46,0.681 0.038,0.056 0.075,0.112 0.113,0.167 0.043,0.063 0.085,0.127 0.128,0.189 0.234,0.341 0.471,0.68 0.709,1.019 0.233,0.329 0.468,0.658 0.706,0.985 0.04,0.055 0.081,0.109 0.121,0.164 0.038,0.053 0.077,0.104 0.115,0.156 0.159,0.217 0.317,0.435 0.479,0.65 0.235,0.314 0.472,0.628 0.711,0.94 0.169,0.221 0.34,0.439 0.511,0.658 0.038,0.048 0.074,0.097 0.112,0.145 0.033,0.041 0.064,0.083 0.097,0.124 0.238,0.303 0.477,0.604 0.718,0.902 0.239,0.297 0.48,0.593 0.724,0.887 0.09,0.109 0.183,0.218 0.273,0.327 0.047,0.057 0.095,0.113 0.142,0.17 0.104,0.123 0.206,0.248 0.311,0.371 0.241,0.284 0.484,0.568 0.729,0.851 0.243,0.28 0.487,0.559 0.733,0.837 0.044,0.05 0.09,0.1 0.134,0.149 0.027,0.03 0.054,0.06 0.08,0.09 0.172,0.193 0.345,0.386 0.519,0.578 0.246,0.271 0.493,0.54 0.742,0.809 0.245,0.264 0.491,0.526 0.739,0.787 0.008,0.009 0.016,0.017 0.024,0.025 0.021,0.023 0.044,0.046 0.065,0.068 0.219,0.23 0.438,0.46 0.659,0.688 0.248,0.256 0.497,0.51 0.748,0.764 0.25,0.252 0.501,0.504 0.754,0.754 0.251,0.248 0.504,0.496 0.759,0.742 0.252,0.244 0.506,0.487 0.761,0.729 0.238,0.226 0.477,0.45 0.717,0.673 0.002,0.002 0.004,0.004 0.006,0.006 0.016,0.015 0.032,0.03 0.048,0.045 0.255,0.236 0.512,0.473 0.77,0.707 0.258,0.235 0.518,0.469 0.779,0.702 0.24,0.214 0.481,0.427 0.723,0.639 0.015,0.013 0.029,0.025 0.043,0.038 0.005,0.005 0.01,0.009 0.015,0.014 0.261,0.229 0.524,0.456 0.788,0.683 0.264,0.227 0.528,0.451 0.795,0.676 0.265,0.223 0.531,0.444 0.799,0.665 0.268,0.221 0.537,0.44 0.807,0.659 0.269,0.218 0.54,0.435 0.812,0.65 0.272,0.215 0.545,0.431 0.82,0.645 0.028,0.022 0.057,0.044 0.085,0.066 0.011,0.008 0.021,0.016 0.031,0.023 0.236,0.183 0.473,0.366 0.711,0.548 0.276,0.211 0.554,0.422 0.834,0.631 0.279,0.209 0.56,0.418 0.842,0.625 0.051,0.038 0.104,0.075 0.155,0.112 0.031,0.023 0.063,0.046 0.095,0.069 0.2,0.146 0.4,0.293 0.602,0.438 0.285,0.206 0.571,0.41 0.859,0.614 0.288,0.204 0.578,0.406 0.869,0.608 0.083,0.058 0.166,0.114 0.249,0.171 0.034,0.023 0.068,0.047 0.102,0.07 0.176,0.121 0.351,0.243 0.528,0.363 0.294,0.2 0.59,0.399 0.887,0.599 0.299,0.199 0.599,0.397 0.9,0.596 0.115,0.075 0.231,0.149 0.347,0.225 0.034,0.022 0.068,0.045 0.103,0.066 0.153,0.1 0.306,0.2 0.46,0.299 0.305,0.196 0.612,0.393 0.921,0.587 0.31,0.195 0.622,0.391 0.935,0.Line truncated
|
||||
style="fill:#6d6e71" />
|
||||
<path
|
||||
id="path9"
|
||||
d="m 59.722,156.564 c -0.62,-0.2 -1.223,-0.403 -1.816,-0.607 -0.104,-0.036 -0.208,-0.072 -0.311,-0.108 -0.555,-0.193 -1.1,-0.388 -1.632,-0.586 -0.043,-0.016 -0.088,-0.032 -0.132,-0.049 -0.571,-0.213 -1.13,-0.429 -1.676,-0.646 -0.046,-0.019 -0.092,-0.037 -0.137,-0.056 -0.553,-0.222 -1.096,-0.446 -1.625,-0.674 -0.003,-0.001 -0.006,-0.002 -0.009,-0.004 -0.541,-0.232 -1.069,-0.469 -1.587,-0.709 -0.029,-0.013 -0.058,-0.026 -0.086,-0.04 -0.496,-0.23 -0.981,-0.464 -1.458,-0.7 -0.036,-0.019 -0.072,-0.036 -0.108,-0.055 -0.471,-0.235 -0.933,-0.475 -1.385,-0.717 -0.027,-0.015 -0.054,-0.028 -0.081,-0.043 -0.475,-0.256 -0.94,-0.515 -1.397,-0.778 -0.828,-0.478 -1.626,-0.97 -2.396,-1.475 -0.438,-0.299 -0.86,-0.6 -1.271,-0.902 -0.008,-0.006 -0.017,-0.012 -0.025,-0.019 -0.401,-0.296 -0.79,-0.594 -1.164,-0.893 -0.014,-0.011 -0.028,-0.022 -0.042,-0.033 -0.369,-0.295 -0.726,-0.592 -1.069,-0.89 -0.014,-0.012 -0.027,-0.023 -0.041,-0.035 -0.347,-0.302 -0.682,-0.605 -1.003,-0.91 -0.008,-0.008 -0.016,-0.016 -0.024,-0.023 -0.317,-0.302 -0.622,-0.604 -0.913,-0.909 -0.012,-0.013 -0.025,-0.025 -0.037,-0.039 -0.292,-0.307 -0.572,-0.615 -0.839,-0.924 -0.007,-0.008 -0.013,-0.015 -0.02,-0.023 -0.269,-0.313 -0.525,-0.627 -0.767,-0.943 -0.002,-0.003 -0.005,-0.006 -0.008,-0.01 -0.243,-0.316 -0.472,-0.634 -0.688,-0.954 -0.005,-0.008 -0.01,-0.015 -0.015,-0.022 -0.215,-0.318 -0.416,-0.638 -0.604,-0.959 -0.004,-0.006 -0.008,-0.013 -0.012,-0.02 -0.186,-0.317 -0.357,-0.636 -0.517,-0.956 -0.006,-0.013 -0.013,-0.025 -0.019,-0.038 -0.157,-0.317 -0.301,-0.636 -0.433,-0.956 -0.005,-0.013 -0.01,-0.025 -0.016,-0.038 -0.131,-0.322 -0.25,-0.646 -0.356,-0.971 -0.003,-0.009 -0.005,-0.018 -0.008,-0.027 -0.104,-0.32 -0.194,-0.642 -0.272,-0.965 -0.005,-0.018 -0.009,-0.036 -0.014,-0.054 -0.076,-0.319 -0.14,-0.641 -0.191,-0.962 -0.003,-0.019 -0.006,-0.037 -0.009,-0.055 -0.05,-0.32 -0.087,-0.642 -0.113,-0.965 -0.002,-0.031 -0.004,-0.062 -0.006,-0.092 -0.023,-0.326 -0.037,-0.652 -0.036,-0.98 -0.038,13.587 -0.077,27.172 -0.115,40.758 0,0.083 0,0.165 0.001,0.247 0.002,0.16 0.008,0.32 0.017,0.48 0.005,0.09 0.012,0.179 0.019,0.268 0.002,0.022 0.003,0.045 0.005,0.067 0.002,0.035 0.004,0.07 0.007,0.105 0.012,0.134 0.025,0.267 0.042,0.399 0.016,0.132 0.033,0.264 0.053,0.395 0.004,0.025 0.009,0.052 0.013,0.077 0.002,0.017 0.005,0.032 0.008,0.049 0.012,0.072 0.022,0.145 0.035,0.217 v -0.039 c 0,0 0,0.001 0,0.002 v 0.037 c 0.02,0.114 0.042,0.229 0.065,0.342 0.022,0.111 0.047,0.222 0.072,0.332 0.007,0.029 0.015,0.06 0.022,0.089 0.002,0.009 0.004,0.018 0.006,0.026 0.015,0.062 0.03,0.124 0.045,0.187 0.026,0.101 0.053,0.201 0.082,0.301 0.028,0.1 0.057,0.199 0.087,0.299 0.021,0.065 0.042,0.131 0.063,0.196 0.002,0.009 0.005,0.017 0.008,0.025 0.005,0.017 0.011,0.033 0.016,0.05 0.03,0.091 0.061,0.182 0.093,0.272 0.032,0.09 0.064,0.181 0.099,0.271 0.032,0.086 0.065,0.172 0.1,0.259 0.017,0.042 0.034,0.083 0.051,0.125 0.004,0.01 0.008,0.02 0.013,0.03 0.013,0.031 0.025,0.062 0.039,0.094 0.035,0.084 0.07,0.167 0.107,0.25 0.037,0.083 0.074,0.166 0.113,0.249 0.036,0.078 0.074,0.157 0.112,0.236 0.022,0.046 0.045,0.092 0.068,0.139 0.003,0.006 0.006,0.013 0.01,0.02 0.012,0.025 0.024,0.05 0.037,0.075 0.039,0.077 0.079,0.155 0.12,0.232 0.041,0.078 0.083,0.155 0.125,0.233 0.041,0.074 0.082,0.148 0.124,0.224 0.042,0.073 0.084,0.147 0.128,0.222 0.044,0.075 0.087,0.147 0.132,0.222 0.045,0.073 0.09,0.146 0.136,0.22 v 10e-4 c 0.045,0.072 0.091,0.145 0.138,0.216 0.047,0.071 0.093,0.143 0.141,0.214 0.019,0.028 0.039,0.057 0.058,0.085 0.004,0.007 0.009,0.014 0.013,0.021 0.024,0.036 0.048,0.072 0.073,0.108 0.049,0.07 0.099,0.142 0.148,0.213 0.05,0.07 0.1,0.141 0.151,0.211 0.051,0.069 0.102,0.14 0.154,0.209 0.052,0.069 0.104,0.139 0.157,0.208 0.002,0.003 0.005,0.007 0.008,0.011 0,0 0,0 0,0 0.051,0.065 0.102,0.132 0.153,0.197 0.055,0.069 0.109,0.139 0.165,0.208 0.056,0.068 0.112,0.138 0.168,0.206 0.056,0.068 0.114,0.137 0.172,0.206 0.038,0.045 0.077,0.09 0.116,0.135 0.004,0.005 0.009,0.011 0.013,0.016 0.016,0.019 0.031,0.036 0.047,0.055 0.06,0.068 0.119,0.137 0.18,0.205 0.061,0.068 0.123,0.138 0.185,0.206 0.062,0.068 0.125,0.137 0.189,0.205 0.064,0.068 0.128,0.138 0.193,0.206 0.019,0.021 0.039,0.04 0.058,0.061 0.006,0.006 0.012,0.012 0.018,0.019 0.04,0.041 0.08,0.083 0.121,0.125 0.066,0.069 0.134,0.138 0.201,0.206 0.069,0.069 0.138,0.139 0.208,0.207 0.07,0.069 0.141,0.139 0.212,0.208 0.063,0.061 0.127,0.122 0.191,0.183 0.003,0.003 0.006,0.006 0.009,0.009 0.005,0.005 0.01,0.01 0.016,0.015 0.073,0.069 0.146,0.138 0.22,0.207 0.076,0.07 0.153,0.141 0.23,0.211 0.078,0.07 0.155,0.141 0.234,0.211 0.079,0.07 0.158,0.141 0.238,0.21 0.025,0.021 0.051,0.044 0.076,0.065 0.01,0.009 0.02,0.018 0.03,0.026 0.045,0.039 0.09,0.079 0.136,0.118 0.084,0.072 0.168,0.145 0.254,0.216 0.086,0.072 0.173,0.145 0.26,0.217 0.087,0.072 0.175,0.144 0.264,0.216 0.055,0.044 0.111,0.089 0.167,0.133 0.011,0.009 0.022,0.018 0.033,0.026 0.023,0.019 0.046,0.037 0.069,0.056 0.093,0.074 0.188,0.148 0.283,0.223 0.096,0.075 0.193,0.149 0.29,0.2Line truncated
|
||||
style="fill:#58595b" />
|
||||
<path
|
||||
id="path11"
|
||||
d="m 217.288,219.073 c -0.007,0.006 -0.013,0.011 -0.019,0.016 -0.556,0.464 -1.158,0.915 -1.801,1.35 -0.004,0.002 -0.007,0.005 -0.011,0.007 -0.322,0.218 -0.655,0.432 -0.997,0.642 -1.843,1.025 -3.76,1.882 -5.747,2.576 -0.006,0.002 -0.012,0.004 -0.018,0.007 -0.656,0.229 -1.319,0.439 -1.99,0.633 -0.035,0.01 -0.07,0.021 -0.106,0.03 -0.114,0.032 -0.229,0.065 -0.344,0.097 -0.594,0.164 -1.193,0.313 -1.798,0.45 -0.014,0.003 -0.027,0.006 -0.041,0.01 -0.12,0.026 -0.239,0.052 -0.359,0.078 -0.057,0.012 -0.112,0.024 -0.17,0.036 -0.033,0.007 -0.067,0.014 -0.101,0.021 -0.144,0.03 -0.287,0.06 -0.432,0.088 -0.008,0.002 -0.016,0.003 -0.023,0.005 -1.659,0.325 -3.358,0.552 -5.095,0.684 -0.032,0.003 -0.064,0.005 -0.096,0.007 -0.566,0.042 -1.137,0.074 -1.712,0.096 -0.016,0 -0.032,0.001 -0.048,0.002 -0.596,0.021 -1.195,0.032 -1.799,0.033 -0.817,0 -1.625,-0.022 -2.426,-0.062 -0.069,-0.004 -0.139,-0.006 -0.208,-0.01 -0.702,-0.037 -1.395,-0.095 -2.083,-0.161 -0.527,-0.052 -1.045,-0.12 -1.563,-0.188 -0.346,-0.046 -0.696,-0.083 -1.038,-0.137 -0.144,-0.022 -0.285,-0.048 -0.427,-0.072 -0.683,-0.113 -1.36,-0.237 -2.025,-0.381 -0.18,-0.039 -0.361,-0.078 -0.54,-0.12 -0.154,-0.035 -0.306,-0.072 -0.459,-0.109 -0.764,-0.187 -1.515,-0.393 -2.251,-0.619 -0.01,-0.003 -0.021,-0.007 -0.031,-0.01 -0.745,-0.23 -1.474,-0.481 -2.187,-0.753 -0.003,-10e-4 -0.006,-0.002 -0.009,-0.003 -0.715,-0.272 -1.414,-0.565 -2.094,-0.879 -0.006,-0.003 -0.012,-0.006 -0.018,-0.008 -0.682,-0.314 -1.347,-0.649 -1.992,-1.004 -0.368,-0.222 -0.718,-0.44 -1.054,-0.657 -0.022,-0.015 -0.044,-0.029 -0.066,-0.043 -0.329,-0.214 -0.644,-0.427 -0.944,-0.638 -0.006,-0.005 -0.013,-0.01 -0.02,-0.014 -0.305,-0.215 -0.595,-0.429 -0.872,-0.643 -0.012,-0.009 -0.024,-0.019 -0.036,-0.027 -0.275,-0.214 -0.538,-0.426 -0.787,-0.639 -0.002,-0.002 -0.005,-0.004 -0.007,-0.006 -0.254,-0.218 -0.496,-0.435 -0.725,-0.652 -0.001,-0.001 -0.002,-0.002 -0.003,-0.003 -0.229,-0.218 -0.445,-0.436 -0.65,-0.655 -0.001,-0.001 -0.002,-0.002 -0.003,-0.004 -0.412,-0.44 -0.777,-0.885 -1.106,-1.339 l -0.115,40.758 c 0.005,0.008 0.01,0.015 0.016,0.021 0.033,0.046 0.066,0.092 0.101,0.137 0.034,0.045 0.068,0.09 0.102,0.136 0.034,0.044 0.068,0.087 0.102,0.131 0.034,0.044 0.069,0.087 0.104,0.131 0.03,0.037 0.061,0.074 0.091,0.111 0.004,0.005 0.008,0.011 0.013,0.016 l 0,0 c 0.035,0.043 0.07,0.085 0.106,0.127 0.035,0.042 0.071,0.083 0.106,0.124 0.036,0.042 0.072,0.083 0.108,0.124 0.036,0.041 0.073,0.082 0.11,0.122 0.037,0.041 0.074,0.082 0.112,0.122 0.009,0.01 0.019,0.021 0.028,0.03 0.006,0.006 0.011,0.012 0.017,0.019 0.022,0.024 0.045,0.048 0.068,0.072 0.038,0.04 0.076,0.08 0.115,0.12 0.039,0.04 0.078,0.08 0.118,0.12 0.04,0.04 0.08,0.079 0.12,0.119 0.041,0.04 0.081,0.08 0.123,0.12 0.028,0.027 0.057,0.055 0.086,0.082 0.011,0.01 0.021,0.021 0.032,0.03 0.002,0.002 0.004,0.005 0.007,0.007 0.042,0.04 0.084,0.08 0.127,0.12 0.043,0.04 0.087,0.08 0.131,0.12 0.044,0.041 0.089,0.081 0.134,0.121 0.046,0.041 0.092,0.081 0.138,0.122 0.046,0.04 0.094,0.081 0.141,0.122 0.009,0.008 0.019,0.016 0.027,0.023 0.005,0.004 0.01,0.008 0.015,0.013 0.034,0.029 0.068,0.058 0.104,0.088 0.049,0.041 0.099,0.083 0.149,0.124 0.051,0.042 0.103,0.084 0.155,0.127 v -10e-4 c 0.052,0.043 0.105,0.085 0.159,0.128 0.055,0.043 0.11,0.086 0.165,0.13 0.02,0.016 0.041,0.031 0.062,0.047 0.006,0.005 0.012,0.01 0.019,0.015 0.03,0.022 0.06,0.046 0.09,0.069 0.059,0.045 0.118,0.09 0.177,0.134 0.061,0.046 0.122,0.091 0.183,0.137 0.063,0.046 0.127,0.093 0.191,0.139 0.065,0.047 0.131,0.095 0.198,0.142 0.011,0.008 0.021,0.015 0.032,0.022 0.01,0.007 0.02,0.014 0.029,0.021 0.049,0.035 0.098,0.069 0.147,0.104 0.071,0.049 0.143,0.099 0.215,0.147 0.076,0.052 0.152,0.104 0.229,0.154 0.078,0.053 0.157,0.105 0.237,0.157 0.042,0.028 0.086,0.056 0.129,0.084 0.009,0.006 0.019,0.013 0.028,0.019 0.031,0.021 0.062,0.041 0.095,0.062 v -0.001 c 0.087,0.057 0.176,0.113 0.265,0.169 0.091,0.058 0.184,0.116 0.277,0.174 0.098,0.061 0.198,0.122 0.299,0.183 0.046,0.028 0.093,0.057 0.14,0.085 0.005,0.003 0.01,0.006 0.015,0.009 0.078,0.042 0.155,0.084 0.233,0.126 0.078,0.042 0.156,0.084 0.234,0.125 0.078,0.041 0.157,0.082 0.236,0.123 0.081,0.042 0.161,0.083 0.242,0.124 0.082,0.041 0.164,0.082 0.247,0.123 0.083,0.04 0.165,0.081 0.248,0.121 0.084,0.04 0.168,0.081 0.252,0.12 0.087,0.042 0.174,0.082 0.262,0.123 0.088,0.04 0.176,0.08 0.264,0.12 0.088,0.04 0.177,0.079 0.266,0.118 0.093,0.041 0.187,0.082 0.281,0.122 0.094,0.041 0.188,0.08 0.283,0.12 0.094,0.04 0.189,0.079 0.285,0.118 0.101,0.041 0.201,0.081 0.303,0.121 0.102,0.041 0.204,0.081 0.307,0.121 0.047,0.018 0.095,0.036 0.143,0.054 0.007,0.003 0.015,0.006 0.021,0.009 0.049,0.018 0.097,0.036 0.146,0.055 0.111,0.042 0.223,0.083 0.335,0.124 0.112,0.041 0.225,0.081 0.338,0.121 0.116,0.041 0.233,0.081 0.35,0.121 0.125,0.043 0.25,0.085 0.375,0.126 0.125,0.041 0.251,0.082 0.377,0.122 0.085,0.027 0.171,0.053 0.257,0.079 0.013,0.004 0.025,0.008 0.038,0.013 0.041,0.013 0.083,0.025 0.124,0.038 0.143,0.043 0.285,0.086 0.428,0.128 0.157,0.046 0.314,0.091 0Line truncated
|
||||
style="fill:#58595b" />
|
||||
<path
|
||||
id="path13"
|
||||
d="m 349.493,159.472 c -0.582,0.941 -1.186,1.87 -1.804,2.791 -0.201,0.3 -0.413,0.594 -0.618,0.891 -0.435,0.63 -0.871,1.26 -1.323,1.88 -0.188,0.26 -0.384,0.517 -0.576,0.775 -0.471,0.632 -0.948,1.26 -1.437,1.882 -0.176,0.223 -0.35,0.445 -0.527,0.667 -0.642,0.802 -1.296,1.597 -1.968,2.382 -0.075,0.087 -0.152,0.173 -0.228,0.261 -0.689,0.798 -1.394,1.588 -2.114,2.368 -0.047,0.051 -0.093,0.103 -0.14,0.153 -0.759,0.818 -1.537,1.625 -2.331,2.423 -0.063,0.064 -0.126,0.129 -0.189,0.193 -0.823,0.823 -1.664,1.637 -2.524,2.438 -0.03,0.028 -0.062,0.057 -0.091,0.084 -0.838,0.778 -1.692,1.546 -2.563,2.304 -0.074,0.064 -0.149,0.129 -0.224,0.193 -0.887,0.767 -1.789,1.523 -2.711,2.269 -0.02,0.017 -0.04,0.032 -0.061,0.049 -0.94,0.759 -1.899,1.507 -2.876,2.243 -0.026,0.021 -0.053,0.04 -0.079,0.06 -0.969,0.73 -1.958,1.448 -2.963,2.155 -0.05,0.035 -0.099,0.07 -0.148,0.105 -1.016,0.712 -2.048,1.413 -3.099,2.102 -0.019,0.013 -0.036,0.024 -0.056,0.037 -1.059,0.693 -2.136,1.374 -3.23,2.045 -0.044,0.026 -0.088,0.053 -0.132,0.08 -1.085,0.662 -2.188,1.313 -3.309,1.953 -0.024,0.014 -0.048,0.027 -0.072,0.041 -1.138,0.648 -2.293,1.284 -3.467,1.908 -0.028,0.016 -0.057,0.03 -0.085,0.045 -1.183,0.628 -2.383,1.244 -3.602,1.848 -1.691,0.83 -3.386,1.635 -5.082,2.414 -0.006,0.002 -0.012,0.005 -0.017,0.008 -1.674,0.768 -3.351,1.51 -5.028,2.228 -0.044,0.019 -0.089,0.038 -0.134,0.058 -1.667,0.711 -3.335,1.397 -5.004,2.058 -0.035,0.014 -0.07,0.028 -0.105,0.042 -1.683,0.665 -3.366,1.305 -5.05,1.917 -0.013,0.005 -0.026,0.01 -0.039,0.015 -1.691,0.615 -3.383,1.203 -5.073,1.766 -0.027,0.01 -0.055,0.019 -0.082,0.027 -1.666,0.553 -3.331,1.08 -4.995,1.581 -0.051,0.016 -0.102,0.03 -0.152,0.046 -1.668,0.501 -3.336,0.976 -5,1.424 -0.034,0.01 -0.068,0.019 -0.103,0.027 -1.685,0.452 -3.367,0.879 -5.048,1.276 -1.75,0.406 -3.52,0.788 -5.306,1.149 -0.058,0.012 -0.115,0.023 -0.173,0.035 -1.757,0.353 -3.531,0.685 -5.322,0.994 -0.056,0.01 -0.112,0.02 -0.168,0.029 -1.789,0.308 -3.595,0.593 -5.416,0.856 -0.072,0.011 -0.145,0.021 -0.216,0.031 -1.831,0.264 -3.678,0.505 -5.539,0.724 -0.05,0.006 -0.099,0.012 -0.147,0.018 -1.844,0.215 -3.703,0.408 -5.575,0.58 -0.091,0.008 -0.181,0.017 -0.271,0.024 -1.846,0.168 -3.706,0.312 -5.578,0.438 -0.13,0.009 -0.26,0.018 -0.389,0.025 -1.888,0.123 -3.787,0.225 -5.701,0.304 -0.087,0.004 -0.175,0.007 -0.262,0.01 -1.952,0.079 -3.916,0.138 -5.893,0.171 l -0.116,40.759 c 0.339,-0.006 0.677,-0.013 1.014,-0.02 0.931,-0.02 1.859,-0.044 2.785,-0.074 0.673,-0.021 1.343,-0.048 2.014,-0.075 0.127,-0.005 0.255,-0.009 0.382,-0.014 0.061,-0.003 0.121,-0.004 0.182,-0.007 0.803,-0.033 1.604,-0.071 2.404,-0.113 0.755,-0.039 1.509,-0.082 2.26,-0.128 0.276,-0.017 0.551,-0.037 0.826,-0.055 0.127,-0.009 0.254,-0.017 0.38,-0.025 0.311,-0.021 0.622,-0.039 0.933,-0.062 0.681,-0.048 1.359,-0.099 2.035,-0.152 0.65,-0.052 1.299,-0.105 1.946,-0.162 0.225,-0.02 0.447,-0.041 0.671,-0.062 0.081,-0.007 0.161,-0.015 0.242,-0.022 0.316,-0.028 0.635,-0.057 0.951,-0.087 0.595,-0.058 1.188,-0.116 1.779,-0.178 0.574,-0.06 1.147,-0.122 1.719,-0.186 0.38,-0.043 0.758,-0.087 1.137,-0.131 0.054,-0.007 0.108,-0.013 0.162,-0.019 0.123,-0.015 0.246,-0.028 0.369,-0.043 0.539,-0.064 1.076,-0.131 1.612,-0.198 0.52,-0.066 1.037,-0.134 1.555,-0.203 0.507,-0.068 1.014,-0.138 1.519,-0.209 0.177,-0.025 0.352,-0.052 0.528,-0.077 0.04,-0.006 0.081,-0.012 0.121,-0.018 0.276,-0.04 0.554,-0.079 0.829,-0.12 0.479,-0.071 0.956,-0.144 1.432,-0.218 0.47,-0.073 0.938,-0.148 1.406,-0.225 0.457,-0.074 0.913,-0.15 1.368,-0.228 0.142,-0.023 0.282,-0.049 0.423,-0.073 0.059,-0.01 0.115,-0.02 0.173,-0.03 0.247,-0.042 0.495,-0.084 0.742,-0.128 0.439,-0.078 0.879,-0.156 1.317,-0.237 0.427,-0.078 0.853,-0.158 1.277,-0.239 0.422,-0.08 0.844,-0.161 1.264,-0.244 0.242,-0.048 0.482,-0.097 0.724,-0.146 0.056,-0.011 0.111,-0.022 0.167,-0.033 0.114,-0.023 0.229,-0.046 0.343,-0.069 0.406,-0.082 0.812,-0.166 1.215,-0.251 0.399,-0.084 0.798,-0.17 1.194,-0.256 0.322,-0.07 0.644,-0.141 0.965,-0.212 0.28,-0.062 0.561,-0.126 0.841,-0.189 0.25,-0.058 0.501,-0.115 0.751,-0.173 0.036,-0.009 0.073,-0.018 0.11,-0.026 0.354,-0.084 0.707,-0.169 1.061,-0.256 v 0.001 c 0.354,-0.087 0.709,-0.175 1.063,-0.264 0.355,-0.089 0.712,-0.18 1.068,-0.271 0.357,-0.092 0.715,-0.186 1.072,-0.279 v -0.001 c 0.217,-0.058 0.435,-0.116 0.651,-0.174 0.047,-0.013 0.094,-0.025 0.141,-0.038 0.096,-0.025 0.191,-0.05 0.287,-0.076 0.361,-0.098 0.722,-0.197 1.083,-0.298 0.364,-0.101 0.728,-0.203 1.092,-0.307 0.365,-0.104 0.73,-0.209 1.097,-0.315 0.368,-0.107 0.736,-0.216 1.104,-0.325 0.115,-0.034 0.23,-0.069 0.346,-0.104 0.032,-0.01 0.065,-0.02 0.098,-0.029 0.224,-0.067 0.447,-0.134 0.67,-0.202 0.373,-0.114 0.746,-0.229 1.119,-0.346 0.378,-0.118 0.755,-0.237 1.133,-0.357 0.379,-0.121 0.757,-0.243 1.136,-0.366 0.325,-0.106 0.651,-0.214 0.978,-0.322 0.021,-0.007 0.04,-0.013 0.06,-0.02 0.039,-0.013 0.077,-0.025 0.116,-0.038 0.386,-0.129 0.771,-0.259 1.158,-0.391 0.391,-0.133 0.781,-0.268 1.173,-0.403 0.395,-0.137 0.788,-0.275 1.183,-0.415 0.397,-0.142 0.795,Line truncated
|
||||
style="fill:#6d6e71" />
|
||||
</g><g
|
||||
id="Grey_Border">
|
||||
<path
|
||||
id="path16"
|
||||
d="m 349.493,159.472 c -9.8,15.844 -24.79,28.845 -44.546,38.624 -13.557,6.657 -27.318,11.667 -40.912,14.886 -14.217,3.299 -29.672,5.112 -45.955,5.389 -1.02,0.963 -2.243,1.873 -3.619,2.717 -5.912,3.289 -12.593,4.848 -19.879,4.852 -7.292,0 -13.984,-1.563 -19.352,-4.516 -3.04,-1.828 -4.958,-3.502 -6.273,-5.319 -5.681,-0.804 -11.16,-1.806 -16.735,-3.063 -13.95,-3.27 -27.794,-8.278 -41.322,-14.943 -2.906,-1.422 -5.715,-2.916 -8.421,-4.479 -15.825,-9.136 -28.195,-20.638 -36.848,-34.282 -0.282,-0.465 -0.566,-0.929 -0.836,-1.393 l -5.073,-1.379 c -5.369,-1.734 -9.705,-3.615 -13.44,-5.772 -0.828,-0.478 -1.626,-0.97 -2.396,-1.475 -8.299,-5.681 -11.668,-11.873 -10.197,-18.527 1.37,-6.661 7.326,-12.187 17.688,-16.418 3.568,-1.475 7.628,-2.754 12.07,-3.797 0.542,-1.069 1.133,-2.153 1.757,-3.225 4.001,-7.148 9.412,-13.732 16.542,-20.116 6.255,-5.625 13.076,-10.395 20.291,-14.174 8.063,-4.294 16.532,-8.046 25.151,-11.154 1.075,-2.23 2.501,-4.391 4.265,-6.422 3.489,-4.335 8.33,-8.169 14.364,-11.357 10.755,-5.651 22.107,-9.245 33.732,-10.683 4.158,-0.516 8.376,-0.778 12.551,-0.778 8.171,0 16.349,0.995 24.301,2.949 8.239,1.95 14.935,4.43 20.304,7.53 1.31,0.756 2.539,1.548 3.693,2.378 2.933,2.068 5.352,4.391 7.205,6.908 6.846,0.918 13.293,2.09 19.672,3.576 15.064,3.539 30.217,9.274 45.037,17.06 1.345,0.69 2.672,1.413 3.983,2.17 5.713,3.298 11.138,7.252 16.474,12.007 7.234,6.521 12.745,13.097 16.852,20.112 1.702,3.004 3.105,5.901 4.248,8.721 1.842,0.865 3.452,1.702 4.953,2.568 3.223,1.86 5.939,3.855 8.23,6.035 6.418,6.227 7.925,12.674 4.512,19.176 -3.273,6.142 -10.355,10.863 -21.067,14.049 -0.322,0.525 -0.656,1.052 -1.004,1.565 z m -45.843,37.743 c 19.482,-9.644 34.276,-22.486 43.977,-38.167 0.441,-0.649 0.858,-1.305 1.255,-1.965 10.599,-3.045 17.585,-7.601 20.771,-13.565 3.243,-6.174 1.803,-12.305 -4.309,-18.236 -2.203,-2.099 -4.82,-4.02 -7.93,-5.815 -1.45,-0.837 -3.007,-1.647 -4.679,-2.435 -1.812,-3.207 -3.255,-6.2 -4.953,-9.223 -4.111,-7.011 -9.545,-13.499 -16.689,-19.931 -5.258,-4.687 -10.604,-8.586 -16.225,-11.831 -1.284,-0.742 -2.585,-1.45 -3.9,-2.125 -14.643,-7.689 -29.592,-13.351 -44.438,-16.838 -6.576,-1.534 -13.265,-2.736 -20.379,-3.653 -1.822,-2.632 -4.279,-5.043 -7.314,-7.184 -1.103,-0.794 -2.279,-1.553 -3.533,-2.276 -5.187,-2.995 -11.683,-5.396 -19.679,-7.29 -7.704,-1.891 -15.621,-2.853 -23.518,-2.857 -4.035,0 -8.113,0.255 -12.139,0.752 -11.275,1.397 -22.309,4.895 -32.798,10.406 -5.837,3.089 -10.525,6.797 -13.932,11.026 -1.821,2.101 -3.266,4.331 -4.322,6.646 -8.752,3.111 -17.341,6.904 -25.539,11.269 -7.081,3.708 -13.794,8.401 -19.956,13.941 -7.021,6.3 -12.375,12.806 -16.319,19.861 -0.725,1.242 -1.405,2.488 -2.016,3.716 -4.646,1.051 -8.864,2.355 -12.554,3.878 -9.885,4.037 -15.557,9.3 -16.865,15.622 -1.39,6.318 1.806,12.198 9.543,17.495 0.916,0.604 1.688,1.081 2.491,1.543 3.602,2.08 7.788,3.892 12.47,5.405 l 6.24,1.722 c 0.353,0.615 0.726,1.228 1.098,1.832 8.549,13.487 20.774,24.854 36.397,33.874 2.661,1.536 5.421,3.004 8.276,4.403 13.371,6.58 27.023,11.53 40.596,14.708 5.965,1.349 11.717,2.385 17.646,3.191 1.226,1.898 3.126,3.635 5.667,5.176 5.502,3.038 11.715,4.486 18.48,4.482 6.764,0.004 12.961,-1.445 17.917,-4.185 2.055,-1.245 3.366,-2.267 4.429,-3.357 16.456,-0.214 32.025,-1.998 46.351,-5.323 13.401,-3.169 26.986,-8.112 40.382,-14.692"
|
||||
style="fill:#646464" />
|
||||
</g><g
|
||||
id="Black_and_White">
|
||||
<path
|
||||
id="path19"
|
||||
d="m 347.627,159.048 c -9.7,15.681 -24.494,28.523 -43.977,38.167 -13.397,6.58 -26.981,11.523 -40.379,14.693 -14.325,3.325 -29.895,5.109 -46.351,5.323 -1.062,1.091 -2.374,2.112 -3.915,3.052 -5.469,3.046 -11.665,4.494 -18.43,4.49 -6.765,0.004 -12.977,-1.445 -17.97,-4.188 -3.052,-1.836 -4.953,-3.572 -6.178,-5.471 -5.93,-0.807 -11.682,-1.843 -17.481,-3.155 -13.739,-3.214 -27.392,-8.165 -40.761,-14.744 -2.855,-1.399 -5.615,-2.867 -8.276,-4.403 -15.624,-9.021 -27.849,-20.387 -36.397,-33.874 -0.372,-0.604 -0.746,-1.217 -1.099,-1.832 l -5.78,-1.574 c -5.142,-1.661 -9.328,-3.473 -12.93,-5.553 -0.802,-0.463 -1.576,-0.939 -2.319,-1.429 -7.909,-5.412 -11.104,-11.291 -9.715,-17.609 1.308,-6.321 6.979,-11.585 16.865,-15.622 3.69,-1.522 7.908,-2.827 12.554,-3.878 0.61,-1.228 1.291,-2.474 2.016,-3.716 3.944,-7.056 9.297,-13.562 16.319,-19.861 6.162,-5.541 12.875,-10.233 19.956,-13.942 8.198,-4.364 16.787,-8.157 25.538,-11.269 1.057,-2.315 2.501,-4.545 4.322,-6.646 3.406,-4.229 8.095,-7.937 13.933,-11.026 10.489,-5.511 21.523,-9.009 32.798,-10.406 4.026,-0.498 8.104,-0.752 12.138,-0.752 7.897,0.004 15.813,0.966 23.518,2.857 7.996,1.894 14.492,4.295 19.679,7.29 1.254,0.724 2.431,1.482 3.533,2.276 3.035,2.141 5.492,4.552 7.314,7.184 7.113,0.918 13.803,2.12 20.378,3.653 14.849,3.487 29.797,9.149 44.439,16.838 1.316,0.675 2.616,1.383 3.9,2.125 5.621,3.245 10.967,7.145 16.225,11.831 7.145,6.432 12.578,12.92 16.632,19.847 1.756,3.107 3.198,6.101 4.354,9.009 2.329,1.086 3.886,1.896 5.336,2.733 3.109,1.795 5.727,3.716 7.93,5.815 6.111,5.931 7.552,12.062 4.31,18.236 -3.188,5.964 -10.175,10.521 -20.771,13.565 -0.401,0.661 -0.817,1.316 -1.258,1.966 z"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
id="path21"
|
||||
d="m 333.583,155.966 c -8.917,14.479 -22.146,25.947 -39.706,34.637 -12.262,6.022 -24.341,10.424 -36.321,13.266 -14.979,3.477 -31.473,5.036 -49.574,4.631 -0.999,0.062 -1.998,0.059 -2.996,0.121 0.098,0.343 0.202,0.808 0.204,1.272 0.01,1.681 -1.077,3.185 -3.068,4.4 -2.094,1.158 -4.59,1.796 -7.594,1.796 -2.902,0 -5.509,-0.638 -7.615,-1.796 -2.005,-1.216 -3.114,-2.724 -3.118,-4.4 -0.011,-0.697 0.189,-1.449 0.587,-2.086 -9.207,-0.753 -17.812,-2.083 -26.025,-3.938 -12.114,-2.842 -24.243,-7.243 -36.47,-13.267 -2.601,-1.273 -5.107,-2.606 -7.521,-4 -14.054,-8.114 -24.944,-18.278 -32.78,-30.635 -1.104,-1.8 -2.114,-3.653 -3.028,-5.504 -1.306,-0.233 -2.701,-0.523 -4.103,-0.811 -0.6,-0.177 -1.205,-0.291 -1.899,-0.465 l -5.119,-1.389 c -3.518,-1.136 -6.573,-2.467 -9.159,-3.959 -0.577,-0.333 -1.131,-0.675 -1.662,-1.024 -4.824,-3.299 -6.937,-6.834 -6.062,-10.775 0.78,-3.819 4.262,-7.003 10.65,-9.614 4.482,-1.851 9.979,-3.24 16.376,-4.169 0.984,-2.606 2.261,-5.212 3.75,-7.763 3.566,-6.37 8.433,-12.275 14.701,-17.9 5.478,-4.921 11.348,-9.035 17.432,-12.216 9.574,-5.099 19.148,-9.094 28.83,-12.168 0.69,-2.953 2.169,-5.788 4.458,-8.397 2.578,-3.244 6.164,-6.083 10.548,-8.401 8.375,-4.401 16.958,-7.236 25.854,-8.338 8.891,-1.099 17.796,-0.579 26.705,1.618 6.202,1.466 11.146,3.275 14.935,5.462 0.859,0.497 1.66,1.013 2.402,1.549 3.616,2.551 6.033,5.621 7.154,9.267 9.602,0.87 18.411,2.259 26.625,4.172 13.317,3.126 26.641,8.224 39.987,15.231 1.098,0.562 2.184,1.154 3.258,1.774 5.006,2.89 9.756,6.397 14.312,10.449 6.229,5.618 11.258,11.527 14.998,17.896 2.121,3.768 3.841,7.531 5.059,11.298 1.709,0.634 3.311,1.331 4.811,2.028 1.219,0.572 2.354,1.163 3.412,1.773 2.254,1.301 4.149,2.693 5.722,4.191 3.826,3.708 4.745,7.413 2.768,11.18 -1.983,3.705 -6.366,6.429 -13.355,8.397 -1.696,0.52 -3.495,0.87 -5.39,1.216 -0.785,1.856 -1.78,3.654 -2.973,5.391 z m -92.569,40.719 c 10.183,-3.417 19.555,-8.169 28.22,-14.307 8.463,-5.968 15.526,-12.743 21.085,-20.16 3.481,-4.574 6.146,-9.149 8.024,-13.724 -3.084,-1.113 -5.789,-2.343 -8.241,-3.759 -2.402,-1.388 -4.563,-2.953 -6.501,-4.701 -3.921,-3.417 -6.45,-7.413 -7.875,-11.813 -3.393,1.098 -6.478,2.373 -9.175,3.763 -1.854,7.704 -7.816,14.424 -17.788,20.16 -1.192,0.693 -2.392,1.391 -3.584,2.023 1.208,2.087 2.021,3.886 2.125,5.504 0.956,9.208 -3.401,16.451 -12.97,21.664 -8.686,4.634 -20.268,7.067 -34.858,7.239 -0.102,10e-4 -0.306,10e-4 -0.51,0 l 0.081,13.268 c 2.7,0.229 5.297,0.346 7.996,0.346 0.305,0 0.503,-0.003 0.902,0 0.205,0 0.599,0.001 0.898,-0.003 10.704,0 21.494,-1.796 32.171,-5.5 m -66.299,0 c 5.012,1.74 10.116,3.071 15.124,4 l -0.071,-12.688 c -2.7,-0.288 -5.305,-0.756 -7.804,-1.39 -5.81,-1.275 -11.021,-3.188 -15.533,-5.559 -0.671,-0.348 -1.32,-0.702 -1.948,-1.064 -3.878,-2.239 -6.936,-4.761 -9.104,-7.454 -2.813,-3.358 -4.137,-6.835 -4.055,-10.425 0.188,-2.838 1.462,-5.85 4.048,-9.039 0.594,-0.692 1.093,-1.33 1.79,-1.964 -6.718,-4.114 -11.447,-8.748 -14.282,-13.846 -2.094,1.158 -4.181,2.319 -6.18,3.362 -0.495,0.288 -0.996,0.52 -1.491,0.807 0.704,1.854 1.422,3.826 1.834,5.909 2.506,0.493 4.413,1.125 5.757,1.901 1.661,0.959 2.462,2.137 2.47,3.547 -0.191,2.256 -2.476,4.456 -6.861,6.657 -2.596,1.161 -4.089,2.783 -4.473,4.752 -0.396,1.968 -0.688,3.357 -0.677,4.113 -0.002,0.808 0.006,1.157 -0.198,1.099 -0.346,-0.137 -0.485,-0.215 -0.622,-0.294 -5.268,-3.041 -6.653,-7.02 -4.151,-11.985 l 0.203,-0.287 c 0,0.052 -0.101,0.17 -0.203,0.287 -1.834,0.105 -3.517,-0.23 -5.104,-1.146 -0.135,-0.078 -0.269,-0.16 -0.401,-0.247 -1.801,-1.098 -2.513,-2.2 -2.316,-3.417 0.292,-1.271 1.183,-2.314 2.688,-2.893 0.692,-0.292 2.491,-0.693 5.288,-1.276 -0.212,-1.275 -0.313,-2.488 -0.517,-3.649 -2,0.755 -4.097,1.449 -6.193,2.142 -1.689,0.523 -3.392,1.047 -5.089,1.508 2.032,4.693 4.852,9.384 8.378,14.074 5.743,7.417 12.782,14.191 21.312,20.16 2.676,1.88 5.417,3.631 8.226,5.252 6.359,3.671 13.066,6.682 20.155,9.053 m 66.028,-48.077 c 0.501,-0.291 1.098,-0.638 1.693,-0.984 10.371,-6.027 15.625,-13.326 15.583,-21.837 -0.048,-8.574 -5.396,-15.873 -15.829,-21.955 -10.433,-6.023 -23.044,-9.035 -37.744,-9.035 -11.507,0 -21.595,1.795 -30.472,5.503 9.54,6.72 19.472,13.322 29.812,19.636 12.847,8.688 22.687,15.869 29.414,21.604 2.923,2.549 5.431,4.923 7.543,7.068 m 4.36,-78.022 c -3.303,-1.098 -6.706,-1.968 -10.013,-2.724 -0.292,1.271 -0.788,2.551 -1.48,3.826 2.307,1.677 2.82,3.473 1.531,5.212 -1.586,2.083 -5.179,3.646 -10.672,4.634 -3.096,0.579 -5.495,1.736 -7.185,3.472 -1.785,1.74 -2.885,2.957 -3.377,3.708 -0.393,0.464 -0.594,0.811 -0.695,0.929 13.409,1.099 25.233,4.575 35.264,10.366 12.438,7.181 18.685,15.813 18.741,25.951 1.003,-0.406 2.89,-1.043 5.684,-2.142 0.604,-0.173 1.201,-0.351 1.805,-0.583 -0.113,-1.909 -0.124,-3.937 -0.034,-6.023 -1.623,-0.496 -2.943,-1.039 -3.965,-1.628 -2.196,-1.268 -3.01,-2.753 -2.472,-4.454 0.789,-2.315 3.674,-4.228 8.667,-5.85 2.89,-0.984 4.785,-2.374 5.875,-4.346 0.988,-1.854 1.681,-3.182 1.874,-3.996 0.267,-0.667 0.375,-1.015 0.393,-1.005 0.206,0.08 0.206,0.08 0.309,0.021 4.614,3.59 4.938,7.819 0Line truncated
|
||||
</g></g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 20 KiB |
@@ -0,0 +1,364 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg1998"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
width="55.044277"
|
||||
height="63.620274"
|
||||
version="1.0"
|
||||
sodipodi:docname="pan-vm-fw.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<title
|
||||
id="title3303">ASA</title>
|
||||
<metadata
|
||||
id="metadata2003">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
<dc:title>ASA</dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jeremy Grossmann</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>GNS-3</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2001">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 25.403036 : 1"
|
||||
inkscape:vp_y="0 : 1066.6667 : 0"
|
||||
inkscape:vp_z="54.782739 : 25.403036 : 1"
|
||||
inkscape:persp3d-origin="27.39137 : 16.935357 : 1"
|
||||
id="perspective43" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient10123">
|
||||
<stop
|
||||
style="stop-color:#e4405c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop10125" />
|
||||
<stop
|
||||
style="stop-color:#e4405c;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop10127" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient8331">
|
||||
<stop
|
||||
style="stop-color:#6e8caa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop8333" />
|
||||
<stop
|
||||
style="stop-color:#dde3ef;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop8335" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6603">
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6605" />
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6607" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6587">
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6589" />
|
||||
<stop
|
||||
style="stop-color:#506eaa;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6591" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11918"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round"
|
||||
d="M 11.403143,4.732916 -1.416553,0.01878889 11.403144,-4.6953372 c -2.0480517,2.7832182 -2.0362508,6.5911436 -10e-7,9.4282532 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11921"
|
||||
d="M -1.28,0 -2.3466667,1.0666667 1.3866667,0 -2.3466667,-1.0666667 Z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.21333334pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11936"
|
||||
d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6587"
|
||||
id="linearGradient6593"
|
||||
x1="3.95626"
|
||||
y1="0.64267641"
|
||||
x2="-1.2664427"
|
||||
y2="0.62730032"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.060042,0,0,1.074658,-0.00394248,-0.356572)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6603"
|
||||
id="linearGradient6609"
|
||||
x1="2.2801981"
|
||||
y1="1.4519272"
|
||||
x2="-0.41311559"
|
||||
y2="1.4649135"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.060042,0,0,1.074658,-0.00394248,-0.356572)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10123"
|
||||
id="linearGradient10129"
|
||||
x1="1.3990936"
|
||||
y1="1.4711363"
|
||||
x2="0.49966058"
|
||||
y2="0.56367606"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.117962,0,0,1.035008,-0.040973,-0.00678868)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8331"
|
||||
id="linearGradient6875"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(26.557584,0,0,27.099161,-9.2951537,-5.3720715)"
|
||||
x1="2.1178279"
|
||||
y1="0.30649999"
|
||||
x2="-0.4954865"
|
||||
y2="0.30649999" />
|
||||
<inkscape:perspective
|
||||
id="perspective418"
|
||||
inkscape:persp3d-origin="302.36221 : 201.57481 : 1"
|
||||
inkscape:vp_z="604.72442 : 302.36221 : 1"
|
||||
inkscape:vp_y="0 : 1066.6667 : 0"
|
||||
inkscape:vp_x="0 : 302.36221 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3145"
|
||||
inkscape:persp3d-origin="0.53333333 : 0.35555555 : 1"
|
||||
inkscape:vp_z="1.0666667 : 0.53333333 : 1"
|
||||
inkscape:vp_y="0 : 1066.6667 : 0"
|
||||
inkscape:vp_x="0 : 0.53333333 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="1031"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="7.8958336"
|
||||
inkscape:cx="-23.593681"
|
||||
inkscape:cy="44.117519"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:current-layer="svg1998"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<path
|
||||
id="path11907"
|
||||
d="m 2.277686,60.343382 v 3.25342 h 45.379267 v -3.25342 H 2.277686"
|
||||
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:1.06666672"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path11020"
|
||||
d="M 47.765643,8.1809483 55.044279,1.3761504 55.028695,57.643455 47.654539,63.62027 47.765638,8.1809483"
|
||||
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:1.06666672"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2037"
|
||||
d="M 0.47692057,5.3149867 V 49.230745 H 47.778461 V 5.3149867 H 0.47692057"
|
||||
style="fill:#6e8caa;fill-opacity:1;stroke:none;stroke-width:1.06666672"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2041"
|
||||
d="M 0,5.8198859 6.0551291,0.04776213 H 53.885337 L 47.777093,5.8198859 H 0"
|
||||
style="fill:url(#linearGradient6875);fill-opacity:1;stroke:none;stroke-width:1.06666672"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path2045"
|
||||
d="M 47.635174,5.2911061 53.670405,0 v 43.968341 l -6.035231,5.291106 V 5.2911061"
|
||||
style="fill:#6e8296;fill-opacity:1;stroke:none;stroke-width:1.06666672"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.06040335"
|
||||
d="m 68.017411,-124.00618 h 32.336679 v -2.5979 l 6.95208,5.19579 -6.95208,5.62568 v -2.59789 H 68.017411 v -5.62568"
|
||||
id="path39" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;stroke:#ffffff;stroke-width:1.06040335;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 56.893321,-121.40829 H 70.452314"
|
||||
id="path61" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.06040335"
|
||||
d="M 16.19484,61.82555 H 0.42243277 V 55.665507 H 16.19484 v 6.160043"
|
||||
id="path99" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;stroke:#e1e1e1;stroke-width:0.47963932;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 16.19484,61.82555 H 0.57567743"
|
||||
id="path101" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 0.66977537,55.665507 H 16.19484 v 6.160043"
|
||||
id="path103" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 47.780883,61.82555 H 31.991982 v -6.160043 h 15.788901 v 6.160043"
|
||||
id="path105" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 40.280128,61.82555 H 24.474743 v -6.160043 h 15.805385 v 6.160043"
|
||||
id="path107" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 24.474743,61.82555 H 8.6940847 V 55.665507 H 24.474743 v 6.160043"
|
||||
id="path109" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.50290239;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="m 50.792321,53.512289 2.638353,-2.735375 v -6.805626 l -2.638353,2.720386 v 6.820615"
|
||||
id="path111" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="m 50.792321,59.372711 2.638353,-2.166775 v -6.166822 l -2.638353,2.160008 v 6.173589"
|
||||
id="path125" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="m 47.780883,61.82555 3.011438,-2.452839 v -6.173589 l -3.011438,2.466385 v 6.160043"
|
||||
id="path127" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 31.991982,55.665507 H 16.19484 v -6.166811 h 15.797142 v 6.166811"
|
||||
id="path133" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.06040335"
|
||||
d="M 16.19484,55.665507 H 0.42243277 V 49.498685 H 16.19484 v 6.166822"
|
||||
id="path135" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;stroke:#e1e1e1;stroke-width:0.48108193;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 16.19484,55.665507 H 0.48158037"
|
||||
id="path137" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;stroke:#e1e1e1;stroke-width:0.48039833;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 0.52620409,49.498696 H 16.19484 v 6.166811"
|
||||
id="path139" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="M 47.780883,55.665507 H 31.991982 v -6.166811 h 15.788901 v 6.166811"
|
||||
id="path141" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.48692337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||
d="m 47.780883,55.665507 3.011438,-2.557269 v -6.387053 l -3.011438,2.550268 v 6.394054"
|
||||
id="path145" />
|
||||
<image
|
||||
y="7.2389145"
|
||||
x="3.5391355"
|
||||
id="image4628"
|
||||
xlink:href="data:image/png;base64,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 1uDiyjLraimuxzjQ7BHyRBtNVxCfrr70Line truncated
|
||||
preserveAspectRatio="none"
|
||||
height="40.488308"
|
||||
width="44.256832" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
@@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg height="59.253815" id="Andysvg" version="1.0" width="65.414536" x="0.00000000" y="0.00000000" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs id="defs3">
|
||||
<linearGradient id="linearGradient891" x1="92.437965" x2="27.674332" y1="-3.9104078" y2="91.076988" gradientTransform="matrix(0.8184166,0,0,0.530237,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient905" x1="-77.726181" x2="95.64444" y1="208.43991" y2="11.699047" gradientTransform="matrix(0.7314635,0,0,0.5932693,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<radialGradient cx="60.004654" cy="56.485935" id="radialGradient1132" r="68.589226" gradientTransform="matrix(0.8184166,0,0,0.530237,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop1134" offset="0" style="stop-color:#8bb7df;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop1136" offset="0.7621" style="stop-color:#2a6092;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop1135" offset="1" style="stop-color:#375e82;stop-opacity:1.0000000;"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="linearGradient1140" x1="45.685757" x2="41.96706" y1="110.4447" y2="232.24953" gradientTransform="matrix(1.2743811,0,0,0.3405213,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient1144" x1="31.449743" x2="31.617281" y1="203.49899" y2="251.21892" gradientTransform="matrix(1.4044089,0,0,0.3089952,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop893" offset="0" style="stop-color:#ffffff;stop-opacity:0.00000000;"/>
|
||||
<stop id="stop894" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient1146" x1="39.810947" x2="17.87653" y1="90.197021" y2="113.71949" gradientTransform="matrix(0.8811179,0,0,0.4925045,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop893" offset="0" style="stop-color:#ffffff;stop-opacity:0.00000000;"/>
|
||||
<stop id="stop894" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient1156" x1="25.220816" x2="25.220816" y1="178.48862" y2="234.26866" gradientTransform="matrix(1.6156202,0,0,0.2685999,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient1157" x1="51.46093" x2="-16.224497" y1="269.85831" y2="176.28694" gradientTransform="matrix(1.6156202,0,0,0.2685999,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient2635" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.8821916,0,0,0.491702,-8.9069314,-15.277305)" x1="39.690613" y1="49.507656" x2="70.224304" y2="20.481863">
|
||||
<stop id="stop893" offset="0" style="stop-color:#ffffff;stop-opacity:0.00000000;"/>
|
||||
<stop id="stop894" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient2637" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.8816883,0,0,0.4919824,-10.701684,-14.28309)" x1="35.190361" y1="76.277557" x2="8.3460579" y2="105.42543">
|
||||
<stop id="stop893" offset="0" style="stop-color:#ffffff;stop-opacity:0.00000000;"/>
|
||||
<stop id="stop894" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect height="5.4088969" id="rect1155" style="fill:url(#linearGradient1156);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1157);stroke-width:0.95344429pt" width="38.405891" x="12.350429" y="36.575089"/>
|
||||
<path d="M 0.19287398,54.885213 C -0.67386281,56.46268 1.5579198,59.253939 3.3933636,59.253939 L 62.069027,59.253939 C 63.628857,59.253939 65.976201,57.281205 65.269522,55.925378 L 58.655165,43.235277 C 58.145696,42.257819 57.005954,41.779036 55.881408,41.779036 L 8.9408812,41.779036 C 8.0135624,41.779036 7.0317541,42.438291 6.5938539,43.235277 L 0.19287398,54.885213 z " id="path1139" style="fill:url(#linearGradient1140);fill-opacity:1;fill-rule:evenodd;stroke-width:1.44734821pt"/>
|
||||
<rect height="39.110481" id="rect1137" rx="3.6272225" ry="3.536587" style="fill:url(#linearGradient905);fill-opacity:1;fill-rule:evenodd;stroke-width:1.62826681" width="48.220726" x="7.4732022" y="-0.010164791"/>
|
||||
<rect height="24.74659" id="rect1131" style="fill:url(#radialGradient1132);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient891);stroke-width:0.96503658pt" width="38.813015" x="12.390426" y="6.027596"/>
|
||||
<path d="M 8.5906358,19.782157 L 8.3772707,34.032521 C 8.3432557,36.304242 9.6712558,37.75887 12.004493,37.777143 L 38.568566,37.985175 L 41.128957,32.160207 L 11.471076,31.952177 L 11.257713,19.678141 L 8.5906358,19.782157 z " id="path1145" style="fill:url(#linearGradient1146);fill-opacity:1;fill-rule:evenodd;stroke-width:1pt"/>
|
||||
<path d="M 2.7205883,54.675124 C 2.1113822,55.866786 2.9089235,57.975349 4.9701318,57.975349 L 60.179981,57.975349 C 61.276346,57.975349 62.926231,56.48511 62.429524,55.460899 L 57.78047,45.874547 C 57.422369,45.136152 56.621274,44.774474 55.830865,44.774474 L 8.8693353,44.774468 C 8.2175462,44.774468 7.5274604,45.272486 7.2196723,45.874547 L 2.7205883,54.675124 z " id="path1143" style="fill:url(#linearGradient1144);fill-opacity:1;fill-rule:evenodd;stroke-width:1pt"/>
|
||||
<path d="M 19.010905,6.5904681 L 42.426675,6.2948726 C 46.041292,6.2492425 50.532134,9.8297185 50.532134,13.389152 L 50.532134,24.030571 L 18.710703,23.734975 L 19.010905,6.5904681 z " id="path1147" style="fill:url(#linearGradient2635);fill-opacity:1;fill-rule:evenodd;stroke-width:1pt"/>
|
||||
<rect x="12.664" y="6.294" width="38.092" height="24.48" style="fill: rgb(255, 255, 255);"/>
|
||||
<path d="M 41.29338,29.915511 L 20.310226,29.977799 C 17.071125,29.987414 13.079277,26.740463 13.111035,23.55121 L 13.205982,14.016504 L 41.715336,14.556637 L 41.29338,29.915511 z " id="path1149" style="fill:url(#linearGradient2637);fill-opacity:1;fill-rule:evenodd;stroke-width:1pt"/>
|
||||
<path d="M 22.129 11.703 L 29.893 10.647 L 29.896 18.134 L 22.138 18.178 Z M 29.891 18.997 L 29.895 26.494 L 22.136 25.428 L 22.135 18.948 Z M 30.832 10.507 L 41.126 9.004 L 41.126 18.039 L 30.832 18.12 Z M 41.129 19.067 L 41.126 28.063 L 30.832 26.608 L 30.818 19.05 Z" fill="#0078d6"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.0 KiB |
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg height="59.253815" id="Andysvg" version="1.0" width="65.414536" x="0.00000000" y="0.00000000" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs id="defs3">
|
||||
<linearGradient id="linearGradient891" x1="92.437965" x2="27.674332" y1="-3.9104078" y2="91.076988" gradientTransform="matrix(0.8184166,0,0,0.530237,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient905" x1="-77.726181" x2="95.64444" y1="208.43991" y2="11.699047" gradientTransform="matrix(0.7314635,0,0,0.5932693,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<radialGradient cx="60.004654" cy="56.485935" id="radialGradient1132" r="68.589226" gradientTransform="matrix(0.8184166,0,0,0.530237,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop1134" offset="0" style="stop-color:#8bb7df;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop1136" offset="0.7621" style="stop-color:#2a6092;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop1135" offset="1" style="stop-color:#375e82;stop-opacity:1.0000000;"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="linearGradient1140" x1="45.685757" x2="41.96706" y1="110.4447" y2="232.24953" gradientTransform="matrix(1.2743811,0,0,0.3405213,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient1144" x1="31.449743" x2="31.617281" y1="203.49899" y2="251.21892" gradientTransform="matrix(1.4044089,0,0,0.3089952,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop893" offset="0" style="stop-color:#ffffff;stop-opacity:0.00000000;"/>
|
||||
<stop id="stop894" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient1146" x1="39.810947" x2="17.87653" y1="90.197021" y2="113.71949" gradientTransform="matrix(0.8811179,0,0,0.4925045,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop893" offset="0" style="stop-color:#ffffff;stop-opacity:0.00000000;"/>
|
||||
<stop id="stop894" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient1156" x1="25.220816" x2="25.220816" y1="178.48862" y2="234.26866" gradientTransform="matrix(1.6156202,0,0,0.2685999,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient1157" x1="51.46093" x2="-16.224497" y1="269.85831" y2="176.28694" gradientTransform="matrix(1.6156202,0,0,0.2685999,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient2635" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.8821916,0,0,0.491702,-8.9069314,-15.277305)" x1="39.690613" y1="49.507656" x2="70.224304" y2="20.481863">
|
||||
<stop id="stop893" offset="0" style="stop-color:#ffffff;stop-opacity:0.00000000;"/>
|
||||
<stop id="stop894" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient2637" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.8816883,0,0,0.4919824,-10.701684,-14.28309)" x1="35.190361" y1="76.277557" x2="8.3460579" y2="105.42543">
|
||||
<stop id="stop893" offset="0" style="stop-color:#ffffff;stop-opacity:0.00000000;"/>
|
||||
<stop id="stop894" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect height="5.4088969" id="rect1155" style="fill:url(#linearGradient1156);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1157);stroke-width:0.95344429pt" width="38.405891" x="12.350429" y="36.575089"/>
|
||||
<path d="M 0.19287398,54.885213 C -0.67386281,56.46268 1.5579198,59.253939 3.3933636,59.253939 L 62.069027,59.253939 C 63.628857,59.253939 65.976201,57.281205 65.269522,55.925378 L 58.655165,43.235277 C 58.145696,42.257819 57.005954,41.779036 55.881408,41.779036 L 8.9408812,41.779036 C 8.0135624,41.779036 7.0317541,42.438291 6.5938539,43.235277 L 0.19287398,54.885213 z " id="path1139" style="fill:url(#linearGradient1140);fill-opacity:1;fill-rule:evenodd;stroke-width:1.44734821pt"/>
|
||||
<rect height="39.110481" id="rect1137" rx="3.6272225" ry="3.536587" style="fill:url(#linearGradient905);fill-opacity:1;fill-rule:evenodd;stroke-width:1.62826681" width="48.220726" x="7.4732022" y="-0.010164791"/>
|
||||
<rect height="24.74659" id="rect1131" style="fill:url(#radialGradient1132);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient891);stroke-width:0.96503658pt" width="38.813015" x="12.390426" y="6.027596"/>
|
||||
<path d="M 8.5906358,19.782157 L 8.3772707,34.032521 C 8.3432557,36.304242 9.6712558,37.75887 12.004493,37.777143 L 38.568566,37.985175 L 41.128957,32.160207 L 11.471076,31.952177 L 11.257713,19.678141 L 8.5906358,19.782157 z " id="path1145" style="fill:url(#linearGradient1146);fill-opacity:1;fill-rule:evenodd;stroke-width:1pt"/>
|
||||
<path d="M 2.7205883,54.675124 C 2.1113822,55.866786 2.9089235,57.975349 4.9701318,57.975349 L 60.179981,57.975349 C 61.276346,57.975349 62.926231,56.48511 62.429524,55.460899 L 57.78047,45.874547 C 57.422369,45.136152 56.621274,44.774474 55.830865,44.774474 L 8.8693353,44.774468 C 8.2175462,44.774468 7.5274604,45.272486 7.2196723,45.874547 L 2.7205883,54.675124 z " id="path1143" style="fill:url(#linearGradient1144);fill-opacity:1;fill-rule:evenodd;stroke-width:1pt"/>
|
||||
<path d="M 19.010905,6.5904681 L 42.426675,6.2948726 C 46.041292,6.2492425 50.532134,9.8297185 50.532134,13.389152 L 50.532134,24.030571 L 18.710703,23.734975 L 19.010905,6.5904681 z " id="path1147" style="fill:url(#linearGradient2635);fill-opacity:1;fill-rule:evenodd;stroke-width:1pt"/>
|
||||
<rect x="12.664" y="6.294" width="38.092" height="24.48"/>
|
||||
<path d="M 41.29338,29.915511 L 20.310226,29.977799 C 17.071125,29.987414 13.079277,26.740463 13.111035,23.55121 L 13.205982,14.016504 L 41.715336,14.556637 L 41.29338,29.915511 z " id="path1149" style="fill:url(#linearGradient2637);fill-opacity:1;fill-rule:evenodd;stroke-width:1pt"/>
|
||||
<path d="M 43.036 11.636 C 38.773 13.399 36.722 12.408 34.875 11.164 L 32.77 18.46 C 34.617 19.71 36.846 20.739 40.936 18.908 L 43.036 11.636 Z" style="fill:#91c300;"/>
|
||||
<path style="fill:#00b4f1;" d="M 29.175 26.303 C 27.323 25.056 25.309 24.031 21.036 25.798 L 23.128 18.489 C 27.403 16.721 29.457 17.721 31.307 18.975 L 29.175 26.303 Z"/>
|
||||
<path d="M 31.663 17.656 C 30.548 16.906 29.348 16.205 27.646 16.192 C 26.522 16.183 25.185 16.502 23.486 17.205 L 25.591 9.913 C 29.863 8.147 31.915 9.147 33.763 10.4 L 31.663 17.656 Z" style="fill:#f8682c;"/>
|
||||
<path d="M 32.417 19.679 C 34.266 20.924 36.321 21.916 40.589 20.152 L 38.485 27.419 C 34.216 29.184 32.166 28.184 30.318 26.932 L 32.417 19.679 Z" style="fill:#ffc300;"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.4 KiB |
@@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg height="59.253815" id="Andysvg" version="1.0" width="65.414536" x="0.00000000" y="0.00000000" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs id="defs3">
|
||||
<linearGradient id="linearGradient891" x1="92.437965" x2="27.674332" y1="-3.9104078" y2="91.076988" gradientTransform="matrix(0.8184166,0,0,0.530237,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient905" x1="-77.726181" x2="95.64444" y1="208.43991" y2="11.699047" gradientTransform="matrix(0.7314635,0,0,0.5932693,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<radialGradient cx="60.004654" cy="56.485935" id="radialGradient1132" r="68.589226" gradientTransform="matrix(0.8184166,0,0,0.530237,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop1134" offset="0" style="stop-color:#8bb7df;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop1136" offset="0.7621" style="stop-color:#2a6092;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop1135" offset="1" style="stop-color:#375e82;stop-opacity:1.0000000;"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="linearGradient1140" x1="45.685757" x2="41.96706" y1="110.4447" y2="232.24953" gradientTransform="matrix(1.2743811,0,0,0.3405213,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient1144" x1="31.449743" x2="31.617281" y1="203.49899" y2="251.21892" gradientTransform="matrix(1.4044089,0,0,0.3089952,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop893" offset="0" style="stop-color:#ffffff;stop-opacity:0.00000000;"/>
|
||||
<stop id="stop894" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient1146" x1="39.810947" x2="17.87653" y1="90.197021" y2="113.71949" gradientTransform="matrix(0.8811179,0,0,0.4925045,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop893" offset="0" style="stop-color:#ffffff;stop-opacity:0.00000000;"/>
|
||||
<stop id="stop894" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient1156" x1="25.220816" x2="25.220816" y1="178.48862" y2="234.26866" gradientTransform="matrix(1.6156202,0,0,0.2685999,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient1157" x1="51.46093" x2="-16.224497" y1="269.85831" y2="176.28694" gradientTransform="matrix(1.6156202,0,0,0.2685999,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
|
||||
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
|
||||
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient2635" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.8821916,0,0,0.491702,-8.9069314,-15.277305)" x1="39.690613" y1="49.507656" x2="70.224304" y2="20.481863">
|
||||
<stop id="stop893" offset="0" style="stop-color:#ffffff;stop-opacity:0.00000000;"/>
|
||||
<stop id="stop894" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient2637" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.8816883,0,0,0.4919824,-10.701684,-14.28309)" x1="35.190361" y1="76.277557" x2="8.3460579" y2="105.42543">
|
||||
<stop id="stop893" offset="0" style="stop-color:#ffffff;stop-opacity:0.00000000;"/>
|
||||
<stop id="stop894" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect height="5.4088969" id="rect1155" style="fill:url(#linearGradient1156);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1157);stroke-width:0.95344429pt" width="38.405891" x="12.350429" y="36.575089"/>
|
||||
<path d="M 0.19287398,54.885213 C -0.67386281,56.46268 1.5579198,59.253939 3.3933636,59.253939 L 62.069027,59.253939 C 63.628857,59.253939 65.976201,57.281205 65.269522,55.925378 L 58.655165,43.235277 C 58.145696,42.257819 57.005954,41.779036 55.881408,41.779036 L 8.9408812,41.779036 C 8.0135624,41.779036 7.0317541,42.438291 6.5938539,43.235277 L 0.19287398,54.885213 z " id="path1139" style="fill:url(#linearGradient1140);fill-opacity:1;fill-rule:evenodd;stroke-width:1.44734821pt"/>
|
||||
<rect height="39.110481" id="rect1137" rx="3.6272225" ry="3.536587" style="fill:url(#linearGradient905);fill-opacity:1;fill-rule:evenodd;stroke-width:1.62826681" width="48.220726" x="7.4732022" y="-0.010164791"/>
|
||||
<rect height="24.74659" id="rect1131" style="fill:url(#radialGradient1132);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient891);stroke-width:0.96503658pt" width="38.813015" x="12.390426" y="6.027596"/>
|
||||
<path d="M 8.5906358,19.782157 L 8.3772707,34.032521 C 8.3432557,36.304242 9.6712558,37.75887 12.004493,37.777143 L 38.568566,37.985175 L 41.128957,32.160207 L 11.471076,31.952177 L 11.257713,19.678141 L 8.5906358,19.782157 z " id="path1145" style="fill:url(#linearGradient1146);fill-opacity:1;fill-rule:evenodd;stroke-width:1pt"/>
|
||||
<path d="M 2.7205883,54.675124 C 2.1113822,55.866786 2.9089235,57.975349 4.9701318,57.975349 L 60.179981,57.975349 C 61.276346,57.975349 62.926231,56.48511 62.429524,55.460899 L 57.78047,45.874547 C 57.422369,45.136152 56.621274,44.774474 55.830865,44.774474 L 8.8693353,44.774468 C 8.2175462,44.774468 7.5274604,45.272486 7.2196723,45.874547 L 2.7205883,54.675124 z " id="path1143" style="fill:url(#linearGradient1144);fill-opacity:1;fill-rule:evenodd;stroke-width:1pt"/>
|
||||
<path d="M 19.010905,6.5904681 L 42.426675,6.2948726 C 46.041292,6.2492425 50.532134,9.8297185 50.532134,13.389152 L 50.532134,24.030571 L 18.710703,23.734975 L 19.010905,6.5904681 z " id="path1147" style="fill:url(#linearGradient2635);fill-opacity:1;fill-rule:evenodd;stroke-width:1pt"/>
|
||||
<rect x="12.664" y="6.294" width="38.092" height="24.48" style="fill: rgb(255, 255, 255);"/>
|
||||
<path d="M 41.29338,29.915511 L 20.310226,29.977799 C 17.071125,29.987414 13.079277,26.740463 13.111035,23.55121 L 13.205982,14.016504 L 41.715336,14.556637 L 41.29338,29.915511 z " id="path1149" style="fill:url(#linearGradient2637);fill-opacity:1;fill-rule:evenodd;stroke-width:1pt"/>
|
||||
<path style="fill:#00adef;" d="M 22.129 11.699 L 29.894 10.641 L 29.897 18.13 L 22.136 18.175 Z M 29.89 18.993 L 29.896 26.49 L 22.135 25.423 L 22.135 18.944 Z M 30.832 10.503 L 41.127 9 L 41.127 18.035 L 30.832 18.117 Z M 41.129 19.064 L 41.127 28.059 L 30.832 26.606 L 30.817 19.047 Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.0 KiB |
@@ -0,0 +1,213 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg1998"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
width="66.000435"
|
||||
height="44.5159"
|
||||
version="1.0"
|
||||
sodipodi:docname="router-docker.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
sodipodi:modified="true">
|
||||
<metadata
|
||||
id="metadata2003">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jeremy Grossmann</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>GNS-3</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2001">
|
||||
<linearGradient
|
||||
id="linearGradient9312">
|
||||
<stop
|
||||
style="stop-color:#3c8c8c;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop9314" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.94117647;"
|
||||
offset="1"
|
||||
id="stop9316" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11918"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="matrix(1.1,0,0,1.1,1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11921"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11936"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient9312"
|
||||
id="linearGradient2216"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(15.252829,0,0,14.082619,53.467529,3.4188377)"
|
||||
x1="-1.0929121"
|
||||
y1="0.63145506"
|
||||
x2="-4.5832458"
|
||||
y2="0.070047863" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="979"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="7.8958335"
|
||||
inkscape:cx="27.334225"
|
||||
inkscape:cy="24.784192"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="31"
|
||||
inkscape:current-layer="g4160"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<rect
|
||||
style="opacity:1;fill:#000000;fill-opacity:0.39215687;fill-rule:evenodd;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect4558"
|
||||
width="64.552505"
|
||||
height="41.53862"
|
||||
x="1.4479325"
|
||||
y="2.9772801"
|
||||
ry="11.631706"
|
||||
rx="32.212925"
|
||||
inkscape:transform-center-x="8.4568136" />
|
||||
<rect
|
||||
style="opacity:1;fill:#3c8c8c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.015;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect9971"
|
||||
width="64.499474"
|
||||
height="42.154343"
|
||||
x="0.0625"
|
||||
y="0.18084908"
|
||||
ry="11.557454"
|
||||
rx="32.249737"
|
||||
inkscape:transform-center-x="8.2952569" />
|
||||
<g
|
||||
id="g4160">
|
||||
<path
|
||||
id="path4815"
|
||||
d="M 64.514069,11.541297 L 64.457031,10.955643 L 64.342949,10.36999 L 64.152814,9.8038604 L 63.867612,9.2182077 L 63.487345,8.6520765 L 63.050034,8.0859452 L 62.517657,7.5393369 L 61.909226,7.0122499 L 61.224742,6.4851607 L 60.464203,5.9775955 L 59.646626,5.4700289 L 58.752993,4.9819859 L 57.783307,4.4939413 L 56.75658,4.0644625 L 55.6538,3.6349838 L 54.493981,3.2055052 L 53.296132,2.8150692 L 52.022232,2.4636777 L 50.710303,2.1122862 L 49.341334,1.7999375 L 47.934339,1.5071117 L 46.489316,1.2338059 L 45.006267,0.99954576 L 43.504204,0.76528425 L 41.964114,0.58958842 L 40.385997,0.43341443 L 38.788867,0.29676153 L 37.191738,0.19915292 L 35.575597,0.12106555 L 33.940437,0.06250017 L 32.324296,0.06250017 L 32.324296,0.06250017 L 30.689136,0.06250017 L 29.053981,0.12106555 L 27.45685,0.19915292 L 25.840705,0.29676153 L 24.243576,0.43341443 L 22.684472,0.58958842 L 21.125372,0.76528425 L 19.623307,0.99954576 L 18.140258,1.2338059 L 16.695234,1.5071117 L 15.28824,1.7999375 L 13.919273,2.1122862 L 12.607342,2.4636777 L 11.333442,2.8150692 L 10.135592,3.2055052 L 8.9757693,3.6349838 L 7.8729941,4.0644625 L 6.8462664,4.4939413 L 5.8765785,4.9819859 L 4.9829488,5.4700289 L 4.1653682,5.9775955 L 3.4048335,6.4851607 L 2.7203448,7.0122499 L 2.1309311,7.5393369 L 1.5795405,8.0859452 L 1.1422325,8.6520765 L 0.76195982,9.2182077 L 0.47676065,9.8038604 L 0.26760898,10.36999 L 0.15353084,10.955643 L 0.11550327,11.541297 L 0.11550327,11.541297 L 0.15353084,12.12695 L 0.26760898,12.693081 L 0.47676065,13.278734 L 0.76195982,13.825344 L 1.1422325,14.410996 L 1.5795405,14.957605 L 2.1309311,15.523736 L 2.7203448,16.070348 L 3.4048335,16.597435 L 4.1653682,17.085479 L 4.9829488,17.593043 L 5.8765785,18.100608 L 6.8462664,18.549609 L 7.8729941,18.998611 L 8.9757693,19.447613 L 10.135592,19.857571 L 11.333442,20.248007 L 12.607342,20.599396 L 13.919273,20.950787 L 15.28824,21.263135 L 16.695234,21.575486 L 18.140258,21.829265 L 19.623307,22.083049 L 21.125372,22.297787 L 22.684472,22.473485 L 24.243576,22.629661 L 25.840705,22.766312 L 27.45685,22.863921 L 29.053981,22.942009 L 30.689136,23.000574 L 32.324296,23.000574 L 32.324296,23.000574 L 33.940437,23.000574 L 35.575597,22.942009 L 37.191738,22.863921 L 38.788867,22.766312 L 40.385997,22.629661 L 41.964114,22.473485 L 43.504204,22.297787 L 45.006267,22.083049 L 46.489316,21.829265 L 47.934339,21.575486 L 49.341334,21.263135 L 50.710303,20.950787 L 52.022232,20.599396 L 53.296132,20.248007 L 54.493981,19.857571 L 55.6538,19.447613 L 56.75658,18.998611 L 57.783307,18.549609 L 58.752993,18.100608 L 59.646626,17.593043 L 60.464203,17.085479 L 61.224742,16.597435 L 61.909226,16.070348 L 62.517657,15.523736 L 63.050034,14.957605 L 63.487345,14.410996 L 63.867612,13.825344 L 64.152814,13.278734 L 64.342949,12.693081 L 64.457031,12.12695 L 64.514069,11.541297"
|
||||
style="fill:url(#linearGradient2216);fill-opacity:1;stroke:none;stroke-width:0.01928605;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
id="path4819"
|
||||
d="M 33.023738,8.6936939 L 37.664889,10.327433 L 48.909313,5.4458969 L 53.946665,7.0599533 L 51.229891,3.0248142 L 38.061087,3.0248142 L 43.475766,4.225514 L 33.023738,8.6936939"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4821"
|
||||
d="M 31.08049,13.161874 L 26.439334,11.528132 L 15.591104,16.429352 L 10.176425,14.775929 L 12.874332,19.244109 L 26.439334,19.244109 L 20.628458,17.630052 L 31.08049,13.161874"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4823"
|
||||
d="M 11.327278,4.225514 L 15.968435,2.611458 L 27.212859,7.0599533 L 32.25021,5.8592533 L 29.552303,9.8943939 L 16.364632,9.8943939 L 21.779313,8.6936939 L 11.327278,4.225514"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4825"
|
||||
d="M 53.154272,18.023723 L 48.513117,19.657467 L 37.664889,14.775929 L 32.25021,16.429352 L 34.966985,12.33516 L 48.513117,12.33516 L 42.70224,13.555544 L 53.154272,18.023723"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4827"
|
||||
d="M 33.419936,9.1070493 L 38.061087,10.721105 L 49.286643,5.8592533 L 54.323994,7.4929926 L 51.60722,3.4184854 L 38.438415,3.4184854 L 43.871962,4.6191872 L 33.419936,9.1070493"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4829"
|
||||
d="M 31.476681,13.555544 L 26.816665,11.941487 L 15.968435,16.803341 L 10.553753,15.189284 L 13.25166,19.657467 L 26.816665,19.657467 L 21.005786,18.023723 L 31.476681,13.555544"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4831"
|
||||
d="M 11.723476,4.6191872 L 16.364632,3.0248142 L 27.609055,7.4929926 L 32.627541,6.2529266 L 29.929634,10.327433 L 16.741963,10.327433 L 22.175509,9.1070493 L 11.723476,4.6191872"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4833"
|
||||
d="M 53.531602,18.43708 L 48.909313,20.070823 L 38.061087,15.189284 L 32.627541,16.803341 L 35.344315,12.7682 L 48.909313,12.7682 L 43.098437,13.9689 L 53.531602,18.43708"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<image
|
||||
y="23.289587"
|
||||
x="15.660397"
|
||||
id="image4051"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcsAAAEFCAYAAACM4MyDAAAABHNCSVQICAgIfAhkiAAAIABJREFU eJzs3XecHMd54P3fU92TNmB3ASxyBhjBHAFSAQokxQBIJAhlW7KlczpbOtqy7LMtW/b5LNv3OsmW rdPZsqyTT5JBUhTBIFIUBYlmJkiIOYAkSCIDu4sNE7u7nvePnl3sAjObw+yivh/hI7DD9DOFnn66 qqurBMdxJsgXzWVX71wZeZ6Z6khGS62VqOQf3HHf1s6pjsVxppI/1QE4zky1/qrnmtX3njDQMNWx jJpnMHX2M8A/TXUojjOVXLJ0nAkShaF4SeOBTOvfmVFkqmNwnKk2bZuHHMdxHGeyuGTpOI7jOENw ydJxHMdxhjCtn6U4zrSlCuhUR9GPgLhHk45TjUuWjjMF1PcprjobaqTvjNfVTuLA6yCusclxKnHJ 0nGmgCbStN/wGWqidmk86p5+gObvfxV8lywdpxKXLB1nioiNpjoEABQpNws7jlONS5aOM9VshN9+ EFTRZIqwuRUAv+MQEpRAhHDOgriJNCjidxwCEWxDMzbTAKr47fvj/Y1H1LIANYLX1Y4pZAGIZs1B U5n4WEf2xfvXzSKqb5rKb+4404ZLlo4zxUw+S+u//hESliiuOIvDn/gCopbmO75G6q1XsMkUB3/9 b9FUhuT+XbT+6/9A/SSdV/4c2YuvQIISrd/4EyQoEjbN5dCv/AX4GRofuI36nT8GhPYtnyV/6oV4 uW7m/9Nvo4kU3euvpeuKj4G1U10EjlPzXLJ0nKkmgnp+nLRMv2eGxkM9D4x33LZevL0pdw4S4u2s P3BbY+LtyvsN3N8beCzHcQblfi2O4ziOMwSXLB3HcRxnCC5ZOo7jOM4QXLJ0HMdxnCG4ZOk4juM4 Q3DJ0nEcx3GG4JKl4ziO4wzBJUvHcRzHGYJLlo7jOI4zBJcsHcdxHGcILlk6juM4zhBcsnQcx3Gc Ibhk6TiO4zhDcMnScRzHcYbgkqXjOI7jDMElS8dxHMcZgkuWjuM4jjMElywdx3EcZwguWTqO4zjO EFyydBzHcZwhuGTpOI7jOENwydJxHMdxhuCSpeM4juMMwSVLx3EcxxmCS5aO4ziOMwSXLB3HcRxn CP5UB+A4Jz1VTDGPhCUkKPUtlqCIFPOgemxbG2GKeTSyEIXl/cEUCxAUkVLh2P5hgCnm+/brfyy1 FgmDif5mjjNjuGTpOFPMpus48pHfBlU03VBOmErnFT+PFLNgDJpIAhDMX8XhT34RNYZw9kIA1E9w 5EO/FSdVPwEIhAE9664ht3YdAOG8ZYgqNtPQt3/U1BonXHENTI4zFJcsnRNs2LDB707Nbk2nQpnq WKazIn6jpzp0GXo+xZVnl/9DEbUAlBavAuLde5dpup7CmvPKmyqCgjEUV57Vb//4M4LWxdC6ZMD+ eP6x/cvbDiNCxznpuWTpnCCfaT016evDVpOJqY5lOkugoJpGKmcj9Sr//LTissq1v8rbjnB/44Fx tcuZ5LwPfKB55223HZ3qOGYSlyydE1jfikFSQGqqY5n2qiRKCYo03/V1Kqe2yaUIfsfBOGk6095l 115/lkbePeuv2/ylh++45SvUwkk2A7hk6ThTQKKQuqcfmOowBnK1y2nv8k2bFlk124BFiPz9+o2b zy5RumnHtm25qY5tunO/DsdxnBngwo0b6yKbvB1kxbGl8ksJkvdfevUNS6YorBnDJUvHcZzpzyRJ /7sIFx6/QpBLjW8eXbfphsunIrCZwiVLZ2RUa+/PiUFOfUxDxliDZelMW5ddd+OXQD8wyCaLULl3 3XWb/8ukBTXDuGeWzogEmXqysxdMdRhlQl3HIZK5rgEdaTSRprR4DTXRr0EMXsfBuANNv/cZ1Rg6 F6yYurgGEJK5Luo6DlXtkOTUrkuv2/xZi/62MPi/nSB1Knx13cYbT0t3H/nd7du3h5MU4ozgkqUz It2tS3npPR+F3vf2ppLns+antzDv5R2oHOvJGc2aTduHP4dEU38tUD9J409vYdb2m/sGFgAI/RQv XvnzaC3U6IxH6ytPcspPbq76OotTmy7duOVtRvXPGSpTlkncmvhbhca5Ky/ftOmTD95+e/cEhzhj uGZYZxRq4AI/lFpIQsCgZVUrMdZKHM6IXHr11bMM9hsI6ZHuK3CD1cT286/e0joRsc1E7jbSGTVj IzLZThQhSGUIkmlElUy2EwAVIV83C0RIFrL4YYCoJV/fjDUGsRGZXBcoRIkkxXQDoKTyPXhhCAL5 ulmoMfhBiVQhC0AxU0/oJweJrJ8oxOvuAMAm09i6RgTFdHcgUQQiRLPmgAhSzGPy3aBK1Dg7HjpO Fa+rDVRRP0HU0AwIXvZoPCydQNTQAp4PYYjX3QZisHWNaHJ41zBRSybbBapYP0Eh0wBAOt+NiUJA yNU3gQheFJLOdaEIpXQdYSJ1XJkb8vWNgJAs5vBLxXKZNRD5CUQtdT1H43+zZJoglRleOTo1x/Pr /1RhddUNwqA8/GE1ckHK0wcvvvL973n83u+/Nf4RziwuWTqjlsl2ctG3/owwlWb3RVex97x34hXz nHvrl5EopFjfxFNbbsIan6VP/JD5rzxJopDjiY//PtnGFlLdRznvlr9F1HJk1bm8dOXPQVhi9QPf o2XPy1jPZ8eHP08plWHOmy9wyv3fQVR58apPcHj5GcOK0W/bx7x//gMAcue+k47rfw2KBeZ+68/x Og9DIsmB3/gymkxR9+yDNP3gm0hY5PAvfIHSsrOQoMi8f/59KBUJFq/h8Kf+BBVD83f+D+nXnkE9 jyO/8EWCectIHHmDef/037HpOjqv/RS5c98xvBgLOc695e8wUcDRRWt4buMvg1pOuf+7zDr4BpGf 5ImPfJ4wkaLp8B7O+v5XiPwkr627jv1r1+OFAed87+8xYUCxoZknb7wJTSRZ9uD3mf/iY4Dwwns/ RvuKM0nlslz4/75E5KfYc87beWPdtWBroEndGZFLrrt+vcKvVVuvxiP79utpePCW+Dl0tcExhFP8 lP/jS6++YcOjd9+6Z8ICngFcM6wzBoL1PKzx+v0YBWs8tPynjzGo8bCe13/3vu3UDOz8Yk35c3uX icT7DzjWcEIU1PPjZ3H9P8/zwPNR49P3tEcM6nnl53bHvo8aHzwv/tP/+/R+bu+2InEN0/NHHGPv 91U5sRz0uJF1rPHjZb3HGFCOJ5aZnvDv07u/+/lPT180Rry/BCoPuWQt3e/5BLlLN9L+kT/ApuuH aGqX1eKb+y9+//uXTki4M4T7tTiO40wj6zY9+wFUK78zaS2F09dROO1SJCgSti6j4yN/GM9QM0gL gsApvvV/fP41NyyfqLinO5csHcdxpostWzyxfEGkctOFrZtFz9tu7JtlRlSx9U0cvfF3CBatgSga 5MNldcozPz7/ik2LJiL06c4lS8dxnGliXd5eg3BexZVRRPbSTdi6phNWaTJNx+bfprTqnGOThlcg sDKdTt5x9rXXtoxb0DOES5aO4zjThchvVFsVzV5A/qx3IFq59ijA0U2fpbTiLIiCwY5yfoOkv82W LW4amn5csnQcx5kG1l+z5WyBd1dcGZbIrnt/eeaY6p3LxEYcvf63KK0YvIaJyFXri/p3Ywx5RnHJ 0nEcZxpQTz9GlR6wtqmV4poLETvYM8mYRCFHP/DfKK0+HwbbXvm1dRs33zTaeGcalywdx3Fq3IoN G9Kobqq4MiiSO+8K1BtsAIKBxFo6r/lVSsvWDpYwRZD/edmmG4b3wvAM55Kl4zhOjZtXN+csEak4 EocmUhTOWI8M/hzyRCJ0Xf3LhPNWDDbWc0bVfPviK907mC5ZOo7j1Dhj+EjFFTYiWHYmtnH2qD5X k2mObvoMNjNrsIELFnmpxL9s2LDhpB7xzSVLx3GcGrZhwwZfRCo2hUoYkDv33UipMOrPt3WNHH3/ fxt0lB+BK4oNc07q55cuWTqO49SwbNOChcD5ldbZTCPhwjVj+nxRJZy/nM6rfykefL36ln9y6bUf uHBMB5vGXLJ0HMepYSYM3kmlXrDWEixYia2bNeZjSBRQOH09uQuurP4OppAW8f/3mquvTo35gNOQ S5aO4zg1zBjeXnGFjeLXP8LSOBxFMGGJ7Ds+RLBgTdVxZEW4cG6i/rPjcMBpxyVLx3GcmvVFA3JB xVV+gtLCNch4Tt6tStc1v4z6yarPMMXy++ve9+EV43fQ6cElS8dxnBp14cYdaVU9s9I6TaSIZo// mOdR42y63/2x6iP8CLNIhH857geucS5ZOo7j1KhElDwbkfQJK1SJWhai/vi/zSGqFE5fT7DirMF6 yG6+dOOWt437wWuYS5aO4zg1SjxdLZWu02opLVqN2HFsgu1/XFW63vVx1K88KpCAMap/djINtu6S peM4To1SMadWXCFC1LIQmJhkCRA1zyd34VXVh8MT3rYub6+ZsABqjEuWjuM4tUpZXXmFIWqaO6GH FhuRu+BqbP2J82P2boLI758stUuXLB3HcWqUoCsrLVcjRA1zJvz4mkjSc9nmqiMECVyyvsBJ8ezS JUvHcZzatbjiUjHYhpYJP7jYiMLaywnnLqnW2UdAb2KwSTRnCJcsHcdxatDaLVuSQGOldbZuFsgk 5SeF7PrrkaBYbYtrLrly44rJCWbquGTpOI5Tg5o6w2YgWWmdbWietGQpUUjh1IuJWhZUq10mTDr1 i5MSzBRyydJxHKcWedoIUvFFSjX+5DV8igBK9qL3VR83VvnYTB8z1iVLx3GcGhQIjUCFZKnYukYm 8/It1lI89RI0VVd5PaxsNfUzekYSlywdx3FqkBgZ5CXKye9PY9MNFFedV/W9SzV64ySHNKlcsnRG TVD8UhG/VET6fkCKVyrGf8JS3zvTJgLine truncated
|
||||
height="19.227247"
|
||||
width="36.265862" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 45 KiB |
@@ -0,0 +1,206 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg1998"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
width="66.000435"
|
||||
height="44.5159"
|
||||
version="1.0"
|
||||
sodipodi:docname="router-red.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
sodipodi:modified="true">
|
||||
<metadata
|
||||
id="metadata2003">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jeremy Grossmann</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>GNS-3</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2001">
|
||||
<linearGradient
|
||||
id="linearGradient9312">
|
||||
<stop
|
||||
style="stop-color:#008f00;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop9314" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.94117647;"
|
||||
offset="1"
|
||||
id="stop9316" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11918"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="matrix(1.1,0,0,1.1,1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11921"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11936"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient9312"
|
||||
id="linearGradient2216"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(15.252829,0,0,14.082619,53.467529,3.4188377)"
|
||||
x1="-1.0929121"
|
||||
y1="0.63145506"
|
||||
x2="-4.5832458"
|
||||
y2="0.070047863" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="949"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="7.8958335"
|
||||
inkscape:cx="27.967059"
|
||||
inkscape:cy="24.784192"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="31"
|
||||
inkscape:current-layer="svg1998"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="1" />
|
||||
<rect
|
||||
style="opacity:1;fill:#000000;fill-opacity:0.39215687;fill-rule:evenodd;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect4558"
|
||||
width="64.552505"
|
||||
height="41.53862"
|
||||
x="1.4479325"
|
||||
y="2.9772801"
|
||||
ry="11.631706"
|
||||
rx="32.212925"
|
||||
inkscape:transform-center-x="8.4568136" />
|
||||
<rect
|
||||
style="opacity:1;fill:#0d8800;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.01500000000000000;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect9971"
|
||||
width="64.499474"
|
||||
height="42.154343"
|
||||
x="0.0625"
|
||||
y="0.18084908"
|
||||
ry="11.557454"
|
||||
rx="32.249737"
|
||||
inkscape:transform-center-x="8.2952569" />
|
||||
<g
|
||||
id="g4160">
|
||||
<path
|
||||
id="path4815"
|
||||
d="M 64.514069,11.541297 L 64.457031,10.955643 L 64.342949,10.36999 L 64.152814,9.8038604 L 63.867612,9.2182077 L 63.487345,8.6520765 L 63.050034,8.0859452 L 62.517657,7.5393369 L 61.909226,7.0122499 L 61.224742,6.4851607 L 60.464203,5.9775955 L 59.646626,5.4700289 L 58.752993,4.9819859 L 57.783307,4.4939413 L 56.75658,4.0644625 L 55.6538,3.6349838 L 54.493981,3.2055052 L 53.296132,2.8150692 L 52.022232,2.4636777 L 50.710303,2.1122862 L 49.341334,1.7999375 L 47.934339,1.5071117 L 46.489316,1.2338059 L 45.006267,0.99954576 L 43.504204,0.76528425 L 41.964114,0.58958842 L 40.385997,0.43341443 L 38.788867,0.29676153 L 37.191738,0.19915292 L 35.575597,0.12106555 L 33.940437,0.06250017 L 32.324296,0.06250017 L 32.324296,0.06250017 L 30.689136,0.06250017 L 29.053981,0.12106555 L 27.45685,0.19915292 L 25.840705,0.29676153 L 24.243576,0.43341443 L 22.684472,0.58958842 L 21.125372,0.76528425 L 19.623307,0.99954576 L 18.140258,1.2338059 L 16.695234,1.5071117 L 15.28824,1.7999375 L 13.919273,2.1122862 L 12.607342,2.4636777 L 11.333442,2.8150692 L 10.135592,3.2055052 L 8.9757693,3.6349838 L 7.8729941,4.0644625 L 6.8462664,4.4939413 L 5.8765785,4.9819859 L 4.9829488,5.4700289 L 4.1653682,5.9775955 L 3.4048335,6.4851607 L 2.7203448,7.0122499 L 2.1309311,7.5393369 L 1.5795405,8.0859452 L 1.1422325,8.6520765 L 0.76195982,9.2182077 L 0.47676065,9.8038604 L 0.26760898,10.36999 L 0.15353084,10.955643 L 0.11550327,11.541297 L 0.11550327,11.541297 L 0.15353084,12.12695 L 0.26760898,12.693081 L 0.47676065,13.278734 L 0.76195982,13.825344 L 1.1422325,14.410996 L 1.5795405,14.957605 L 2.1309311,15.523736 L 2.7203448,16.070348 L 3.4048335,16.597435 L 4.1653682,17.085479 L 4.9829488,17.593043 L 5.8765785,18.100608 L 6.8462664,18.549609 L 7.8729941,18.998611 L 8.9757693,19.447613 L 10.135592,19.857571 L 11.333442,20.248007 L 12.607342,20.599396 L 13.919273,20.950787 L 15.28824,21.263135 L 16.695234,21.575486 L 18.140258,21.829265 L 19.623307,22.083049 L 21.125372,22.297787 L 22.684472,22.473485 L 24.243576,22.629661 L 25.840705,22.766312 L 27.45685,22.863921 L 29.053981,22.942009 L 30.689136,23.000574 L 32.324296,23.000574 L 32.324296,23.000574 L 33.940437,23.000574 L 35.575597,22.942009 L 37.191738,22.863921 L 38.788867,22.766312 L 40.385997,22.629661 L 41.964114,22.473485 L 43.504204,22.297787 L 45.006267,22.083049 L 46.489316,21.829265 L 47.934339,21.575486 L 49.341334,21.263135 L 50.710303,20.950787 L 52.022232,20.599396 L 53.296132,20.248007 L 54.493981,19.857571 L 55.6538,19.447613 L 56.75658,18.998611 L 57.783307,18.549609 L 58.752993,18.100608 L 59.646626,17.593043 L 60.464203,17.085479 L 61.224742,16.597435 L 61.909226,16.070348 L 62.517657,15.523736 L 63.050034,14.957605 L 63.487345,14.410996 L 63.867612,13.825344 L 64.152814,13.278734 L 64.342949,12.693081 L 64.457031,12.12695 L 64.514069,11.541297"
|
||||
style="fill:url(#linearGradient2216);fill-opacity:1;stroke:none;stroke-width:0.01928605;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
id="path4819"
|
||||
d="M 33.023738,8.6936939 L 37.664889,10.327433 L 48.909313,5.4458969 L 53.946665,7.0599533 L 51.229891,3.0248142 L 38.061087,3.0248142 L 43.475766,4.225514 L 33.023738,8.6936939"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4821"
|
||||
d="M 31.08049,13.161874 L 26.439334,11.528132 L 15.591104,16.429352 L 10.176425,14.775929 L 12.874332,19.244109 L 26.439334,19.244109 L 20.628458,17.630052 L 31.08049,13.161874"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4823"
|
||||
d="M 11.327278,4.225514 L 15.968435,2.611458 L 27.212859,7.0599533 L 32.25021,5.8592533 L 29.552303,9.8943939 L 16.364632,9.8943939 L 21.779313,8.6936939 L 11.327278,4.225514"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4825"
|
||||
d="M 53.154272,18.023723 L 48.513117,19.657467 L 37.664889,14.775929 L 32.25021,16.429352 L 34.966985,12.33516 L 48.513117,12.33516 L 42.70224,13.555544 L 53.154272,18.023723"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4827"
|
||||
d="M 33.419936,9.1070493 L 38.061087,10.721105 L 49.286643,5.8592533 L 54.323994,7.4929926 L 51.60722,3.4184854 L 38.438415,3.4184854 L 43.871962,4.6191872 L 33.419936,9.1070493"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4829"
|
||||
d="M 31.476681,13.555544 L 26.816665,11.941487 L 15.968435,16.803341 L 10.553753,15.189284 L 13.25166,19.657467 L 26.816665,19.657467 L 21.005786,18.023723 L 31.476681,13.555544"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4831"
|
||||
d="M 11.723476,4.6191872 L 16.364632,3.0248142 L 27.609055,7.4929926 L 32.627541,6.2529266 L 29.929634,10.327433 L 16.741963,10.327433 L 22.175509,9.1070493 L 11.723476,4.6191872"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4833"
|
||||
d="M 53.531602,18.43708 L 48.909313,20.070823 L 38.061087,15.189284 L 32.627541,16.803341 L 35.344315,12.7682 L 48.909313,12.7682 L 43.098437,13.9689 L 53.531602,18.43708"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 11 KiB |
@@ -0,0 +1,665 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg1998"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
width="66.000435"
|
||||
height="44.5159"
|
||||
version="1.0"
|
||||
sodipodi:docname="router-green-docker.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
sodipodi:modified="true">
|
||||
<metadata
|
||||
id="metadata2003">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jeremy Grossmann</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>GNS-3</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2001">
|
||||
<linearGradient
|
||||
id="linearGradient9312">
|
||||
<stop
|
||||
style="stop-color:#008f00;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop9314" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.94117647;"
|
||||
offset="1"
|
||||
id="stop9316" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11918"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="matrix(1.1,0,0,1.1,1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11921"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11936"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient9312"
|
||||
id="linearGradient2216"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(15.252829,0,0,14.082619,53.467529,3.4188377)"
|
||||
x1="-1.0929121"
|
||||
y1="0.63145506"
|
||||
x2="-4.5832458"
|
||||
y2="0.070047863" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="949"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="0.98697919"
|
||||
inkscape:cx="-115.2648"
|
||||
inkscape:cy="133.9562"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="31"
|
||||
inkscape:current-layer="svg1998"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="1" />
|
||||
<rect
|
||||
style="opacity:1;fill:#000000;fill-opacity:0.39215687;fill-rule:evenodd;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect4558"
|
||||
width="64.552505"
|
||||
height="41.53862"
|
||||
x="1.4479325"
|
||||
y="2.9772801"
|
||||
ry="11.631706"
|
||||
rx="32.212925"
|
||||
inkscape:transform-center-x="8.4568136" />
|
||||
<rect
|
||||
style="opacity:1;fill:#0d8800;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.01500000000000000;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect9971"
|
||||
width="64.499474"
|
||||
height="42.154343"
|
||||
x="0.0625"
|
||||
y="0.18084908"
|
||||
ry="11.557454"
|
||||
rx="32.249737"
|
||||
inkscape:transform-center-x="8.2952569" />
|
||||
<g
|
||||
id="g4160">
|
||||
<path
|
||||
id="path4815"
|
||||
d="M 64.514069,11.541297 L 64.457031,10.955643 L 64.342949,10.36999 L 64.152814,9.8038604 L 63.867612,9.2182077 L 63.487345,8.6520765 L 63.050034,8.0859452 L 62.517657,7.5393369 L 61.909226,7.0122499 L 61.224742,6.4851607 L 60.464203,5.9775955 L 59.646626,5.4700289 L 58.752993,4.9819859 L 57.783307,4.4939413 L 56.75658,4.0644625 L 55.6538,3.6349838 L 54.493981,3.2055052 L 53.296132,2.8150692 L 52.022232,2.4636777 L 50.710303,2.1122862 L 49.341334,1.7999375 L 47.934339,1.5071117 L 46.489316,1.2338059 L 45.006267,0.99954576 L 43.504204,0.76528425 L 41.964114,0.58958842 L 40.385997,0.43341443 L 38.788867,0.29676153 L 37.191738,0.19915292 L 35.575597,0.12106555 L 33.940437,0.06250017 L 32.324296,0.06250017 L 32.324296,0.06250017 L 30.689136,0.06250017 L 29.053981,0.12106555 L 27.45685,0.19915292 L 25.840705,0.29676153 L 24.243576,0.43341443 L 22.684472,0.58958842 L 21.125372,0.76528425 L 19.623307,0.99954576 L 18.140258,1.2338059 L 16.695234,1.5071117 L 15.28824,1.7999375 L 13.919273,2.1122862 L 12.607342,2.4636777 L 11.333442,2.8150692 L 10.135592,3.2055052 L 8.9757693,3.6349838 L 7.8729941,4.0644625 L 6.8462664,4.4939413 L 5.8765785,4.9819859 L 4.9829488,5.4700289 L 4.1653682,5.9775955 L 3.4048335,6.4851607 L 2.7203448,7.0122499 L 2.1309311,7.5393369 L 1.5795405,8.0859452 L 1.1422325,8.6520765 L 0.76195982,9.2182077 L 0.47676065,9.8038604 L 0.26760898,10.36999 L 0.15353084,10.955643 L 0.11550327,11.541297 L 0.11550327,11.541297 L 0.15353084,12.12695 L 0.26760898,12.693081 L 0.47676065,13.278734 L 0.76195982,13.825344 L 1.1422325,14.410996 L 1.5795405,14.957605 L 2.1309311,15.523736 L 2.7203448,16.070348 L 3.4048335,16.597435 L 4.1653682,17.085479 L 4.9829488,17.593043 L 5.8765785,18.100608 L 6.8462664,18.549609 L 7.8729941,18.998611 L 8.9757693,19.447613 L 10.135592,19.857571 L 11.333442,20.248007 L 12.607342,20.599396 L 13.919273,20.950787 L 15.28824,21.263135 L 16.695234,21.575486 L 18.140258,21.829265 L 19.623307,22.083049 L 21.125372,22.297787 L 22.684472,22.473485 L 24.243576,22.629661 L 25.840705,22.766312 L 27.45685,22.863921 L 29.053981,22.942009 L 30.689136,23.000574 L 32.324296,23.000574 L 32.324296,23.000574 L 33.940437,23.000574 L 35.575597,22.942009 L 37.191738,22.863921 L 38.788867,22.766312 L 40.385997,22.629661 L 41.964114,22.473485 L 43.504204,22.297787 L 45.006267,22.083049 L 46.489316,21.829265 L 47.934339,21.575486 L 49.341334,21.263135 L 50.710303,20.950787 L 52.022232,20.599396 L 53.296132,20.248007 L 54.493981,19.857571 L 55.6538,19.447613 L 56.75658,18.998611 L 57.783307,18.549609 L 58.752993,18.100608 L 59.646626,17.593043 L 60.464203,17.085479 L 61.224742,16.597435 L 61.909226,16.070348 L 62.517657,15.523736 L 63.050034,14.957605 L 63.487345,14.410996 L 63.867612,13.825344 L 64.152814,13.278734 L 64.342949,12.693081 L 64.457031,12.12695 L 64.514069,11.541297"
|
||||
style="fill:url(#linearGradient2216);fill-opacity:1;stroke:none;stroke-width:0.01928605;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
id="path4819"
|
||||
d="M 33.023738,8.6936939 L 37.664889,10.327433 L 48.909313,5.4458969 L 53.946665,7.0599533 L 51.229891,3.0248142 L 38.061087,3.0248142 L 43.475766,4.225514 L 33.023738,8.6936939"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4821"
|
||||
d="M 31.08049,13.161874 L 26.439334,11.528132 L 15.591104,16.429352 L 10.176425,14.775929 L 12.874332,19.244109 L 26.439334,19.244109 L 20.628458,17.630052 L 31.08049,13.161874"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4823"
|
||||
d="M 11.327278,4.225514 L 15.968435,2.611458 L 27.212859,7.0599533 L 32.25021,5.8592533 L 29.552303,9.8943939 L 16.364632,9.8943939 L 21.779313,8.6936939 L 11.327278,4.225514"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4825"
|
||||
d="M 53.154272,18.023723 L 48.513117,19.657467 L 37.664889,14.775929 L 32.25021,16.429352 L 34.966985,12.33516 L 48.513117,12.33516 L 42.70224,13.555544 L 53.154272,18.023723"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4827"
|
||||
d="M 33.419936,9.1070493 L 38.061087,10.721105 L 49.286643,5.8592533 L 54.323994,7.4929926 L 51.60722,3.4184854 L 38.438415,3.4184854 L 43.871962,4.6191872 L 33.419936,9.1070493"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4829"
|
||||
d="M 31.476681,13.555544 L 26.816665,11.941487 L 15.968435,16.803341 L 10.553753,15.189284 L 13.25166,19.657467 L 26.816665,19.657467 L 21.005786,18.023723 L 31.476681,13.555544"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4831"
|
||||
d="M 11.723476,4.6191872 L 16.364632,3.0248142 L 27.609055,7.4929926 L 32.627541,6.2529266 L 29.929634,10.327433 L 16.741963,10.327433 L 22.175509,9.1070493 L 11.723476,4.6191872"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4833"
|
||||
d="M 53.531602,18.43708 L 48.909313,20.070823 L 38.061087,15.189284 L 32.627541,16.803341 L 35.344315,12.7682 L 48.909313,12.7682 L 43.098437,13.9689 L 53.531602,18.43708"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
</g>
|
||||
<image
|
||||
y="23.045622"
|
||||
x="14.084294"
|
||||
id="image4051"
|
||||
xlink:href="data:image/png;base64,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
|
||||
XQAAAABJRU5ErkJggg==
|
||||
"
|
||||
height="19.227247"
|
||||
width="36.265862" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 45 KiB |
@@ -0,0 +1,206 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg1998"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
width="66.000435"
|
||||
height="44.5159"
|
||||
version="1.0"
|
||||
sodipodi:docname="router.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
sodipodi:modified="true">
|
||||
<metadata
|
||||
id="metadata2003">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jeremy Grossmann</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>GNS-3</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2001">
|
||||
<linearGradient
|
||||
id="linearGradient9312">
|
||||
<stop
|
||||
style="stop-color:#ff2600;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop9314" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.94117647;"
|
||||
offset="1"
|
||||
id="stop9316" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11918"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="matrix(1.1,0,0,1.1,1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11921"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11936"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient9312"
|
||||
id="linearGradient2216"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(15.252829,0,0,14.082619,53.467529,3.4188377)"
|
||||
x1="-1.0929121"
|
||||
y1="0.63145506"
|
||||
x2="-4.5832458"
|
||||
y2="0.070047863" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="949"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="7.8958335"
|
||||
inkscape:cx="27.967059"
|
||||
inkscape:cy="24.784192"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="31"
|
||||
inkscape:current-layer="g4160"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="1" />
|
||||
<rect
|
||||
style="opacity:1;fill:#000000;fill-opacity:0.39215687;fill-rule:evenodd;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect4558"
|
||||
width="64.552505"
|
||||
height="41.53862"
|
||||
x="1.4479325"
|
||||
y="2.9772801"
|
||||
ry="11.631706"
|
||||
rx="32.212925"
|
||||
inkscape:transform-center-x="8.4568136" />
|
||||
<rect
|
||||
style="opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.01500000000000000;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect9971"
|
||||
width="64.499474"
|
||||
height="42.154343"
|
||||
x="0.0625"
|
||||
y="0.18084908"
|
||||
ry="11.557454"
|
||||
rx="32.249737"
|
||||
inkscape:transform-center-x="8.2952569" />
|
||||
<g
|
||||
id="g4160">
|
||||
<path
|
||||
id="path4815"
|
||||
d="M 64.514069,11.541297 L 64.457031,10.955643 L 64.342949,10.36999 L 64.152814,9.8038604 L 63.867612,9.2182077 L 63.487345,8.6520765 L 63.050034,8.0859452 L 62.517657,7.5393369 L 61.909226,7.0122499 L 61.224742,6.4851607 L 60.464203,5.9775955 L 59.646626,5.4700289 L 58.752993,4.9819859 L 57.783307,4.4939413 L 56.75658,4.0644625 L 55.6538,3.6349838 L 54.493981,3.2055052 L 53.296132,2.8150692 L 52.022232,2.4636777 L 50.710303,2.1122862 L 49.341334,1.7999375 L 47.934339,1.5071117 L 46.489316,1.2338059 L 45.006267,0.99954576 L 43.504204,0.76528425 L 41.964114,0.58958842 L 40.385997,0.43341443 L 38.788867,0.29676153 L 37.191738,0.19915292 L 35.575597,0.12106555 L 33.940437,0.06250017 L 32.324296,0.06250017 L 32.324296,0.06250017 L 30.689136,0.06250017 L 29.053981,0.12106555 L 27.45685,0.19915292 L 25.840705,0.29676153 L 24.243576,0.43341443 L 22.684472,0.58958842 L 21.125372,0.76528425 L 19.623307,0.99954576 L 18.140258,1.2338059 L 16.695234,1.5071117 L 15.28824,1.7999375 L 13.919273,2.1122862 L 12.607342,2.4636777 L 11.333442,2.8150692 L 10.135592,3.2055052 L 8.9757693,3.6349838 L 7.8729941,4.0644625 L 6.8462664,4.4939413 L 5.8765785,4.9819859 L 4.9829488,5.4700289 L 4.1653682,5.9775955 L 3.4048335,6.4851607 L 2.7203448,7.0122499 L 2.1309311,7.5393369 L 1.5795405,8.0859452 L 1.1422325,8.6520765 L 0.76195982,9.2182077 L 0.47676065,9.8038604 L 0.26760898,10.36999 L 0.15353084,10.955643 L 0.11550327,11.541297 L 0.11550327,11.541297 L 0.15353084,12.12695 L 0.26760898,12.693081 L 0.47676065,13.278734 L 0.76195982,13.825344 L 1.1422325,14.410996 L 1.5795405,14.957605 L 2.1309311,15.523736 L 2.7203448,16.070348 L 3.4048335,16.597435 L 4.1653682,17.085479 L 4.9829488,17.593043 L 5.8765785,18.100608 L 6.8462664,18.549609 L 7.8729941,18.998611 L 8.9757693,19.447613 L 10.135592,19.857571 L 11.333442,20.248007 L 12.607342,20.599396 L 13.919273,20.950787 L 15.28824,21.263135 L 16.695234,21.575486 L 18.140258,21.829265 L 19.623307,22.083049 L 21.125372,22.297787 L 22.684472,22.473485 L 24.243576,22.629661 L 25.840705,22.766312 L 27.45685,22.863921 L 29.053981,22.942009 L 30.689136,23.000574 L 32.324296,23.000574 L 32.324296,23.000574 L 33.940437,23.000574 L 35.575597,22.942009 L 37.191738,22.863921 L 38.788867,22.766312 L 40.385997,22.629661 L 41.964114,22.473485 L 43.504204,22.297787 L 45.006267,22.083049 L 46.489316,21.829265 L 47.934339,21.575486 L 49.341334,21.263135 L 50.710303,20.950787 L 52.022232,20.599396 L 53.296132,20.248007 L 54.493981,19.857571 L 55.6538,19.447613 L 56.75658,18.998611 L 57.783307,18.549609 L 58.752993,18.100608 L 59.646626,17.593043 L 60.464203,17.085479 L 61.224742,16.597435 L 61.909226,16.070348 L 62.517657,15.523736 L 63.050034,14.957605 L 63.487345,14.410996 L 63.867612,13.825344 L 64.152814,13.278734 L 64.342949,12.693081 L 64.457031,12.12695 L 64.514069,11.541297"
|
||||
style="fill:url(#linearGradient2216);fill-opacity:1;stroke:none;stroke-width:0.01928605;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
id="path4819"
|
||||
d="M 33.023738,8.6936939 L 37.664889,10.327433 L 48.909313,5.4458969 L 53.946665,7.0599533 L 51.229891,3.0248142 L 38.061087,3.0248142 L 43.475766,4.225514 L 33.023738,8.6936939"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4821"
|
||||
d="M 31.08049,13.161874 L 26.439334,11.528132 L 15.591104,16.429352 L 10.176425,14.775929 L 12.874332,19.244109 L 26.439334,19.244109 L 20.628458,17.630052 L 31.08049,13.161874"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4823"
|
||||
d="M 11.327278,4.225514 L 15.968435,2.611458 L 27.212859,7.0599533 L 32.25021,5.8592533 L 29.552303,9.8943939 L 16.364632,9.8943939 L 21.779313,8.6936939 L 11.327278,4.225514"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4825"
|
||||
d="M 53.154272,18.023723 L 48.513117,19.657467 L 37.664889,14.775929 L 32.25021,16.429352 L 34.966985,12.33516 L 48.513117,12.33516 L 42.70224,13.555544 L 53.154272,18.023723"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4827"
|
||||
d="M 33.419936,9.1070493 L 38.061087,10.721105 L 49.286643,5.8592533 L 54.323994,7.4929926 L 51.60722,3.4184854 L 38.438415,3.4184854 L 43.871962,4.6191872 L 33.419936,9.1070493"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4829"
|
||||
d="M 31.476681,13.555544 L 26.816665,11.941487 L 15.968435,16.803341 L 10.553753,15.189284 L 13.25166,19.657467 L 26.816665,19.657467 L 21.005786,18.023723 L 31.476681,13.555544"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4831"
|
||||
d="M 11.723476,4.6191872 L 16.364632,3.0248142 L 27.609055,7.4929926 L 32.627541,6.2529266 L 29.929634,10.327433 L 16.741963,10.327433 L 22.175509,9.1070493 L 11.723476,4.6191872"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4833"
|
||||
d="M 53.531602,18.43708 L 48.909313,20.070823 L 38.061087,15.189284 L 32.627541,16.803341 L 35.344315,12.7682 L 48.909313,12.7682 L 43.098437,13.9689 L 53.531602,18.43708"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 11 KiB |
@@ -0,0 +1,213 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg1998"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
width="66.000435"
|
||||
height="44.5159"
|
||||
version="1.0"
|
||||
sodipodi:docname="router-red.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
sodipodi:modified="true">
|
||||
<metadata
|
||||
id="metadata2003">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jeremy Grossmann</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>GNS-3</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2001">
|
||||
<linearGradient
|
||||
id="linearGradient9312">
|
||||
<stop
|
||||
style="stop-color:#ff2600;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop9314" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.94117647;"
|
||||
offset="1"
|
||||
id="stop9316" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11918"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="matrix(1.1,0,0,1.1,1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11921"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path11936"
|
||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
|
||||
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient9312"
|
||||
id="linearGradient2216"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(15.252829,0,0,14.082619,53.467529,3.4188377)"
|
||||
x1="-1.0929121"
|
||||
y1="0.63145506"
|
||||
x2="-4.5832458"
|
||||
y2="0.070047863" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-height="949"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
guidetolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
objecttolerance="10.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="7.8958335"
|
||||
inkscape:cx="27.967059"
|
||||
inkscape:cy="24.784192"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="31"
|
||||
inkscape:current-layer="g4160"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="1" />
|
||||
<rect
|
||||
style="opacity:1;fill:#000000;fill-opacity:0.39215687;fill-rule:evenodd;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect4558"
|
||||
width="64.552505"
|
||||
height="41.53862"
|
||||
x="1.4479325"
|
||||
y="2.9772801"
|
||||
ry="11.631706"
|
||||
rx="32.212925"
|
||||
inkscape:transform-center-x="8.4568136" />
|
||||
<rect
|
||||
style="opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.01500000000000000;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect9971"
|
||||
width="64.499474"
|
||||
height="42.154343"
|
||||
x="0.0625"
|
||||
y="0.18084908"
|
||||
ry="11.557454"
|
||||
rx="32.249737"
|
||||
inkscape:transform-center-x="8.2952569" />
|
||||
<g
|
||||
id="g4160">
|
||||
<path
|
||||
id="path4815"
|
||||
d="M 64.514069,11.541297 L 64.457031,10.955643 L 64.342949,10.36999 L 64.152814,9.8038604 L 63.867612,9.2182077 L 63.487345,8.6520765 L 63.050034,8.0859452 L 62.517657,7.5393369 L 61.909226,7.0122499 L 61.224742,6.4851607 L 60.464203,5.9775955 L 59.646626,5.4700289 L 58.752993,4.9819859 L 57.783307,4.4939413 L 56.75658,4.0644625 L 55.6538,3.6349838 L 54.493981,3.2055052 L 53.296132,2.8150692 L 52.022232,2.4636777 L 50.710303,2.1122862 L 49.341334,1.7999375 L 47.934339,1.5071117 L 46.489316,1.2338059 L 45.006267,0.99954576 L 43.504204,0.76528425 L 41.964114,0.58958842 L 40.385997,0.43341443 L 38.788867,0.29676153 L 37.191738,0.19915292 L 35.575597,0.12106555 L 33.940437,0.06250017 L 32.324296,0.06250017 L 32.324296,0.06250017 L 30.689136,0.06250017 L 29.053981,0.12106555 L 27.45685,0.19915292 L 25.840705,0.29676153 L 24.243576,0.43341443 L 22.684472,0.58958842 L 21.125372,0.76528425 L 19.623307,0.99954576 L 18.140258,1.2338059 L 16.695234,1.5071117 L 15.28824,1.7999375 L 13.919273,2.1122862 L 12.607342,2.4636777 L 11.333442,2.8150692 L 10.135592,3.2055052 L 8.9757693,3.6349838 L 7.8729941,4.0644625 L 6.8462664,4.4939413 L 5.8765785,4.9819859 L 4.9829488,5.4700289 L 4.1653682,5.9775955 L 3.4048335,6.4851607 L 2.7203448,7.0122499 L 2.1309311,7.5393369 L 1.5795405,8.0859452 L 1.1422325,8.6520765 L 0.76195982,9.2182077 L 0.47676065,9.8038604 L 0.26760898,10.36999 L 0.15353084,10.955643 L 0.11550327,11.541297 L 0.11550327,11.541297 L 0.15353084,12.12695 L 0.26760898,12.693081 L 0.47676065,13.278734 L 0.76195982,13.825344 L 1.1422325,14.410996 L 1.5795405,14.957605 L 2.1309311,15.523736 L 2.7203448,16.070348 L 3.4048335,16.597435 L 4.1653682,17.085479 L 4.9829488,17.593043 L 5.8765785,18.100608 L 6.8462664,18.549609 L 7.8729941,18.998611 L 8.9757693,19.447613 L 10.135592,19.857571 L 11.333442,20.248007 L 12.607342,20.599396 L 13.919273,20.950787 L 15.28824,21.263135 L 16.695234,21.575486 L 18.140258,21.829265 L 19.623307,22.083049 L 21.125372,22.297787 L 22.684472,22.473485 L 24.243576,22.629661 L 25.840705,22.766312 L 27.45685,22.863921 L 29.053981,22.942009 L 30.689136,23.000574 L 32.324296,23.000574 L 32.324296,23.000574 L 33.940437,23.000574 L 35.575597,22.942009 L 37.191738,22.863921 L 38.788867,22.766312 L 40.385997,22.629661 L 41.964114,22.473485 L 43.504204,22.297787 L 45.006267,22.083049 L 46.489316,21.829265 L 47.934339,21.575486 L 49.341334,21.263135 L 50.710303,20.950787 L 52.022232,20.599396 L 53.296132,20.248007 L 54.493981,19.857571 L 55.6538,19.447613 L 56.75658,18.998611 L 57.783307,18.549609 L 58.752993,18.100608 L 59.646626,17.593043 L 60.464203,17.085479 L 61.224742,16.597435 L 61.909226,16.070348 L 62.517657,15.523736 L 63.050034,14.957605 L 63.487345,14.410996 L 63.867612,13.825344 L 64.152814,13.278734 L 64.342949,12.693081 L 64.457031,12.12695 L 64.514069,11.541297"
|
||||
style="fill:url(#linearGradient2216);fill-opacity:1;stroke:none;stroke-width:0.01928605;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
id="path4819"
|
||||
d="M 33.023738,8.6936939 L 37.664889,10.327433 L 48.909313,5.4458969 L 53.946665,7.0599533 L 51.229891,3.0248142 L 38.061087,3.0248142 L 43.475766,4.225514 L 33.023738,8.6936939"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4821"
|
||||
d="M 31.08049,13.161874 L 26.439334,11.528132 L 15.591104,16.429352 L 10.176425,14.775929 L 12.874332,19.244109 L 26.439334,19.244109 L 20.628458,17.630052 L 31.08049,13.161874"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4823"
|
||||
d="M 11.327278,4.225514 L 15.968435,2.611458 L 27.212859,7.0599533 L 32.25021,5.8592533 L 29.552303,9.8943939 L 16.364632,9.8943939 L 21.779313,8.6936939 L 11.327278,4.225514"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4825"
|
||||
d="M 53.154272,18.023723 L 48.513117,19.657467 L 37.664889,14.775929 L 32.25021,16.429352 L 34.966985,12.33516 L 48.513117,12.33516 L 42.70224,13.555544 L 53.154272,18.023723"
|
||||
style="fill:#000000;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4827"
|
||||
d="M 33.419936,9.1070493 L 38.061087,10.721105 L 49.286643,5.8592533 L 54.323994,7.4929926 L 51.60722,3.4184854 L 38.438415,3.4184854 L 43.871962,4.6191872 L 33.419936,9.1070493"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4829"
|
||||
d="M 31.476681,13.555544 L 26.816665,11.941487 L 15.968435,16.803341 L 10.553753,15.189284 L 13.25166,19.657467 L 26.816665,19.657467 L 21.005786,18.023723 L 31.476681,13.555544"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4831"
|
||||
d="M 11.723476,4.6191872 L 16.364632,3.0248142 L 27.609055,7.4929926 L 32.627541,6.2529266 L 29.929634,10.327433 L 16.741963,10.327433 L 22.175509,9.1070493 L 11.723476,4.6191872"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<path
|
||||
id="path4833"
|
||||
d="M 53.531602,18.43708 L 48.909313,20.070823 L 38.061087,15.189284 L 32.627541,16.803341 L 35.344315,12.7682 L 48.909313,12.7682 L 43.098437,13.9689 L 53.531602,18.43708"
|
||||
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
|
||||
<image
|
||||
y="22.870613"
|
||||
x="14.922478"
|
||||
id="image4051"
|
||||
xlink:href="data:image/png;base64,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 TVD8UhG/VET6fkCKVyrGf8JS3zvTJgLine truncated
|
||||
height="19.227247"
|
||||
width="36.265862" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 86 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 193 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 53 KiB |
@@ -0,0 +1,316 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="70"
|
||||
height="70"
|
||||
viewBox="0 0 70.000002 70.000001"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="vRIN.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker4924"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path4926"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Mend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Mend"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path4185"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="scale(-0.6,-0.6)"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="TriangleOutL"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path4300"
|
||||
d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1"
|
||||
transform="scale(0.8,0.8)"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path4161"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker4782"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path4784"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lend"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path4179"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker4924-8"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4926-5"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker4924-8-2"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4926-5-7"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker4924-8-20"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4926-5-8"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker4924-7"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4926-7"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker4924-8-2-9"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4926-5-7-4"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker4924-8-20-9"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4926-5-8-8"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker4924-7-5"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4926-7-0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker4924-7-58"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4926-7-9"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="8"
|
||||
inkscape:cx="13.588207"
|
||||
inkscape:cy="41.315689"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="vRIN"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
style="display:inline"
|
||||
transform="translate(0,-892.46783)">
|
||||
<circle
|
||||
style="fill:#1392e8;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="path3346"
|
||||
cx="35"
|
||||
cy="927.48718"
|
||||
r="35" />
|
||||
<circle
|
||||
style="display:inline;fill:#91c2fb;fill-opacity:1;stroke:none"
|
||||
id="path4149"
|
||||
r="30.676126"
|
||||
cy="927.48718"
|
||||
cx="35.233734" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.93489146;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4924-7)"
|
||||
d="m 22.32053,907.09486 18.69783,0"
|
||||
id="path4152"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.93489146;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4924-8-2-9)"
|
||||
d="m 38.48734,920.78412 18.69783,0"
|
||||
id="path4152-9-9"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.93489146;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4924-8-20-9)"
|
||||
d="m 38.6042,934.69063 18.69783,0"
|
||||
id="path4152-9-91"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.93489146;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4924-7-5)"
|
||||
d="m -265.0259,179.09455 18.69783,0"
|
||||
id="path4152-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.93489146;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4924-7-58)"
|
||||
d="m 22.32053,947.84486 18.69783,0"
|
||||
id="path4152-2"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4924-8)"
|
||||
d="m 191.34167,32.035246 160,0"
|
||||
id="path4152-9"
|
||||
inkscape:connector-curvature="0" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg id="svg1998" width="55.044277" height="63.620274" version="1.0" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="title3303">ASA</title>
|
||||
<defs id="defs2001">
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow2Lstart" style="overflow:visible">
|
||||
<path id="path11918" style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round" d="M 11.403143,4.732916 -1.416553,0.01878889 11.403144,-4.6953372 c -2.0480517,2.7832182 -2.0362508,6.5911436 -10e-7,9.4282532 z"/>
|
||||
</marker>
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow1Send" style="overflow:visible">
|
||||
<path id="path11921" d="M -1.28,0 -2.3466667,1.0666667 1.3866667,0 -2.3466667,-1.0666667 Z" style="fill-rule:evenodd;stroke:#000000;stroke-width:0.21333334pt;marker-start:none"/>
|
||||
</marker>
|
||||
<marker orient="auto" refY="0" refX="0" id="Arrow1Lstart" style="overflow:visible">
|
||||
<path id="path11936" d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z" style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"/>
|
||||
</marker>
|
||||
<linearGradient id="linearGradient6875" gradientUnits="userSpaceOnUse" gradientTransform="matrix(26.557584,0,0,27.099161,-9.2951537,-5.3720715)" x1="2.1178279" y1="0.30649999" x2="-0.4954865" y2="0.30649999">
|
||||
<stop style="stop-color:#6e8caa;stop-opacity:1;" offset="0" id="stop8333"/>
|
||||
<stop style="stop-color:#dde3ef;stop-opacity:1;" offset="1" id="stop8335"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path id="path11907" d="m 2.277686,60.343382 v 3.25342 h 45.379267 v -3.25342 H 2.277686" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:1.06666672"/>
|
||||
<path id="path11020" d="M 47.765643,8.1809483 55.044279,1.3761504 55.028695,57.643455 47.654539,63.62027 47.765638,8.1809483" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:1.06666672"/>
|
||||
<path id="path2037" d="M 0.47692057,5.3149867 V 49.230745 H 47.778461 V 5.3149867 H 0.47692057" style="fill:#6e8caa;fill-opacity:1;stroke:none;stroke-width:1.06666672"/>
|
||||
<path id="path2041" d="M 0,5.8198859 6.0551291,0.04776213 H 53.885337 L 47.777093,5.8198859 H 0" style="fill:url(#linearGradient6875);fill-opacity:1;stroke:none;stroke-width:1.06666672"/>
|
||||
<path id="path2045" d="M 47.635174,5.2911061 53.670405,0 v 43.968341 l -6.035231,5.291106 V 5.2911061" style="fill:#6e8296;fill-opacity:1;stroke:none;stroke-width:1.06666672"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.06040335" d="m 68.017411,-124.00618 h 32.336679 v -2.5979 l 6.95208,5.19579 -6.95208,5.62568 v -2.59789 H 68.017411 v -5.62568" id="path39"/>
|
||||
<path style="fill:#000000;stroke:#ffffff;stroke-width:1.06040335;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 56.893321,-121.40829 H 70.452314" id="path61"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.06040335" d="M 16.19484,61.82555 H 0.42243277 V 55.665507 H 16.19484 v 6.160043" id="path99"/>
|
||||
<path style="fill:#000000;stroke:#e1e1e1;stroke-width:0.47963932;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 16.19484,61.82555 H 0.57567743" id="path101"/>
|
||||
<path style="fill:#000000;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 0.66977537,55.665507 H 16.19484 v 6.160043" id="path103"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 47.780883,61.82555 H 31.991982 v -6.160043 h 15.788901 v 6.160043" id="path105"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 40.280128,61.82555 H 24.474743 v -6.160043 h 15.805385 v 6.160043" id="path107"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 24.474743,61.82555 H 8.6940847 V 55.665507 H 24.474743 v 6.160043" id="path109"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.50290239;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="m 50.792321,53.512289 2.638353,-2.735375 v -6.805626 l -2.638353,2.720386 v 6.820615" id="path111"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="m 50.792321,59.372711 2.638353,-2.166775 v -6.166822 l -2.638353,2.160008 v 6.173589" id="path125"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="m 47.780883,61.82555 3.011438,-2.452839 v -6.173589 l -3.011438,2.466385 v 6.160043" id="path127"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 31.991982,55.665507 H 16.19484 v -6.166811 h 15.797142 v 6.166811" id="path133"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.06040335" d="M 16.19484,55.665507 H 0.42243277 V 49.498685 H 16.19484 v 6.166822" id="path135"/>
|
||||
<path style="fill:#000000;stroke:#e1e1e1;stroke-width:0.48108193;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 16.19484,55.665507 H 0.48158037" id="path137"/>
|
||||
<path style="fill:#000000;stroke:#e1e1e1;stroke-width:0.48039833;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 0.52620409,49.498696 H 16.19484 v 6.166811" id="path139"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 47.780883,55.665507 H 31.991982 v -6.166811 h 15.788901 v 6.166811" id="path141"/>
|
||||
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.48692337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="m 47.780883,55.665507 3.011438,-2.557269 v -6.387053 l -3.011438,2.550268 v 6.394054" id="path145"/>
|
||||
<path d="M 24.272 46.546 C 34.337 46.546 42.543 38.338 42.543 28.274 C 42.543 18.21 34.337 10 24.272 10 C 14.207 10 6 18.21 6 28.274 C 6 38.338 14.207 46.546 24.272 46.546 Z" fill="#12537c"/>
|
||||
<path d="M 24.001 48.003 C 35.017 48.003 44 39.018 44 28.003 C 44 16.987 35.017 8 24.001 8 C 12.984 8 4 16.987 4 28.003 C 4 39.018 12.984 48.003 24.001 48.003 Z" stroke="#bcbec0" stroke-linecap="butt" stroke-linejoin="miter" stroke-width="1.125" style="fill: rgb(18, 83, 124);"/>
|
||||
<path d="M 22.025 26.701 L 20.936 26.701 L 8.503 26.701 L 8.503 23.706 L 19.439 23.706 L 19.439 17.324 L 17.836 17.324 L 19.397 14.621 L 20.604 12.533 L 20.958 11.92 L 22.52 14.621 L 24.078 17.324 L 23.366 17.324 L 22.434 17.324 L 22.434 25.203 L 22.434 26.701 L 22.025 26.701 L 22.025 26.701 Z M 34.665 27.673 L 34.665 26.701 L 26.887 26.701 L 25.39 26.701 L 25.39 26.289 L 25.39 25.203 L 25.39 12.858 L 28.385 12.858 L 28.385 23.705 L 34.664 23.705 L 34.666 22.141 L 37.366 23.703 L 39.453 24.907 L 39.248 25.264 L 39.453 24.907 L 40.069 25.263 L 37.366 26.824 L 34.664 28.381 L 34.664 27.673 L 34.665 27.673 Z M 19.849 43.677 L 19.849 43.267 L 20.261 43.267 L 19.849 43.267 L 19.849 43.677 L 19.439 43.677 L 19.439 32.828 L 13.334 32.828 L 13.334 34.468 L 10.633 32.907 L 7.931 31.348 L 10.633 29.787 L 13.334 28.228 L 13.334 28.937 L 13.334 29.835 L 20.936 29.835 L 22.434 29.835 L 22.434 30.245 L 22.434 31.331 L 22.434 43.677 L 19.849 43.677 L 19.849 43.677 Z M 26.886 43.239 L 27.242 43.034 L 26.886 43.239 L 26.886 43.239 Z M 25.325 41.358 L 23.766 38.654 L 24.477 38.654 L 25.39 38.653 L 25.39 31.331 L 25.39 29.835 L 25.8 29.835 L 26.887 29.835 L 39.32 29.835 L 39.32 32.828 L 28.386 32.828 L 28.386 38.655 L 30.006 38.655 L 28.446 41.359 L 27.242 43.444 L 26.887 44.062 L 25.325 41.358 L 25.325 41.358 Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 8.2 KiB |
@@ -0,0 +1,35 @@
|
||||
<svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect height="60" width="60" x="0" y="0" style="fill:#ffffff" />
|
||||
<path d="M43.8 7.2H52.8V37.2H60V0H43.8V7.2Z" fill="url(#paint0_linear)"/>
|
||||
<path d="M37.2 0H0V16.2H7.2V7.2H37.2V0Z" fill="url(#paint1_linear)"/>
|
||||
<path d="M7.2 22.8H0V60H16.2V52.8H7.2V22.8Z" fill="url(#paint2_linear)"/>
|
||||
<path d="M22.8 52.8V60H60V43.8H52.8V52.8H22.8Z" fill="url(#paint3_linear)"/>
|
||||
<path d="M13.2 13.2H20.4L33.6 46.8H26.4L13.2 13.2Z" fill="url(#paint4_linear)"/>
|
||||
<path d="M46.8 13.2H39.6L26.4 46.8H33.6L46.8 13.2Z" fill="url(#paint5_linear)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear" x1="0" y1="0" x2="60" y2="60" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FFBF12"/>
|
||||
<stop offset="1" stop-color="#FF9000"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear" x1="0" y1="0" x2="60" y2="60" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FFBF12"/>
|
||||
<stop offset="1" stop-color="#FF9000"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint2_linear" x1="0" y1="0" x2="60" y2="60" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FFBF12"/>
|
||||
<stop offset="1" stop-color="#FF9000"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint3_linear" x1="0" y1="0" x2="60" y2="60" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FFBF12"/>
|
||||
<stop offset="1" stop-color="#FF9000"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint4_linear" x1="0" y1="0" x2="60" y2="60" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FFBF12"/>
|
||||
<stop offset="1" stop-color="#FF9000"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint5_linear" x1="0" y1="0" x2="60" y2="60" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FFBF12"/>
|
||||
<stop offset="1" stop-color="#FF9000"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -30,6 +30,7 @@ import gns3server.utils.get_resource
|
||||
import os
|
||||
import sys
|
||||
import asyncio
|
||||
import argparse
|
||||
|
||||
|
||||
def daemonize():
|
||||
@@ -59,6 +60,42 @@ def daemonize():
|
||||
print("Second fork failed: %d (%s)\n" % (e.errno, e.strerror), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
def parse_arguments(argv):
|
||||
"""
|
||||
Parse command line arguments
|
||||
|
||||
:param argv: Array of command line arguments
|
||||
"""
|
||||
from gns3server.version import __version__
|
||||
parser = argparse.ArgumentParser(description=f"GNS3 server version {__version__}")
|
||||
parser.add_argument("-v", "--version", help="show the version", action="version", version=__version__)
|
||||
parser.add_argument("--host", help="run on the given host/IP address")
|
||||
parser.add_argument("--port", help="run on the given port", type=int)
|
||||
parser.add_argument("--ssl", action="store_true", help="run in SSL mode")
|
||||
parser.add_argument("--config", help="Configuration file")
|
||||
parser.add_argument("--certfile", help="SSL cert file")
|
||||
parser.add_argument("--certkey", help="SSL key file")
|
||||
parser.add_argument("-L", "--local", action="store_true", help="local mode (allows some insecure operations)")
|
||||
parser.add_argument(
|
||||
"-A", "--allow", action="store_true", help="allow remote connections to local console ports"
|
||||
)
|
||||
parser.add_argument("-q", "--quiet", default=False, action="store_true", help="do not show logs on stdout")
|
||||
parser.add_argument("-d", "--debug", default=False, action="store_true", help="show debug logs")
|
||||
parser.add_argument("--logfile", "--log", help="send output to logfile instead of console")
|
||||
parser.add_argument("--logmaxsize", default=10000000, help="maximum logfile size in bytes (default is 10MB)")
|
||||
parser.add_argument(
|
||||
"--logbackupcount", default=10, help="number of historical log files to keep (default is 10)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--logcompression", default=False, action="store_true", help="compress inactive (historical) logs"
|
||||
)
|
||||
parser.add_argument("--daemon", action="store_true", help="start as a daemon")
|
||||
parser.add_argument("--pid", help="store process pid")
|
||||
parser.add_argument("--profile", help="Settings profile (blank will use default settings files)")
|
||||
|
||||
args = parser.parse_args(argv)
|
||||
return parser, args
|
||||
|
||||
|
||||
def main():
|
||||
"""
|
||||
@@ -69,10 +106,11 @@ def main():
|
||||
raise SystemExit("Windows is not a supported platform to run the GNS3 server")
|
||||
if "--daemon" in sys.argv:
|
||||
daemonize()
|
||||
from gns3server.server import Server
|
||||
|
||||
try:
|
||||
asyncio.run(Server().run())
|
||||
parser, args = parse_arguments(sys.argv[1:])
|
||||
from gns3server.server import Server
|
||||
asyncio.run(Server().run(parser, args))
|
||||
except KeyboardInterrupt:
|
||||
pass
|
||||
|
||||
|
||||
@@ -43,8 +43,8 @@ class DockerBase(BaseModel):
|
||||
environment: Optional[str] = Field(None, description="Docker environment variables")
|
||||
extra_hosts: Optional[str] = Field(None, description="Docker extra hosts (added to /etc/hosts)")
|
||||
extra_volumes: Optional[List[str]] = Field(None, description="Additional directories to make persistent")
|
||||
memory: Optional[int] = Field(None, description="Maximum amount of memory the container can use in MB")
|
||||
cpus: Optional[float] = Field(None, description="Maximum amount of CPU resources the container can use")
|
||||
memory: Optional[int] = Field(None, ge=0, description="Maximum amount of memory the container can use in MB")
|
||||
cpus: Optional[float] = Field(None, ge=0, description="Maximum amount of CPU resources the container can use")
|
||||
custom_adapters: Optional[List[CustomAdapter]] = Field(None, description="Custom adapters")
|
||||
|
||||
|
||||
|
||||
@@ -124,8 +124,8 @@ class DynamipsBase(BaseModel):
|
||||
name: Optional[str] = None
|
||||
dynamips_id: Optional[int] = Field(None, description="Dynamips internal ID")
|
||||
platform: Optional[DynamipsPlatform] = Field(None, description="Cisco router platform")
|
||||
ram: Optional[int] = Field(None, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(None, description="Amount of NVRAM in KB")
|
||||
ram: Optional[int] = Field(None, gt=0, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(None, gt=0, description="Amount of NVRAM in KB")
|
||||
image: Optional[str] = Field(None, description="Path to the IOS image")
|
||||
image_md5sum: Optional[str] = Field(None, description="Checksum of the IOS image")
|
||||
usage: Optional[str] = Field(None, description="How to use the Dynamips VM")
|
||||
@@ -139,8 +139,8 @@ class DynamipsBase(BaseModel):
|
||||
idlemax: Optional[int] = Field(None, description="Idlemax value")
|
||||
idlesleep: Optional[int] = Field(None, description="Idlesleep value")
|
||||
exec_area: Optional[int] = Field(None, description="Exec area value")
|
||||
disk0: Optional[int] = Field(None, description="Disk0 size in MB")
|
||||
disk1: Optional[int] = Field(None, description="Disk1 size in MB")
|
||||
disk0: Optional[int] = Field(None, ge=0, description="Disk0 size in MB")
|
||||
disk1: Optional[int] = Field(None, ge=0, description="Disk1 size in MB")
|
||||
auto_delete_disks: Optional[bool] = Field(None, description="Automatically delete nvram and disk files")
|
||||
console: Optional[int] = Field(None, gt=0, le=65535, description="Console TCP port")
|
||||
console_type: Optional[DynamipsConsoleType] = Field(None, description="Console type")
|
||||
@@ -176,7 +176,7 @@ class DynamipsCreate(DynamipsBase):
|
||||
name: str
|
||||
platform: str = Field(..., description="Cisco router platform", pattern="^c[0-9]{4}$")
|
||||
image: str = Field(..., description="Path to the IOS image")
|
||||
ram: int = Field(..., description="Amount of RAM in MB")
|
||||
ram: int = Field(..., gt=0, description="Amount of RAM in MB")
|
||||
|
||||
|
||||
class DynamipsUpdate(DynamipsBase):
|
||||
|
||||
@@ -36,8 +36,8 @@ class IOUBase(BaseModel):
|
||||
md5sum: Optional[str] = Field(None, description="IOU executable checksum")
|
||||
serial_adapters: Optional[int] = Field(None, description="How many serial adapters are connected to IOU")
|
||||
ethernet_adapters: Optional[int] = Field(None, description="How many Ethernet adapters are connected to IOU")
|
||||
ram: Optional[int] = Field(None, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(None, description="Amount of NVRAM in KB")
|
||||
ram: Optional[int] = Field(None, gt=0, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(None, gt=0, description="Amount of NVRAM in KB")
|
||||
l1_keepalives: Optional[bool] = Field(None, description="Use default IOU values")
|
||||
use_default_iou_values: Optional[bool] = Field(None, description="Always up Ethernet interfaces")
|
||||
startup_config_content: Optional[str] = Field(None, description="Content of IOU startup configuration file")
|
||||
|
||||
@@ -49,8 +49,8 @@ class DockerTemplate(TemplateBase):
|
||||
)
|
||||
extra_hosts: Optional[str] = Field("", description="Docker extra hosts (added to /etc/hosts)")
|
||||
extra_volumes: Optional[List] = Field([], description="Additional directories to make persistent")
|
||||
memory: Optional[int] = Field(0, description="Maximum amount of memory the container can use in MB")
|
||||
cpus: Optional[float] = Field(0, description="Maximum amount of CPU resources the container can use")
|
||||
memory: Optional[int] = Field(0, ge=0, description="Maximum amount of memory the container can use in MB")
|
||||
cpus: Optional[float] = Field(0, ge=0, description="Maximum amount of CPU resources the container can use")
|
||||
custom_adapters: Optional[List[CustomAdapter]] = Field(default_factory=list, description="Custom adapters")
|
||||
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ class DynamipsTemplate(TemplateBase):
|
||||
symbol: Optional[str] = "router"
|
||||
platform: DynamipsPlatform = Field(..., description="Cisco router platform")
|
||||
image: str = Field(..., description="Path to the IOS image")
|
||||
exec_area: Optional[int] = Field(64, description="Exec area value")
|
||||
exec_area: Optional[int] = Field(64, ge=0, description="Exec area value")
|
||||
mmap: Optional[bool] = Field(True, description="MMAP feature")
|
||||
mac_addr: Optional[str] = Field(
|
||||
"", description="Base MAC address", pattern="^([0-9a-fA-F]{4}\\.){2}[0-9a-fA-F]{4}$|^$"
|
||||
@@ -46,10 +46,10 @@ class DynamipsTemplate(TemplateBase):
|
||||
startup_config: Optional[str] = Field("ios_base_startup-config.txt", description="IOS startup configuration file")
|
||||
private_config: Optional[str] = Field("", description="IOS private configuration file")
|
||||
idlepc: Optional[str] = Field("", description="Idle-PC value", pattern="^(0x[0-9a-fA-F]+)?$|^$")
|
||||
idlemax: Optional[int] = Field(500, description="Idlemax value")
|
||||
idlesleep: Optional[int] = Field(30, description="Idlesleep value")
|
||||
disk0: Optional[int] = Field(0, description="Disk0 size in MB")
|
||||
disk1: Optional[int] = Field(0, description="Disk1 size in MB")
|
||||
idlemax: Optional[int] = Field(500, ge=0, description="Idlemax value")
|
||||
idlesleep: Optional[int] = Field(30, ge=0, description="Idlesleep value")
|
||||
disk0: Optional[int] = Field(0, ge=0, description="Disk0 size in MB")
|
||||
disk1: Optional[int] = Field(0, ge=0, description="Disk1 size in MB")
|
||||
auto_delete_disks: Optional[bool] = Field(False, description="Automatically delete nvram and disk files")
|
||||
console_type: Optional[DynamipsConsoleType] = Field(DynamipsConsoleType.telnet, description="Console type")
|
||||
console_auto_start: Optional[bool] = Field(
|
||||
@@ -70,8 +70,8 @@ class DynamipsTemplate(TemplateBase):
|
||||
|
||||
class C7200DynamipsTemplate(DynamipsTemplate):
|
||||
|
||||
ram: Optional[int] = Field(512, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(512, description="Amount of NVRAM in KB")
|
||||
ram: Optional[int] = Field(512, gt=0, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(512, gt=0, description="Amount of NVRAM in KB")
|
||||
npe: Optional[DynamipsNPE] = Field(DynamipsNPE.npe_400, description="NPE model")
|
||||
midplane: Optional[DynamipsMidplane] = Field(DynamipsMidplane.vxr, description="Midplane model")
|
||||
sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
|
||||
@@ -85,8 +85,8 @@ class C7200DynamipsTemplateUpdate(C7200DynamipsTemplate):
|
||||
|
||||
class C3725DynamipsTemplate(DynamipsTemplate):
|
||||
|
||||
ram: Optional[int] = Field(128, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(256, description="Amount of NVRAM in KB")
|
||||
ram: Optional[int] = Field(128, gt=0, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(256, gt=0, description="Amount of NVRAM in KB")
|
||||
iomem: Optional[int] = Field(5, ge=0, le=100, description="I/O memory percentage")
|
||||
sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
|
||||
|
||||
@@ -99,8 +99,8 @@ class C3725DynamipsTemplateUpdate(C3725DynamipsTemplate):
|
||||
|
||||
class C3745DynamipsTemplate(DynamipsTemplate):
|
||||
|
||||
ram: Optional[int] = Field(256, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(256, description="Amount of NVRAM in KB")
|
||||
ram: Optional[int] = Field(256, gt=0, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(256, gt=0, description="Amount of NVRAM in KB")
|
||||
iomem: Optional[int] = Field(5, ge=0, le=100, description="I/O memory percentage")
|
||||
sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
|
||||
|
||||
@@ -121,8 +121,8 @@ class C3600ChassisType(str, Enum):
|
||||
class C3600DynamipsTemplate(DynamipsTemplate):
|
||||
|
||||
chassis: Optional[C3600ChassisType] = Field("c3660", description="Chassis type")
|
||||
ram: Optional[int] = Field(192, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(128, description="Amount of NVRAM in KB")
|
||||
ram: Optional[int] = Field(192, gt=0, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(128, gt=0, description="Amount of NVRAM in KB")
|
||||
iomem: Optional[int] = Field(5, ge=0, le=100, description="I/O memory percentage")
|
||||
sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
|
||||
|
||||
@@ -135,8 +135,8 @@ class C3600DynamipsTemplateUpdate(C3600DynamipsTemplate):
|
||||
|
||||
class C2691DynamipsTemplate(DynamipsTemplate):
|
||||
|
||||
ram: Optional[int] = Field(192, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(256, description="Amount of NVRAM in KB")
|
||||
ram: Optional[int] = Field(192, gt=0, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(256, gt=0, description="Amount of NVRAM in KB")
|
||||
iomem: Optional[int] = Field(5, ge=0, le=100, description="I/O memory percentage")
|
||||
sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
|
||||
|
||||
@@ -163,8 +163,8 @@ class C2600ChassisType(str, Enum):
|
||||
class C2600DynamipsTemplate(DynamipsTemplate):
|
||||
|
||||
chassis: Optional[C2600ChassisType] = Field("2651XM", description="Chassis type")
|
||||
ram: Optional[int] = Field(160, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(128, description="Amount of NVRAM in KB")
|
||||
ram: Optional[int] = Field(160, gt=0, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(128, gt=0, description="Amount of NVRAM in KB")
|
||||
iomem: Optional[int] = Field(15, ge=0, le=100, description="I/O memory percentage")
|
||||
sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
|
||||
|
||||
@@ -187,8 +187,8 @@ class C1700ChassisType(str, Enum):
|
||||
class C1700DynamipsTemplate(DynamipsTemplate):
|
||||
|
||||
chassis: Optional[C1700ChassisType] = Field("1760", description="Chassis type")
|
||||
ram: Optional[int] = Field(160, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(128, description="Amount of NVRAM in KB")
|
||||
ram: Optional[int] = Field(160, gt=0, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(128, gt=0, description="Amount of NVRAM in KB")
|
||||
iomem: Optional[int] = Field(15, ge=0, le=100, description="I/O memory percentage")
|
||||
sparsemem: Optional[bool] = Field(False, description="Sparse memory feature")
|
||||
|
||||
|
||||
@@ -28,10 +28,10 @@ class IOUTemplate(TemplateBase):
|
||||
default_name_format: Optional[str] = "IOU{0}"
|
||||
symbol: Optional[str] = "multilayer_switch"
|
||||
path: str = Field(..., description="Path of IOU executable")
|
||||
ethernet_adapters: Optional[int] = Field(2, description="Number of ethernet adapters")
|
||||
serial_adapters: Optional[int] = Field(2, description="Number of serial adapters")
|
||||
ram: Optional[int] = Field(256, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(128, description="Amount of NVRAM in KB")
|
||||
ethernet_adapters: Optional[int] = Field(2, ge=0, description="Number of ethernet adapters")
|
||||
serial_adapters: Optional[int] = Field(2, ge=0, description="Number of serial adapters")
|
||||
ram: Optional[int] = Field(256, gt=0, description="Amount of RAM in MB")
|
||||
nvram: Optional[int] = Field(128, gt=0, description="Amount of NVRAM in KB")
|
||||
use_default_iou_values: Optional[bool] = Field(True, description="Use default IOU values")
|
||||
startup_config: Optional[str] = Field("iou_l3_base_startup-config.txt", description="Startup-config of IOU")
|
||||
private_config: Optional[str] = Field("", description="Private-config of IOU")
|
||||
|
||||
@@ -39,7 +39,7 @@ class QemuTemplate(TemplateBase):
|
||||
qemu_path: Optional[str] = Field("", description="Qemu executable path")
|
||||
platform: Optional[QemuPlatform] = Field(QemuPlatform.x86_64, description="Platform to emulate")
|
||||
linked_clone: Optional[bool] = Field(True, description="Whether the VM is a linked clone or not")
|
||||
ram: Optional[int] = Field(256, description="Amount of RAM in MB")
|
||||
ram: Optional[int] = Field(256, gt=0, description="Amount of RAM in MB")
|
||||
cpus: Optional[int] = Field(1, ge=1, le=255, description="Number of vCPUs")
|
||||
maxcpus: Optional[int] = Field(1, ge=1, le=255, description="Maximum number of hotpluggable vCPUs")
|
||||
adapters: Optional[int] = Field(1, ge=0, le=275, description="Number of adapters")
|
||||
|
||||
@@ -39,7 +39,7 @@ class UserCreate(UserBase):
|
||||
"""
|
||||
|
||||
username: str = Field(..., min_length=3, pattern="[a-zA-Z0-9_-]+$")
|
||||
password: SecretStr = Field(..., min_length=6, max_length=100)
|
||||
password: SecretStr = Field(..., min_length=8, max_length=100)
|
||||
|
||||
|
||||
class UserUpdate(UserBase):
|
||||
@@ -47,7 +47,7 @@ class UserUpdate(UserBase):
|
||||
Properties to update a user.
|
||||
"""
|
||||
|
||||
password: Optional[SecretStr] = Field(None, min_length=6, max_length=100)
|
||||
password: Optional[SecretStr] = Field(None, min_length=8, max_length=100)
|
||||
|
||||
|
||||
class LoggedInUserUpdate(BaseModel):
|
||||
@@ -55,7 +55,7 @@ class LoggedInUserUpdate(BaseModel):
|
||||
Properties to update a logged-in user.
|
||||
"""
|
||||
|
||||
password: Optional[SecretStr] = Field(None, min_length=6, max_length=100)
|
||||
password: Optional[SecretStr] = Field(None, min_length=8, max_length=100)
|
||||
email: Optional[EmailStr] = None
|
||||
full_name: Optional[str] = None
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@ Start the program. Use main.py to load it.
|
||||
import os
|
||||
import datetime
|
||||
import locale
|
||||
import argparse
|
||||
import psutil
|
||||
import sys
|
||||
import asyncio
|
||||
@@ -33,13 +32,10 @@ import uvicorn
|
||||
import secrets
|
||||
import string
|
||||
|
||||
from gns3server.controller import Controller
|
||||
from gns3server.compute.port_manager import PortManager
|
||||
from gns3server.logger import init_logger
|
||||
from gns3server.version import __version__
|
||||
from gns3server.config import Config
|
||||
from gns3server.crash_report import CrashReport
|
||||
from gns3server.api.server import app
|
||||
from pydantic import ValidationError, SecretStr
|
||||
|
||||
import logging
|
||||
@@ -90,40 +86,13 @@ class Server:
|
||||
else:
|
||||
log.info(f"Current locale is {language}.{encoding}")
|
||||
|
||||
def _parse_arguments(self, argv):
|
||||
def _setup_logging(self, args):
|
||||
"""
|
||||
Parse command line arguments and override local configuration
|
||||
Setup logging.
|
||||
|
||||
:params args: Array of command line arguments
|
||||
:param args: command line arguments
|
||||
"""
|
||||
|
||||
parser = argparse.ArgumentParser(description=f"GNS3 server version {__version__}")
|
||||
parser.add_argument("-v", "--version", help="show the version", action="version", version=__version__)
|
||||
parser.add_argument("--host", help="run on the given host/IP address")
|
||||
parser.add_argument("--port", help="run on the given port", type=int)
|
||||
parser.add_argument("--ssl", action="store_true", help="run in SSL mode")
|
||||
parser.add_argument("--config", help="Configuration file")
|
||||
parser.add_argument("--certfile", help="SSL cert file")
|
||||
parser.add_argument("--certkey", help="SSL key file")
|
||||
parser.add_argument("-L", "--local", action="store_true", help="local mode (allows some insecure operations)")
|
||||
parser.add_argument(
|
||||
"-A", "--allow", action="store_true", help="allow remote connections to local console ports"
|
||||
)
|
||||
parser.add_argument("-q", "--quiet", default=False, action="store_true", help="do not show logs on stdout")
|
||||
parser.add_argument("-d", "--debug", default=False, action="store_true", help="show debug logs")
|
||||
parser.add_argument("--logfile", "--log", help="send output to logfile instead of console")
|
||||
parser.add_argument("--logmaxsize", default=10000000, help="maximum logfile size in bytes (default is 10MB)")
|
||||
parser.add_argument(
|
||||
"--logbackupcount", default=10, help="number of historical log files to keep (default is 10)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--logcompression", default=False, action="store_true", help="compress inactive (historical) logs"
|
||||
)
|
||||
parser.add_argument("--daemon", action="store_true", help="start as a daemon")
|
||||
parser.add_argument("--pid", help="store process pid")
|
||||
parser.add_argument("--profile", help="Settings profile (blank will use default settings files)")
|
||||
|
||||
args = parser.parse_args(argv)
|
||||
level = logging.INFO
|
||||
if args.debug:
|
||||
level = logging.DEBUG
|
||||
@@ -137,6 +106,15 @@ class Server:
|
||||
quiet=args.quiet,
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def _load_config_and_set_defaults(parser, args, argv=None):
|
||||
"""
|
||||
Parse command line arguments and override local configuration
|
||||
|
||||
:param parser: ArgumentParser instance
|
||||
:param args: command line arguments
|
||||
"""
|
||||
|
||||
try:
|
||||
if args.config:
|
||||
Config.instance(files=[args.config], profile=args.profile)
|
||||
@@ -157,7 +135,10 @@ class Server:
|
||||
}
|
||||
|
||||
parser.set_defaults(**defaults)
|
||||
return parser.parse_args(argv)
|
||||
if argv is None:
|
||||
argv = sys.argv[1:]
|
||||
args = parser.parse_args(argv)
|
||||
return args
|
||||
|
||||
@staticmethod
|
||||
def _set_config_defaults_from_command_line(args):
|
||||
@@ -174,6 +155,8 @@ class Server:
|
||||
config.Server.enable_ssl = args.ssl
|
||||
|
||||
def _signal_handling(self):
|
||||
|
||||
from gns3server.controller import Controller
|
||||
def signal_handler(signame, *args):
|
||||
|
||||
try:
|
||||
@@ -239,9 +222,10 @@ class Server:
|
||||
log.critical("Can't write pid file %s: %s", path, str(e))
|
||||
sys.exit(1)
|
||||
|
||||
async def run(self):
|
||||
async def run(self, parser, args):
|
||||
|
||||
args = self._parse_arguments(sys.argv[1:])
|
||||
self._setup_logging(args)
|
||||
args = self._load_config_and_set_defaults(parser, args)
|
||||
|
||||
if args.pid:
|
||||
self._pid_lock(args.pid)
|
||||
@@ -256,7 +240,6 @@ class Server:
|
||||
|
||||
self._set_config_defaults_from_command_line(args)
|
||||
config = Config.instance().settings
|
||||
|
||||
if not config.Server.compute_password.get_secret_value():
|
||||
alphabet = string.ascii_letters + string.digits + string.punctuation
|
||||
generated_password = ''.join(secrets.choice(alphabet) for _ in range(16))
|
||||
@@ -297,11 +280,13 @@ class Server:
|
||||
host = config.Server.host
|
||||
port = config.Server.port
|
||||
|
||||
from gns3server.compute.port_manager import PortManager
|
||||
PortManager.instance().console_host = host
|
||||
self._signal_handling()
|
||||
|
||||
try:
|
||||
log.info(f"Starting server on {host}:{port}")
|
||||
from gns3server.api.server import app
|
||||
|
||||
# only show uvicorn access logs in debug mode
|
||||
access_log = False
|
||||
|
||||
@@ -46,6 +46,6 @@
|
||||
|
||||
gtag('config', 'G-0BT7QQV1W1');
|
||||
</script>
|
||||
<script src="runtime.24fa95b7061d7056.js" type="module"></script><script src="polyfills.319c79dd175e50d0.js" type="module"></script><script src="main.62c99707e4709a56.js" type="module"></script>
|
||||
<script src="runtime.24fa95b7061d7056.js" type="module"></script><script src="polyfills.319c79dd175e50d0.js" type="module"></script><script src="main.87178dd64c9c79ba.js" type="module"></script>
|
||||
|
||||
</body></html>
|
||||
@@ -1 +0,0 @@
|
||||
(self.webpackChunkgns3_web_ui=self.webpackChunkgns3_web_ui||[]).push([[179],{5735:function(De,K,m){"use strict";m.d(K,{o:function(){return R}});var G=m(5671),W=m(3144),A=m(591),U=m(8929),R=function(){function P(){(0,G.Z)(this,P),this.data=[],this.dataChange=new A.X([]),this.itemUpdated=new U.xQ}return(0,W.Z)(P,[{key:"getItems",value:function(){return this.data}},{key:"add",value:function(D){this.findIndex(D)>=0?this.update(D):(this.data.push(D),this.dataChange.next(this.data))}},{key:"set",value:function(D){var j=this;D.forEach(function(v){var k=j.findIndex(v);if(k>=0){var b=Object.assign(j.data[k],v);j.data[k]=b}else j.data.push(v)}),this.data.filter(function(v){return 0===D.filter(function(k){return j.getItemKey(k)===j.getItemKey(v)}).length}).forEach(function(v){return j.remove(v)}),this.dataChange.next(this.data)}},{key:"get",value:function(D){var j=this,L=this.data.findIndex(function(v){return j.getItemKey(v)===D});if(L>=0)return this.data[L]}},{key:"update",value:function(D){var j=this.findIndex(D);if(j>=0){var L=Object.assign(this.data[j],D);this.data[j]=L,this.dataChange.next(this.data),this.itemUpdated.next(L)}}},{key:"remove",value:function(D){var j=this.findIndex(D);j>=0&&(this.data.splice(j,1),this.dataChange.next(this.data))}},{key:"changes",get:function(){return this.dataChange}},{key:"itemChanged",get:function(){return this.itemUpdated}},{key:"clear",value:function(){this.data=[],this.dataChange.next(this.data)}},{key:"findIndex",value:function(D){var j=this;return this.data.findIndex(function(L){return j.getItemKey(L)===j.getItemKey(D)})}}]),P}()},6215:function(De,K,m){"use strict";m.d(K,{F:function(){return E}});var G=m(5671),W=m(3144),A=m(136),U=m(9388),R=m(5735),P=m(5e3),E=function(D){(0,A.Z)(L,D);var j=(0,U.Z)(L);function L(){return(0,G.Z)(this,L),j.apply(this,arguments)}return(0,W.Z)(L,[{key:"getItemKey",value:function(k){return k.link_id}}]),L}(R.o);E.\u0275fac=function(){var D;return function(L){return(D||(D=P.n5z(E)))(L||E)}}(),E.\u0275prov=P.Yz7({token:E,factory:E.\u0275fac})},5366:function(De,K,m){"use strict";m.d(K,{G:function(){return E}});var G=m(5671),W=m(3144),A=m(136),U=m(9388),R=m(5735),P=m(5e3),E=function(D){(0,A.Z)(L,D);var j=(0,U.Z)(L);function L(){return(0,G.Z)(this,L),j.apply(this,arguments)}return(0,W.Z)(L,[{key:"getItemKey",value:function(k){return k.node_id}}]),L}(R.o);E.\u0275fac=function(){var D;return function(L){return(D||(D=P.n5z(E)))(L||E)}}(),E.\u0275prov=P.Yz7({token:E,factory:E.\u0275fac})},5542:function(De,K,m){"use strict";m.d(K,{X:function(){return R}});var G=m(5671),W=m(3144),A=m(5e3),U=m(2437),R=function(){function P(E){(0,G.Z)(this,P),this.httpController=E}return(0,W.Z)(P,[{key:"getComputes",value:function(D){return this.httpController.get(D,"/computes")}},{key:"getStatistics",value:function(D){return this.httpController.get(D,"/statistics")}}]),P}();R.\u0275fac=function(E){return new(E||R)(A.LFG(U.zw))},R.\u0275prov=A.Yz7({token:R,factory:R.\u0275fac})},2437:function(De,K,m){"use strict";m.d(K,{CJ:function(){return k},zw:function(){return b}});var G=m(5671),W=m(3144),A=m(136),U=m(9388),R=m(5724),P=m(5e3),E=m(4766),D=m(1737),j=m(7221),L=m(520),v=function(O){(0,A.Z)(y,O);var S=(0,U.Z)(y);function y(T){return(0,G.Z)(this,y),S.call(this,T)}return(0,W.Z)(y,null,[{key:"fromError",value:function(M,x){var N=new y(M);return N.originalError=x,N}}]),y}((0,R.Z)(Error)),k=function(){function O(){(0,G.Z)(this,O)}return(0,W.Z)(O,[{key:"handleError",value:function(y){var T=y;return"HttpErrorResponse"===y.name&&0===y.status&&(T=v.fromError("Controller is unreachable",y)),401===y.status&&window.location.reload(),(0,D._)(T)}}]),O}();k.\u0275fac=function(S){return new(S||k)},k.\u0275prov=P.Yz7({token:k,factory:k.\u0275fac});var b=function(){function O(S,y){(0,G.Z)(this,O),this.http=S,this.errorHandler=y,this.requestsNotificationEmitter=new P.vpe}return(0,W.Z)(O,[{key:"get",value:function(y,T,M){M=this.getJsonOptions(M);var x=this.getOptionsForController(y,T,M);return this.requestsNotificationEmitter.emit("GET ".concat(x.url)),this.http.get(x.url,x.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"getText",value:function(y,T,M){M=this.getTextOptions(M);var x=this.getOptionsForController(y,T,M);return this.requestsNotificationEmitter.emit("GET ".concat(x.url)),this.http.get(x.url,x.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"getBlob",value:function(y,T,M){M=this.getBlobOptions(M);var x=this.getOptionsForController(y,T,M);return this.requestsNotificationEmitter.emit("GET ".concat(x.url)),this.http.get(x.url,x.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"post",value:function(y,T,M,x){x=this.getJsonOptions(x);var N=this.getOptionsForController(y,T,x);return this.requestsNotificationEmitter.emit("POST ".concat(N.url)),this.http.post(N.url,M,N.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"put",value:function(y,T,M,x){x=this.getJsonOptions(x);var N=this.getOptionsForController(y,T,x);return this.requestsNotificationLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
(self.webpackChunkgns3_web_ui=self.webpackChunkgns3_web_ui||[]).push([[179],{5735:function(Ae,K,m){"use strict";m.d(K,{o:function(){return R}});var G=m(5671),W=m(3144),A=m(591),H=m(8929),R=function(){function P(){(0,G.Z)(this,P),this.data=[],this.dataChange=new A.X([]),this.itemUpdated=new H.xQ}return(0,W.Z)(P,[{key:"getItems",value:function(){return this.data}},{key:"add",value:function(D){this.findIndex(D)>=0?this.update(D):(this.data.push(D),this.dataChange.next(this.data))}},{key:"set",value:function(D){var j=this;D.forEach(function(v){var k=j.findIndex(v);if(k>=0){var b=Object.assign(j.data[k],v);j.data[k]=b}else j.data.push(v)}),this.data.filter(function(v){return 0===D.filter(function(k){return j.getItemKey(k)===j.getItemKey(v)}).length}).forEach(function(v){return j.remove(v)}),this.dataChange.next(this.data)}},{key:"get",value:function(D){var j=this,L=this.data.findIndex(function(v){return j.getItemKey(v)===D});if(L>=0)return this.data[L]}},{key:"update",value:function(D){var j=this.findIndex(D);if(j>=0){var L=Object.assign(this.data[j],D);this.data[j]=L,this.dataChange.next(this.data),this.itemUpdated.next(L)}}},{key:"remove",value:function(D){var j=this.findIndex(D);j>=0&&(this.data.splice(j,1),this.dataChange.next(this.data))}},{key:"changes",get:function(){return this.dataChange}},{key:"itemChanged",get:function(){return this.itemUpdated}},{key:"clear",value:function(){this.data=[],this.dataChange.next(this.data)}},{key:"findIndex",value:function(D){var j=this;return this.data.findIndex(function(L){return j.getItemKey(L)===j.getItemKey(D)})}}]),P}()},6215:function(Ae,K,m){"use strict";m.d(K,{F:function(){return x}});var G=m(5671),W=m(3144),A=m(136),H=m(9388),R=m(5735),P=m(5e3),x=function(D){(0,A.Z)(L,D);var j=(0,H.Z)(L);function L(){return(0,G.Z)(this,L),j.apply(this,arguments)}return(0,W.Z)(L,[{key:"getItemKey",value:function(k){return k.link_id}}]),L}(R.o);x.\u0275fac=function(){var D;return function(L){return(D||(D=P.n5z(x)))(L||x)}}(),x.\u0275prov=P.Yz7({token:x,factory:x.\u0275fac})},5366:function(Ae,K,m){"use strict";m.d(K,{G:function(){return x}});var G=m(5671),W=m(3144),A=m(136),H=m(9388),R=m(5735),P=m(5e3),x=function(D){(0,A.Z)(L,D);var j=(0,H.Z)(L);function L(){return(0,G.Z)(this,L),j.apply(this,arguments)}return(0,W.Z)(L,[{key:"getItemKey",value:function(k){return k.node_id}}]),L}(R.o);x.\u0275fac=function(){var D;return function(L){return(D||(D=P.n5z(x)))(L||x)}}(),x.\u0275prov=P.Yz7({token:x,factory:x.\u0275fac})},5542:function(Ae,K,m){"use strict";m.d(K,{X:function(){return R}});var G=m(5671),W=m(3144),A=m(5e3),H=m(2437),R=function(){function P(x){(0,G.Z)(this,P),this.httpController=x}return(0,W.Z)(P,[{key:"getComputes",value:function(D){return this.httpController.get(D,"/computes")}},{key:"getStatistics",value:function(D){return this.httpController.get(D,"/statistics")}}]),P}();R.\u0275fac=function(x){return new(x||R)(A.LFG(H.zw))},R.\u0275prov=A.Yz7({token:R,factory:R.\u0275fac})},2437:function(Ae,K,m){"use strict";m.d(K,{CJ:function(){return k},zw:function(){return b}});var G=m(5671),W=m(3144),A=m(136),H=m(9388),R=m(5724),P=m(5e3),x=m(4766),D=m(1737),j=m(7221),L=m(520),v=function(O){(0,A.Z)(y,O);var S=(0,H.Z)(y);function y(T){return(0,G.Z)(this,y),S.call(this,T)}return(0,W.Z)(y,null,[{key:"fromError",value:function(M,E){var N=new y(M);return N.originalError=E,N}}]),y}((0,R.Z)(Error)),k=function(){function O(){(0,G.Z)(this,O)}return(0,W.Z)(O,[{key:"handleError",value:function(y){var T=y;return"HttpErrorResponse"===y.name&&0===y.status&&(T=v.fromError("Controller is unreachable",y)),401===y.status&&window.location.reload(),(0,D._)(T)}}]),O}();k.\u0275fac=function(S){return new(S||k)},k.\u0275prov=P.Yz7({token:k,factory:k.\u0275fac});var b=function(){function O(S,y){(0,G.Z)(this,O),this.http=S,this.errorHandler=y,this.requestsNotificationEmitter=new P.vpe}return(0,W.Z)(O,[{key:"get",value:function(y,T,M){M=this.getJsonOptions(M);var E=this.getOptionsForController(y,T,M);return this.requestsNotificationEmitter.emit("GET ".concat(E.url)),this.http.get(E.url,E.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"getText",value:function(y,T,M){M=this.getTextOptions(M);var E=this.getOptionsForController(y,T,M);return this.requestsNotificationEmitter.emit("GET ".concat(E.url)),this.http.get(E.url,E.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"getBlob",value:function(y,T,M){M=this.getBlobOptions(M);var E=this.getOptionsForController(y,T,M);return this.requestsNotificationEmitter.emit("GET ".concat(E.url)),this.http.get(E.url,E.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"post",value:function(y,T,M,E){E=this.getJsonOptions(E);var N=this.getOptionsForController(y,T,E);return this.requestsNotificationEmitter.emit("POST ".concat(N.url)),this.http.post(N.url,M,N.options).pipe((0,j.K)(this.errorHandler.handleError))}},{key:"put",value:function(y,T,M,E){E=this.getJsonOptions(E);var N=this.getOptionsForController(y,T,E);return this.requestsNotificationLine truncated
|
||||
@@ -22,8 +22,8 @@
|
||||
# or negative for a release candidate or beta (after the base version
|
||||
# number has been incremented)
|
||||
|
||||
__version__ = "3.0.2"
|
||||
__version_info__ = (3, 0, 2, 0)
|
||||
__version__ = "3.0.4"
|
||||
__version_info__ = (3, 0, 4, 0)
|
||||
|
||||
if "dev" in __version__:
|
||||
try:
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
uvicorn==0.33.0 # uvicorn 0.33 is the last version supporting Python 3.8
|
||||
pydantic==2.10.4
|
||||
fastapi==0.115.6
|
||||
uvicorn==0.34.0 # uvicorn 0.33 is the last version supporting Python 3.8
|
||||
pydantic==2.10.6
|
||||
fastapi==0.115.8
|
||||
python-multipart==0.0.20
|
||||
websockets==14.1
|
||||
aiohttp>=3.10.10,<3.11
|
||||
websockets==15.0
|
||||
aiohttp>=3.11.13,<3.12
|
||||
async-timeout==5.0.1; python_version < '3.11'
|
||||
aiofiles>=24.1.0,<25.0
|
||||
Jinja2>=3.1.5,<3.2
|
||||
sentry-sdk>=2.19.2,<2.20 # optional dependency
|
||||
psutil>=6.1.1
|
||||
sentry-sdk>=2.22,<2.23 # optional dependency
|
||||
psutil>=7.0.0
|
||||
distro>=1.9.0
|
||||
py-cpuinfo>=9.0.0,<10.0
|
||||
greenlet==3.1.1 # necessary to run sqlalchemy on Python 3.13
|
||||
sqlalchemy==2.0.36
|
||||
aiosqlite==0.20.0
|
||||
alembic==1.14.0
|
||||
sqlalchemy==2.0.38
|
||||
aiosqlite==0.21.0
|
||||
alembic==1.14.1
|
||||
bcrypt==4.2.1
|
||||
joserfc==1.0.1
|
||||
joserfc==1.0.3
|
||||
email-validator==2.2.0
|
||||
watchdog==6.0.0
|
||||
zstandard==0.23.0
|
||||
platformdirs>=2.4.0,<3 # platformdirs >=3 conflicts when building Debian packages
|
||||
importlib-resources>=1.3; python_version <= '3.9'
|
||||
truststore>=0.10.0; python_version >= '3.10'
|
||||
truststore>=0.10.1; python_version >= '3.10'
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (C) 2016 GNS3 Technologies Inc.
|
||||
#
|
||||
@@ -21,10 +21,15 @@
|
||||
|
||||
rm gns3server/appliances/*
|
||||
rmdir gns3server/appliances
|
||||
rm gns3server/custom_symbols/*
|
||||
rmdir gns3server/custom_symbols
|
||||
rm -Rf /tmp/gns3-registry
|
||||
|
||||
git clone https://github.com/GNS3/gns3-registry.git /tmp/gns3-registry
|
||||
mv /tmp/gns3-registry/appliances gns3server/appliances
|
||||
mv /tmp/gns3-registry/symbols gns3server/custom_symbols
|
||||
rm -f gns3server/custom_symbols/*.{txt,rst,md}
|
||||
|
||||
git add gns3server/appliances/*
|
||||
git add gns3server/custom_symbols/*
|
||||
git commit -m "Sync appliances"
|
||||
@@ -29,27 +29,29 @@ from gns3server.utils.path import get_default_project_directory
|
||||
pytestmark = pytest.mark.asyncio
|
||||
|
||||
|
||||
async def test_get(app: FastAPI, compute_client: AsyncClient, windows_platform) -> None:
|
||||
class TestCapabilitiesRoutes:
|
||||
|
||||
response = await compute_client.get(app.url_path_for("compute:get_capabilities"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json() == {'node_types': ['cloud', 'ethernet_hub', 'ethernet_switch', 'nat', 'vpcs', 'virtualbox', 'dynamips', 'frame_relay_switch', 'atm_switch', 'qemu', 'vmware', 'docker', 'iou'],
|
||||
'version': __version__,
|
||||
'platform': sys.platform,
|
||||
'cpus': psutil.cpu_count(logical=True),
|
||||
'memory': psutil.virtual_memory().total,
|
||||
'disk_size': psutil.disk_usage(get_default_project_directory()).total,
|
||||
}
|
||||
async def test_get(self, app: FastAPI, compute_client: AsyncClient, windows_platform) -> None:
|
||||
|
||||
response = await compute_client.get(app.url_path_for("compute:get_capabilities"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json() == {'node_types': ['cloud', 'ethernet_hub', 'ethernet_switch', 'nat', 'vpcs', 'virtualbox', 'dynamips', 'frame_relay_switch', 'atm_switch', 'qemu', 'vmware', 'docker', 'iou'],
|
||||
'version': __version__,
|
||||
'platform': sys.platform,
|
||||
'cpus': psutil.cpu_count(logical=True),
|
||||
'memory': psutil.virtual_memory().total,
|
||||
'disk_size': psutil.disk_usage(get_default_project_directory()).total,
|
||||
}
|
||||
|
||||
|
||||
async def test_get_on_gns3vm(app: FastAPI, compute_client: AsyncClient, on_gns3vm) -> None:
|
||||
async def test_get_on_gns3vm(self, app: FastAPI, compute_client: AsyncClient, on_gns3vm) -> None:
|
||||
|
||||
response = await compute_client.get(app.url_path_for("compute:get_capabilities"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json() == {'node_types': ['cloud', 'ethernet_hub', 'ethernet_switch', 'nat', 'vpcs', 'virtualbox', 'dynamips', 'frame_relay_switch', 'atm_switch', 'qemu', 'vmware', 'docker', 'iou'],
|
||||
'version': __version__,
|
||||
'platform': sys.platform,
|
||||
'cpus': psutil.cpu_count(logical=True),
|
||||
'memory': psutil.virtual_memory().total,
|
||||
'disk_size': psutil.disk_usage(get_default_project_directory()).total,
|
||||
}
|
||||
response = await compute_client.get(app.url_path_for("compute:get_capabilities"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json() == {'node_types': ['cloud', 'ethernet_hub', 'ethernet_switch', 'nat', 'vpcs', 'virtualbox', 'dynamips', 'frame_relay_switch', 'atm_switch', 'qemu', 'vmware', 'docker', 'iou'],
|
||||
'version': __version__,
|
||||
'platform': sys.platform,
|
||||
'cpus': psutil.cpu_count(logical=True),
|
||||
'memory': psutil.virtual_memory().total,
|
||||
'disk_size': psutil.disk_usage(get_default_project_directory()).total,
|
||||
}
|
||||
@@ -28,154 +28,193 @@ from gns3server.compute.project import Project
|
||||
pytestmark = pytest.mark.asyncio
|
||||
|
||||
|
||||
@pytest_asyncio.fixture(scope="function")
|
||||
async def vm(app: FastAPI, compute_client: AsyncClient, compute_project: Project, on_gns3vm) -> dict:
|
||||
class TestCloudNodesRoutes:
|
||||
|
||||
with asyncio_patch("gns3server.compute.builtin.nodes.cloud.Cloud._start_ubridge"):
|
||||
response = await compute_client.post(app.url_path_for("compute:create_cloud", project_id=compute_project.id),
|
||||
json={"name": "Cloud 1"})
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
return response.json()
|
||||
@pytest_asyncio.fixture
|
||||
async def vm(self, app: FastAPI, compute_client: AsyncClient, compute_project: Project, on_gns3vm) -> dict:
|
||||
|
||||
with asyncio_patch("gns3server.compute.builtin.nodes.cloud.Cloud._start_ubridge"):
|
||||
response = await compute_client.post(app.url_path_for("compute:create_cloud", project_id=compute_project.id),
|
||||
json={"name": "Cloud 1"})
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
return response.json()
|
||||
|
||||
|
||||
async def test_cloud_create(app: FastAPI, compute_client: AsyncClient, compute_project: Project) -> None:
|
||||
async def test_cloud_create(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project
|
||||
) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.builtin.nodes.cloud.Cloud._start_ubridge"):
|
||||
response = await compute_client.post(app.url_path_for("compute:create_cloud", project_id=compute_project.id),
|
||||
json={"name": "Cloud 1"})
|
||||
assert response.status_code == 201
|
||||
assert response.json()["name"] == "Cloud 1"
|
||||
assert response.json()["project_id"] == compute_project.id
|
||||
with asyncio_patch("gns3server.compute.builtin.nodes.cloud.Cloud._start_ubridge"):
|
||||
response = await compute_client.post(app.url_path_for("compute:create_cloud", project_id=compute_project.id),
|
||||
json={"name": "Cloud 1"})
|
||||
assert response.status_code == 201
|
||||
assert response.json()["name"] == "Cloud 1"
|
||||
assert response.json()["project_id"] == compute_project.id
|
||||
|
||||
|
||||
async def test_get_cloud(app: FastAPI, compute_client: AsyncClient, compute_project: Project, vm: dict) -> None:
|
||||
async def test_get_cloud(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
vm: dict
|
||||
) -> None:
|
||||
|
||||
response = await compute_client.get(app.url_path_for("compute:get_cloud", project_id=vm["project_id"], node_id=vm["node_id"]))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["name"] == "Cloud 1"
|
||||
assert response.json()["project_id"] == compute_project.id
|
||||
assert response.json()["status"] == "started"
|
||||
|
||||
|
||||
async def test_cloud_nio_create_udp(app: FastAPI, compute_client: AsyncClient, compute_project: Project, vm: dict) -> None:
|
||||
|
||||
params = {"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"}
|
||||
|
||||
url = app.url_path_for("compute:create_cloud_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_udp"
|
||||
|
||||
|
||||
async def test_cloud_nio_update_udp(app: FastAPI, compute_client: AsyncClient, compute_project: Project, vm: dict) -> None:
|
||||
|
||||
params = {"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"}
|
||||
|
||||
url = app.url_path_for("compute:create_cloud_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
await compute_client.post(url, json=params)
|
||||
|
||||
params["filters"] = {}
|
||||
url = app.url_path_for("compute:create_cloud_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
response = await compute_client.put(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_udp"
|
||||
|
||||
|
||||
async def test_cloud_delete_nio(app: FastAPI, compute_client: AsyncClient, compute_project: Project, vm: dict) -> None:
|
||||
|
||||
params = {"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"}
|
||||
|
||||
url = app.url_path_for("compute:create_cloud_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
await compute_client.post(url, json=params)
|
||||
|
||||
url = app.url_path_for("compute:delete_cloud_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
with asyncio_patch("gns3server.compute.builtin.nodes.cloud.Cloud._start_ubridge"):
|
||||
response = await compute_client.delete(url)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_cloud_delete(app: FastAPI, compute_client: AsyncClient, compute_project: Project, vm: dict) -> None:
|
||||
|
||||
response = await compute_client.delete(app.url_path_for("compute:delete_cloud", project_id=vm["project_id"], node_id=vm["node_id"]))
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_cloud_update(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
response = await compute_client.put(app.url_path_for("compute:update_cloud", project_id=vm["project_id"], node_id=vm["node_id"]),
|
||||
json={"name": "test"})
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["name"] == "test"
|
||||
|
||||
|
||||
async def test_cloud_start_capture(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
params = {
|
||||
"capture_file_name": "test.pcap",
|
||||
"data_link_type": "DLT_EN10MB"
|
||||
}
|
||||
|
||||
with asyncio_patch("gns3server.compute.builtin.nodes.cloud.Cloud.start_capture") as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:start_cloud_capture",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0"),
|
||||
json=params)
|
||||
response = await compute_client.get(app.url_path_for("compute:get_cloud", project_id=vm["project_id"], node_id=vm["node_id"]))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert mock.called
|
||||
assert "test.pcap" in response.json()["pcap_file_path"]
|
||||
assert response.json()["name"] == "Cloud 1"
|
||||
assert response.json()["project_id"] == compute_project.id
|
||||
assert response.json()["status"] == "started"
|
||||
|
||||
|
||||
async def test_cloud_stop_capture(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
async def test_cloud_nio_create_udp(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
vm: dict
|
||||
) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.builtin.nodes.cloud.Cloud.stop_capture") as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:stop_cloud_capture",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0"))
|
||||
params = {"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"}
|
||||
|
||||
url = app.url_path_for("compute:create_cloud_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_udp"
|
||||
|
||||
|
||||
async def test_cloud_nio_update_udp(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
vm: dict
|
||||
) -> None:
|
||||
|
||||
params = {"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"}
|
||||
|
||||
url = app.url_path_for("compute:create_cloud_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
await compute_client.post(url, json=params)
|
||||
|
||||
params["filters"] = {}
|
||||
url = app.url_path_for("compute:create_cloud_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
response = await compute_client.put(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_udp"
|
||||
|
||||
|
||||
async def test_cloud_delete_nio(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
vm: dict
|
||||
) -> None:
|
||||
|
||||
params = {"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"}
|
||||
|
||||
url = app.url_path_for("compute:create_cloud_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
await compute_client.post(url, json=params)
|
||||
|
||||
url = app.url_path_for("compute:delete_cloud_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
with asyncio_patch("gns3server.compute.builtin.nodes.cloud.Cloud._start_ubridge"):
|
||||
response = await compute_client.delete(url)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
assert mock.called
|
||||
|
||||
|
||||
# @pytest.mark.asyncio
|
||||
# async def test_cloud_pcap(compute_api, vm, compute_project):
|
||||
#
|
||||
# from itertools import repeat
|
||||
# stream = repeat(42, times=10)
|
||||
#
|
||||
# with asyncio_patch("gns3server.compute.builtin.nodes.cloud.Cloud.get_nio"):
|
||||
# with asyncio_patch("gns3server.compute.builtin.Builtin.stream_pcap_file", return_value=stream):
|
||||
# response = await compute_api.get("/projects/{project_id}/cloud/nodes/{node_id}/adapters/0/ports/0/pcap".format(project_id=compute_project.id, node_id=vm["node_id"]))
|
||||
# assert response.status_code == 200
|
||||
#
|
||||
async def test_cloud_delete(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
vm: dict
|
||||
) -> None:
|
||||
|
||||
response = await compute_client.delete(app.url_path_for("compute:delete_cloud", project_id=vm["project_id"], node_id=vm["node_id"]))
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_cloud_update(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
vm: dict
|
||||
) -> None:
|
||||
|
||||
response = await compute_client.put(app.url_path_for("compute:update_cloud", project_id=vm["project_id"], node_id=vm["node_id"]),
|
||||
json={"name": "test"})
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["name"] == "test"
|
||||
|
||||
|
||||
async def test_cloud_start_capture(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
vm: dict
|
||||
) -> None:
|
||||
|
||||
params = {
|
||||
"capture_file_name": "test.pcap",
|
||||
"data_link_type": "DLT_EN10MB"
|
||||
}
|
||||
|
||||
with asyncio_patch("gns3server.compute.builtin.nodes.cloud.Cloud.start_capture") as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:start_cloud_capture",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0"),
|
||||
json=params)
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert mock.called
|
||||
assert "test.pcap" in response.json()["pcap_file_path"]
|
||||
|
||||
|
||||
async def test_cloud_stop_capture(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.builtin.nodes.cloud.Cloud.stop_capture") as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:stop_cloud_capture",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0"))
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
assert mock.called
|
||||
|
||||
|
||||
# @pytest.mark.asyncio
|
||||
# async def test_cloud_pcap(self, compute_api, vm, compute_project):
|
||||
#
|
||||
# from itertools import repeat
|
||||
# stream = repeat(42, times=10)
|
||||
#
|
||||
# with asyncio_patch("gns3server.compute.builtin.nodes.cloud.Cloud.get_nio"):
|
||||
# with asyncio_patch("gns3server.compute.builtin.Builtin.stream_pcap_file", return_value=stream):
|
||||
# response = await compute_api.get("/projects/{project_id}/cloud/nodes/{node_id}/adapters/0/ports/0/pcap".format(project_id=compute_project.id, node_id=vm["node_id"]))
|
||||
# assert response.status_code == 200
|
||||
#
|
||||
@@ -26,41 +26,48 @@ from gns3server.compute.project import Project
|
||||
pytestmark = pytest.mark.asyncio
|
||||
|
||||
|
||||
async def test_udp_allocation(app: FastAPI, compute_client: AsyncClient, compute_project: Project) -> None:
|
||||
class TestComputeRoutes:
|
||||
|
||||
response = await compute_client.post(app.url_path_for("compute:allocate_udp_port", project_id=compute_project.id), json={})
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()['udp_port'] is not None
|
||||
async def test_udp_allocation(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project
|
||||
) -> None:
|
||||
|
||||
response = await compute_client.post(app.url_path_for("compute:allocate_udp_port", project_id=compute_project.id), json={})
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()['udp_port'] is not None
|
||||
|
||||
|
||||
async def test_interfaces(app: FastAPI, compute_client: AsyncClient) -> None:
|
||||
async def test_interfaces(self, app: FastAPI, compute_client: AsyncClient) -> None:
|
||||
|
||||
response = await compute_client.get(app.url_path_for("compute:network_interfaces"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert isinstance(response.json(), list)
|
||||
response = await compute_client.get(app.url_path_for("compute:network_interfaces"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert isinstance(response.json(), list)
|
||||
|
||||
|
||||
async def test_version_output(app: FastAPI, compute_client: AsyncClient) -> None:
|
||||
async def test_version_output(self, app: FastAPI, compute_client: AsyncClient) -> None:
|
||||
|
||||
response = await compute_client.get(app.url_path_for("compute:compute_version"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json() == {'version': __version__}
|
||||
response = await compute_client.get(app.url_path_for("compute:compute_version"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json() == {'version': __version__}
|
||||
|
||||
|
||||
async def test_compute_authentication(app: FastAPI, compute_client: AsyncClient) -> None:
|
||||
async def test_compute_authentication(self, app: FastAPI, compute_client: AsyncClient) -> None:
|
||||
|
||||
response = await compute_client.get(app.url_path_for("compute:compute_version"), auth=("admin", "invalid_password"))
|
||||
assert response.status_code == status.HTTP_401_UNAUTHORIZED
|
||||
response = await compute_client.get(app.url_path_for("compute:compute_version"), auth=("admin", "invalid_password"))
|
||||
assert response.status_code == status.HTTP_401_UNAUTHORIZED
|
||||
|
||||
|
||||
# @pytest.mark.asyncio
|
||||
# async def test_debug_output(compute_api):
|
||||
#
|
||||
# response = await compute_api.get('/debug')
|
||||
# assert response.status_code == 200
|
||||
# @pytest.mark.asyncio
|
||||
# async def test_debug_output(compute_api):
|
||||
#
|
||||
# response = await compute_api.get('/debug')
|
||||
# assert response.status_code == 200
|
||||
|
||||
|
||||
async def test_statistics_output(app: FastAPI, compute_client: AsyncClient) -> None:
|
||||
async def test_statistics_output(self, app: FastAPI, compute_client: AsyncClient) -> None:
|
||||
|
||||
response = await compute_client.get(app.url_path_for("compute:compute_statistics"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
response = await compute_client.get(app.url_path_for("compute:compute_statistics"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
@@ -25,285 +25,299 @@ from unittest.mock import patch
|
||||
|
||||
from gns3server.compute.project import Project
|
||||
|
||||
pytestmark = [pytest.mark.asyncio]
|
||||
pytestmark = pytest.mark.asyncio
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def base_params() -> dict:
|
||||
"""Return standard parameters"""
|
||||
class TestDockerNodesRoutes:
|
||||
|
||||
params = {
|
||||
"name": "DOCKER-TEST-1",
|
||||
"image": "nginx",
|
||||
"start_command": "nginx-daemon",
|
||||
"adapters": 2,
|
||||
"environment": "YES=1\nNO=0",
|
||||
"console_type": "telnet",
|
||||
"console_resolution": "1280x1024",
|
||||
"extra_hosts": "test:127.0.0.1"
|
||||
}
|
||||
return params
|
||||
@pytest.fixture
|
||||
def base_params(self) -> dict:
|
||||
"""Return standard parameters"""
|
||||
|
||||
params = {
|
||||
"name": "DOCKER-TEST-1",
|
||||
"image": "nginx",
|
||||
"start_command": "nginx-daemon",
|
||||
"adapters": 2,
|
||||
"environment": "YES=1\nNO=0",
|
||||
"console_type": "telnet",
|
||||
"console_resolution": "1280x1024",
|
||||
"extra_hosts": "test:127.0.0.1"
|
||||
}
|
||||
return params
|
||||
|
||||
|
||||
# @pytest.yield_fixture(autouse=True)
|
||||
# def mock_connection():
|
||||
#
|
||||
# docker = Docker.instance()
|
||||
# docker._connected = True
|
||||
# docker._connector = MagicMock()
|
||||
# yield
|
||||
# Docker._instance = None
|
||||
# @pytest.yield_fixture(autouse=True)
|
||||
# def mock_connection():
|
||||
#
|
||||
# docker = Docker.instance()
|
||||
# docker._connected = True
|
||||
# docker._connector = MagicMock()
|
||||
# yield
|
||||
# Docker._instance = None
|
||||
|
||||
|
||||
@pytest_asyncio.fixture
|
||||
async def vm(app: FastAPI, compute_client: AsyncClient, compute_project: Project, base_params: dict) -> dict:
|
||||
@pytest_asyncio.fixture
|
||||
async def vm(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
base_params: dict
|
||||
) -> dict:
|
||||
|
||||
with asyncio_patch("gns3server.compute.docker.Docker.list_images", return_value=[{"image": "nginx"}]):
|
||||
with asyncio_patch("gns3server.compute.docker.Docker.query", return_value={"Id": "8bd8153ea8f5"}):
|
||||
with asyncio_patch("gns3server.compute.docker.DockerVM._get_container_state", return_value="exited"):
|
||||
response = await compute_client.post(app.url_path_for("compute:create_docker_node", project_id=compute_project.id),
|
||||
json=base_params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
return response.json()
|
||||
with asyncio_patch("gns3server.compute.docker.Docker.list_images", return_value=[{"image": "nginx"}]):
|
||||
with asyncio_patch("gns3server.compute.docker.Docker.query", return_value={"Id": "8bd8153ea8f5"}):
|
||||
with asyncio_patch("gns3server.compute.docker.DockerVM._get_container_state", return_value="exited"):
|
||||
response = await compute_client.post(app.url_path_for("compute:create_docker_node", project_id=compute_project.id),
|
||||
json=base_params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
return response.json()
|
||||
|
||||
|
||||
async def test_docker_create(app: FastAPI, compute_client: AsyncClient, compute_project: Project, base_params: dict) -> None:
|
||||
async def test_docker_create(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
base_params: dict
|
||||
) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.docker.Docker.list_images", return_value=[{"image": "nginx"}]):
|
||||
with asyncio_patch("gns3server.compute.docker.Docker.query", return_value={"Id": "8bd8153ea8f5"}):
|
||||
response = await compute_client.post(
|
||||
app.url_path_for("compute:create_docker_node", project_id=compute_project.id), json=base_params
|
||||
)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["name"] == "DOCKER-TEST-1"
|
||||
assert response.json()["project_id"] == compute_project.id
|
||||
assert response.json()["container_id"] == "8bd8153ea8f5"
|
||||
assert response.json()["image"] == "nginx:latest"
|
||||
assert response.json()["adapters"] == 2
|
||||
assert response.json()["environment"] == "YES=1\nNO=0"
|
||||
assert response.json()["console_resolution"] == "1280x1024"
|
||||
assert response.json()["extra_hosts"] == "test:127.0.0.1"
|
||||
with asyncio_patch("gns3server.compute.docker.Docker.list_images", return_value=[{"image": "nginx"}]):
|
||||
with asyncio_patch("gns3server.compute.docker.Docker.query", return_value={"Id": "8bd8153ea8f5"}):
|
||||
response = await compute_client.post(
|
||||
app.url_path_for("compute:create_docker_node", project_id=compute_project.id), json=base_params
|
||||
)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["name"] == "DOCKER-TEST-1"
|
||||
assert response.json()["project_id"] == compute_project.id
|
||||
assert response.json()["container_id"] == "8bd8153ea8f5"
|
||||
assert response.json()["image"] == "nginx:latest"
|
||||
assert response.json()["adapters"] == 2
|
||||
assert response.json()["environment"] == "YES=1\nNO=0"
|
||||
assert response.json()["console_resolution"] == "1280x1024"
|
||||
assert response.json()["extra_hosts"] == "test:127.0.0.1"
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"name, status_code",
|
||||
(
|
||||
("valid-name.com", status.HTTP_201_CREATED),
|
||||
("42name", status.HTTP_201_CREATED),
|
||||
("424242", status.HTTP_409_CONFLICT),
|
||||
("name42", status.HTTP_201_CREATED),
|
||||
("name.424242", status.HTTP_409_CONFLICT),
|
||||
("-name", status.HTTP_409_CONFLICT),
|
||||
("name%-test", status.HTTP_409_CONFLICT),
|
||||
("x" * 63, status.HTTP_201_CREATED),
|
||||
("x" * 64, status.HTTP_409_CONFLICT),
|
||||
(("x" * 62 + ".") * 4, status.HTTP_201_CREATED),
|
||||
("xx" + ("x" * 62 + ".") * 4, status.HTTP_409_CONFLICT),
|
||||
),
|
||||
)
|
||||
async def test_docker_create_with_invalid_name(
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
base_params: dict,
|
||||
name: str,
|
||||
status_code: int
|
||||
) -> None:
|
||||
@pytest.mark.parametrize(
|
||||
"name, status_code",
|
||||
(
|
||||
("valid-name.com", status.HTTP_201_CREATED),
|
||||
("42name", status.HTTP_201_CREATED),
|
||||
("424242", status.HTTP_409_CONFLICT),
|
||||
("name42", status.HTTP_201_CREATED),
|
||||
("name.424242", status.HTTP_409_CONFLICT),
|
||||
("-name", status.HTTP_409_CONFLICT),
|
||||
("name%-test", status.HTTP_409_CONFLICT),
|
||||
("x" * 63, status.HTTP_201_CREATED),
|
||||
("x" * 64, status.HTTP_409_CONFLICT),
|
||||
(("x" * 62 + ".") * 4, status.HTTP_201_CREATED),
|
||||
("xx" + ("x" * 62 + ".") * 4, status.HTTP_409_CONFLICT),
|
||||
),
|
||||
)
|
||||
async def test_docker_create_with_invalid_name(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
base_params: dict,
|
||||
name: str,
|
||||
status_code: int
|
||||
) -> None:
|
||||
|
||||
base_params["name"] = name
|
||||
with asyncio_patch("gns3server.compute.docker.Docker.list_images", return_value=[{"image": "nginx"}]):
|
||||
with asyncio_patch("gns3server.compute.docker.Docker.query", return_value={"Id": "8bd8153ea8f5"}):
|
||||
response = await compute_client.post(
|
||||
app.url_path_for("compute:create_docker_node", project_id=compute_project.id), json=base_params
|
||||
)
|
||||
assert response.status_code == status_code
|
||||
base_params["name"] = name
|
||||
with asyncio_patch("gns3server.compute.docker.Docker.list_images", return_value=[{"image": "nginx"}]):
|
||||
with asyncio_patch("gns3server.compute.docker.Docker.query", return_value={"Id": "8bd8153ea8f5"}):
|
||||
response = await compute_client.post(
|
||||
app.url_path_for("compute:create_docker_node", project_id=compute_project.id), json=base_params
|
||||
)
|
||||
assert response.status_code == status_code
|
||||
|
||||
|
||||
async def test_docker_start(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
async def test_docker_start(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.start", return_value=True) as mock:
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.start", return_value=True) as mock:
|
||||
|
||||
response = await compute_client.post(app.url_path_for("compute:start_docker_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_docker_stop(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.stop", return_value=True) as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:stop_docker_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_docker_reload(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.restart", return_value=True) as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:reload_docker_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_docker_delete(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.delete", return_value=True) as mock:
|
||||
response = await compute_client.delete(app.url_path_for("compute:delete_docker_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_docker_pause(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.pause", return_value=True) as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:pause_docker_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_docker_unpause(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.unpause", return_value=True) as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:unpause_docker_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_docker_nio_create_udp(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
params = {
|
||||
"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"}
|
||||
|
||||
url = app.url_path_for("compute:create_docker_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_udp"
|
||||
|
||||
|
||||
async def test_docker_update_nio(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
params = {
|
||||
"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"
|
||||
}
|
||||
|
||||
url = app.url_path_for("compute:create_docker_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
|
||||
url = app.url_path_for("compute:update_docker_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.adapter_update_nio_binding"):
|
||||
response = await compute_client.put(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
|
||||
|
||||
async def test_docker_delete_nio(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
url = app.url_path_for("compute:delete_docker_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.adapter_remove_nio_binding"):
|
||||
response = await compute_client.delete(url)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_docker_update(app: FastAPI, compute_client: AsyncClient, vm: dict, free_console_port: int) -> None:
|
||||
|
||||
params = {
|
||||
"name": "test",
|
||||
"console": free_console_port,
|
||||
"start_command": "yes",
|
||||
"environment": "GNS3=1\nGNS4=0",
|
||||
"extra_hosts": "test:127.0.0.1"
|
||||
}
|
||||
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.update") as mock:
|
||||
response = await compute_client.put(app.url_path_for("compute:update_docker_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]), json=params)
|
||||
|
||||
assert response.status_code == 200
|
||||
assert mock.called
|
||||
assert response.json()["name"] == "test"
|
||||
assert response.json()["console"] == free_console_port
|
||||
assert response.json()["start_command"] == "yes"
|
||||
assert response.json()["environment"] == "GNS3=1\nGNS4=0"
|
||||
assert response.json()["extra_hosts"] == "test:127.0.0.1"
|
||||
|
||||
|
||||
async def test_docker_start_capture(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
url = app.url_path_for("compute:start_docker_node_capture",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
|
||||
with patch("gns3server.compute.docker.docker_vm.DockerVM.is_running", return_value=True):
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.start_capture") as mock:
|
||||
params = {"capture_file_name": "test.pcap", "data_link_type": "DLT_EN10MB"}
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
response = await compute_client.post(app.url_path_for("compute:start_docker_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert "test.pcap" in response.json()["pcap_file_path"]
|
||||
|
||||
|
||||
async def test_docker_stop_capture(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
url = app.url_path_for("compute:stop_docker_node_capture",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
|
||||
with patch("gns3server.compute.docker.docker_vm.DockerVM.is_running", return_value=True):
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.stop_capture") as mock:
|
||||
response = await compute_client.post(url)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_docker_stop(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.stop", return_value=True) as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:stop_docker_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_docker_duplicate(app: FastAPI, compute_client: AsyncClient, vm: dict, base_params: dict) -> None:
|
||||
async def test_docker_reload(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
# create destination node first
|
||||
with asyncio_patch("gns3server.compute.docker.Docker.list_images", return_value=[{"image": "nginx"}]):
|
||||
with asyncio_patch("gns3server.compute.docker.Docker.query", return_value={"Id": "8bd8153ea8f5"}):
|
||||
response = await compute_client.post(app.url_path_for("compute:create_docker_node",
|
||||
project_id=vm["project_id"]), json=base_params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.restart", return_value=True) as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:reload_docker_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
params = {"destination_node_id": response.json()["node_id"]}
|
||||
response = await compute_client.post(app.url_path_for("compute:duplicate_docker_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]), json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
|
||||
async def test_docker_delete(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.delete", return_value=True) as mock:
|
||||
response = await compute_client.delete(app.url_path_for("compute:delete_docker_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_docker_pause(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.pause", return_value=True) as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:pause_docker_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_docker_unpause(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.unpause", return_value=True) as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:unpause_docker_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_docker_nio_create_udp(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
params = {
|
||||
"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"}
|
||||
|
||||
url = app.url_path_for("compute:create_docker_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_udp"
|
||||
|
||||
|
||||
async def test_docker_update_nio(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
params = {
|
||||
"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"
|
||||
}
|
||||
|
||||
url = app.url_path_for("compute:create_docker_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
|
||||
url = app.url_path_for("compute:update_docker_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.adapter_update_nio_binding"):
|
||||
response = await compute_client.put(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
|
||||
|
||||
async def test_docker_delete_nio(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
url = app.url_path_for("compute:delete_docker_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.adapter_remove_nio_binding"):
|
||||
response = await compute_client.delete(url)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_docker_update(self, app: FastAPI, compute_client: AsyncClient, vm: dict, free_console_port: int) -> None:
|
||||
|
||||
params = {
|
||||
"name": "test",
|
||||
"console": free_console_port,
|
||||
"start_command": "yes",
|
||||
"environment": "GNS3=1\nGNS4=0",
|
||||
"extra_hosts": "test:127.0.0.1"
|
||||
}
|
||||
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.update") as mock:
|
||||
response = await compute_client.put(app.url_path_for("compute:update_docker_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]), json=params)
|
||||
|
||||
assert response.status_code == 200
|
||||
assert mock.called
|
||||
assert response.json()["name"] == "test"
|
||||
assert response.json()["console"] == free_console_port
|
||||
assert response.json()["start_command"] == "yes"
|
||||
assert response.json()["environment"] == "GNS3=1\nGNS4=0"
|
||||
assert response.json()["extra_hosts"] == "test:127.0.0.1"
|
||||
|
||||
|
||||
async def test_docker_start_capture(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
url = app.url_path_for("compute:start_docker_node_capture",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
|
||||
with patch("gns3server.compute.docker.docker_vm.DockerVM.is_running", return_value=True):
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.start_capture") as mock:
|
||||
params = {"capture_file_name": "test.pcap", "data_link_type": "DLT_EN10MB"}
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert mock.called
|
||||
assert "test.pcap" in response.json()["pcap_file_path"]
|
||||
|
||||
|
||||
async def test_docker_stop_capture(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
url = app.url_path_for("compute:stop_docker_node_capture",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
|
||||
with patch("gns3server.compute.docker.docker_vm.DockerVM.is_running", return_value=True):
|
||||
with asyncio_patch("gns3server.compute.docker.docker_vm.DockerVM.stop_capture") as mock:
|
||||
response = await compute_client.post(url)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
assert mock.called
|
||||
|
||||
|
||||
async def test_docker_duplicate(self, app: FastAPI, compute_client: AsyncClient, vm: dict, base_params: dict) -> None:
|
||||
|
||||
# create destination node first
|
||||
with asyncio_patch("gns3server.compute.docker.Docker.list_images", return_value=[{"image": "nginx"}]):
|
||||
with asyncio_patch("gns3server.compute.docker.Docker.query", return_value={"Id": "8bd8153ea8f5"}):
|
||||
response = await compute_client.post(app.url_path_for("compute:create_docker_node",
|
||||
project_id=vm["project_id"]), json=base_params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
|
||||
params = {"destination_node_id": response.json()["node_id"]}
|
||||
response = await compute_client.post(app.url_path_for("compute:duplicate_docker_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]), json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
@@ -26,196 +26,208 @@ from httpx import AsyncClient
|
||||
|
||||
pytestmark = pytest.mark.asyncio
|
||||
|
||||
# @pytest.yield_fixture(scope="module")
|
||||
# async def vm(compute_api, compute_project, fake_image):
|
||||
#
|
||||
# dynamips_path = "/fake/dynamips"
|
||||
# params = {
|
||||
# "name": "My router",
|
||||
# "platform": "c3745",
|
||||
# "image": fake_image,
|
||||
# "ram": 128
|
||||
# }
|
||||
# with asyncio_patch("gns3server.compute.dynamips.nodes.router.Router.create", return_value=True) as mock:
|
||||
# response = await compute_api.post("/projects/{project_id}/dynamips/nodes".format(project_id=compute_project.id), params)
|
||||
# assert mock.called
|
||||
# assert response.status == 201
|
||||
#
|
||||
# #with asyncio_patch("gns3server.compute.dynamips.Dynamips.find_dynamips", return_value=dynamips_path):
|
||||
# # yield response.json
|
||||
|
||||
class TestDynamipsNodesRoutes:
|
||||
|
||||
# @pytest.yield_fixture(scope="module")
|
||||
# async def vm(compute_api, compute_project, fake_image):
|
||||
#
|
||||
# dynamips_path = "/fake/dynamips"
|
||||
# params = {
|
||||
# "name": "My router",
|
||||
# "platform": "c3745",
|
||||
# "image": fake_image,
|
||||
# "ram": 128
|
||||
# }
|
||||
# with asyncio_patch("gns3server.compute.dynamips.nodes.router.Router.create", return_value=True) as mock:
|
||||
# response = await compute_api.post("/projects/{project_id}/dynamips/nodes".format(project_id=compute_project.id), params)
|
||||
# assert mock.called
|
||||
# assert response.status == 201
|
||||
#
|
||||
# #with asyncio_patch("gns3server.compute.dynamips.Dynamips.find_dynamips", return_value=dynamips_path):
|
||||
# # yield response.json
|
||||
|
||||
|
||||
# async def test_dynamips_vm_create(compute_api, compute_project, fake_image):
|
||||
#
|
||||
# params = {
|
||||
# "name": "My router",
|
||||
# "platform": "c3745",
|
||||
# "image": os.path.basename(fake_image),
|
||||
# "ram": 128
|
||||
# }
|
||||
#
|
||||
# print(fake_image)
|
||||
#
|
||||
# with asyncio_patch("gns3server.compute.dynamips.nodes.router.Router.create", return_value=True):
|
||||
# response = await compute_api.post("/projects/{project_id}/dynamips/nodes".format(project_id=compute_project.id), params)
|
||||
# assert response.status == 201
|
||||
# assert response.json["name"] == "My router"
|
||||
# assert response.json["project_id"] == compute_project.id
|
||||
# assert response.json["dynamips_id"]
|
||||
# async def test_dynamips_vm_create(compute_api, compute_project, fake_image):
|
||||
#
|
||||
# params = {
|
||||
# "name": "My router",
|
||||
# "platform": "c3745",
|
||||
# "image": os.path.basename(fake_image),
|
||||
# "ram": 128
|
||||
# }
|
||||
#
|
||||
# print(fake_image)
|
||||
#
|
||||
# with asyncio_patch("gns3server.compute.dynamips.nodes.router.Router.create", return_value=True):
|
||||
# response = await compute_api.post("/projects/{project_id}/dynamips/nodes".format(project_id=compute_project.id), params)
|
||||
# assert response.status == 201
|
||||
# assert response.json["name"] == "My router"
|
||||
# assert response.json["project_id"] == compute_project.id
|
||||
# assert response.json["dynamips_id"]
|
||||
|
||||
|
||||
# def test_dynamips_vm_get(compute_api, project, vm):
|
||||
# response = compute_api.get("/projects/{project_id}/dynamips/nodes/{node_id}".format(project_id=vm["project_id"], node_id=vm["node_id"]), example=True)
|
||||
# assert response.status == 200
|
||||
# assert response.route == "/projects/{project_id}/dynamips/nodes/{node_id}"
|
||||
# assert response.json["name"] == "My router"
|
||||
# assert response.json["project_id"] == project.id
|
||||
#
|
||||
#
|
||||
# def test_dynamips_vm_start(compute_api, vm):
|
||||
# with asyncio_patch("gns3server.compute.dynamips.nodes.router.Router.start", return_value=True) as mock:
|
||||
# response = compute_api.post("/projects/{project_id}/dynamips/nodes/{node_id}/start".format(project_id=vm["project_id"], node_id=vm["node_id"]))
|
||||
# assert mock.called
|
||||
# assert response.status == 204
|
||||
#
|
||||
#
|
||||
# def test_dynamips_vm_stop(compute_api, vm):
|
||||
# with asyncio_patch("gns3server.compute.dynamips.nodes.router.Router.stop", return_value=True) as mock:
|
||||
# response = compute_api.post("/projects/{project_id}/dynamips/nodes/{node_id}/stop".format(project_id=vm["project_id"], node_id=vm["node_id"]))
|
||||
# assert mock.called
|
||||
# assert response.status == 204
|
||||
#
|
||||
#
|
||||
# def test_dynamips_vm_suspend(compute_api, vm):
|
||||
# with asyncio_patch("gns3server.compute.dynamips.nodes.router.Router.suspend", return_value=True) as mock:
|
||||
# response = compute_api.post("/projects/{project_id}/dynamips/nodes/{node_id}/suspend".format(project_id=vm["project_id"], node_id=vm["node_id"]))
|
||||
# assert mock.called
|
||||
# assert response.status == 204
|
||||
#
|
||||
#
|
||||
# def test_dynamips_vm_resume(compute_api, vm):
|
||||
# with asyncio_patch("gns3server.compute.dynamips.nodes.router.Router.resume", return_value=True) as mock:
|
||||
# response = compute_api.post("/projects/{project_id}/dynamips/nodes/{node_id}/resume".format(project_id=vm["project_id"], node_id=vm["node_id"]))
|
||||
# assert mock.called
|
||||
# assert response.status == 204
|
||||
# def test_dynamips_vm_get(compute_api, project, vm):
|
||||
# response = compute_api.get("/projects/{project_id}/dynamips/nodes/{node_id}".format(project_id=vm["project_id"], node_id=vm["node_id"]), example=True)
|
||||
# assert response.status == 200
|
||||
# assert response.route == "/projects/{project_id}/dynamips/nodes/{node_id}"
|
||||
# assert response.json["name"] == "My router"
|
||||
# assert response.json["project_id"] == project.id
|
||||
#
|
||||
#
|
||||
# def test_dynamips_vm_start(compute_api, vm):
|
||||
# with asyncio_patch("gns3server.compute.dynamips.nodes.router.Router.start", return_value=True) as mock:
|
||||
# response = compute_api.post("/projects/{project_id}/dynamips/nodes/{node_id}/start".format(project_id=vm["project_id"], node_id=vm["node_id"]))
|
||||
# assert mock.called
|
||||
# assert response.status == 204
|
||||
#
|
||||
#
|
||||
# def test_dynamips_vm_stop(compute_api, vm):
|
||||
# with asyncio_patch("gns3server.compute.dynamips.nodes.router.Router.stop", return_value=True) as mock:
|
||||
# response = compute_api.post("/projects/{project_id}/dynamips/nodes/{node_id}/stop".format(project_id=vm["project_id"], node_id=vm["node_id"]))
|
||||
# assert mock.called
|
||||
# assert response.status == 204
|
||||
#
|
||||
#
|
||||
# def test_dynamips_vm_suspend(compute_api, vm):
|
||||
# with asyncio_patch("gns3server.compute.dynamips.nodes.router.Router.suspend", return_value=True) as mock:
|
||||
# response = compute_api.post("/projects/{project_id}/dynamips/nodes/{node_id}/suspend".format(project_id=vm["project_id"], node_id=vm["node_id"]))
|
||||
# assert mock.called
|
||||
# assert response.status == 204
|
||||
#
|
||||
#
|
||||
# def test_dynamips_vm_resume(compute_api, vm):
|
||||
# with asyncio_patch("gns3server.compute.dynamips.nodes.router.Router.resume", return_value=True) as mock:
|
||||
# response = compute_api.post("/projects/{project_id}/dynamips/nodes/{node_id}/resume".format(project_id=vm["project_id"], node_id=vm["node_id"]))
|
||||
# assert mock.called
|
||||
# assert response.status == 204
|
||||
|
||||
|
||||
# def test_vbox_nio_create_udp(compute_api, vm):
|
||||
#
|
||||
# with asyncio_patch('gns3server.compute.virtualbox.virtualbox_vm.VirtualBoxVM.adapter_add_nio_binding') as mock:
|
||||
# response = compute_api.post("/projects/{project_id}/virtualbox/nodes/{node_id}/adapters/0/nio".format(project_id=vm["project_id"],
|
||||
# node_id=vm["node_id"]), {"type": "nio_udp",
|
||||
# "lport": 4242,
|
||||
# "rport": 4343,
|
||||
# "rhost": "127.0.0.1"},
|
||||
# example=True)
|
||||
#
|
||||
# assert mock.called
|
||||
# args, kwgars = mock.call_args
|
||||
# assert args[0] == 0
|
||||
#
|
||||
# assert response.status == 201
|
||||
# assert response.route == "/projects/{project_id}/virtualbox/nodes/{node_id}/adapters/{adapter_id:\d+}/nio"
|
||||
# assert response.json["type"] == "nio_udp"
|
||||
#
|
||||
#
|
||||
# def test_vbox_delete_nio(compute_api, vm):
|
||||
#
|
||||
# with asyncio_patch('gns3server.compute.virtualbox.virtualbox_vm.VirtualBoxVM.adapter_remove_nio_binding') as mock:
|
||||
# response = compute_api.delete("/projects/{project_id}/virtualbox/nodes/{node_id}/adapters/0/nio".format(project_id=vm["project_id"], node_id=vm["node_id"]), example=True)
|
||||
#
|
||||
# assert mock.called
|
||||
# args, kwgars = mock.call_args
|
||||
# assert args[0] == 0
|
||||
#
|
||||
# assert response.status == 204
|
||||
# assert response.route == "/projects/{project_id}/virtualbox/nodes/{node_id}/adapters/{adapter_id:\d+}/nio"
|
||||
#
|
||||
#
|
||||
# def test_vbox_update(compute_api, vm, free_console_port):
|
||||
# response = compute_api.put("/projects/{project_id}/virtualbox/nodes/{node_id}".format(project_id=vm["project_id"], node_id=vm["node_id"]), {"name": "test",
|
||||
# "console": free_console_port})
|
||||
# assert response.status == 200
|
||||
# assert response.json["name"] == "test"
|
||||
# assert response.json["console"] == free_console_port
|
||||
# def test_vbox_nio_create_udp(compute_api, vm):
|
||||
#
|
||||
# with asyncio_patch('gns3server.compute.virtualbox.virtualbox_vm.VirtualBoxVM.adapter_add_nio_binding') as mock:
|
||||
# response = compute_api.post("/projects/{project_id}/virtualbox/nodes/{node_id}/adapters/0/nio".format(project_id=vm["project_id"],
|
||||
# node_id=vm["node_id"]), {"type": "nio_udp",
|
||||
# "lport": 4242,
|
||||
# "rport": 4343,
|
||||
# "rhost": "127.0.0.1"},
|
||||
# example=True)
|
||||
#
|
||||
# assert mock.called
|
||||
# args, kwgars = mock.call_args
|
||||
# assert args[0] == 0
|
||||
#
|
||||
# assert response.status == 201
|
||||
# assert response.route == "/projects/{project_id}/virtualbox/nodes/{node_id}/adapters/{adapter_id:\d+}/nio"
|
||||
# assert response.json["type"] == "nio_udp"
|
||||
#
|
||||
#
|
||||
# def test_vbox_delete_nio(compute_api, vm):
|
||||
#
|
||||
# with asyncio_patch('gns3server.compute.virtualbox.virtualbox_vm.VirtualBoxVM.adapter_remove_nio_binding') as mock:
|
||||
# response = compute_api.delete("/projects/{project_id}/virtualbox/nodes/{node_id}/adapters/0/nio".format(project_id=vm["project_id"], node_id=vm["node_id"]), example=True)
|
||||
#
|
||||
# assert mock.called
|
||||
# args, kwgars = mock.call_args
|
||||
# assert args[0] == 0
|
||||
#
|
||||
# assert response.status == 204
|
||||
# assert response.route == "/projects/{project_id}/virtualbox/nodes/{node_id}/adapters/{adapter_id:\d+}/nio"
|
||||
#
|
||||
#
|
||||
# def test_vbox_update(compute_api, vm, free_console_port):
|
||||
# response = compute_api.put("/projects/{project_id}/virtualbox/nodes/{node_id}".format(project_id=vm["project_id"], node_id=vm["node_id"]), {"name": "test",
|
||||
# "console": free_console_port})
|
||||
# assert response.status == 200
|
||||
# assert response.json["name"] == "test"
|
||||
# assert response.json["console"] == free_console_port
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def fake_image(tmpdir) -> str:
|
||||
"""Create a fake Dynamips image on disk"""
|
||||
@pytest.fixture
|
||||
def fake_image(self, tmpdir) -> str:
|
||||
"""Create a fake Dynamips image on disk"""
|
||||
|
||||
path = str(tmpdir / "7200.bin")
|
||||
with open(path, "wb+") as f:
|
||||
f.write(b'\x7fELF\x01\x02\x01')
|
||||
os.chmod(path, stat.S_IREAD)
|
||||
return path
|
||||
path = str(tmpdir / "7200.bin")
|
||||
with open(path, "wb+") as f:
|
||||
f.write(b'\x7fELF\x01\x02\x01')
|
||||
os.chmod(path, stat.S_IREAD)
|
||||
return path
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def fake_file(tmpdir) -> str:
|
||||
"""Create a fake file disk"""
|
||||
@pytest.fixture
|
||||
def fake_file(self, tmpdir) -> str:
|
||||
"""Create a fake file disk"""
|
||||
|
||||
path = str(tmpdir / "7200.txt")
|
||||
with open(path, "w+") as f:
|
||||
f.write('1')
|
||||
os.chmod(path, stat.S_IREAD)
|
||||
return path
|
||||
path = str(tmpdir / "7200.txt")
|
||||
with open(path, "w+") as f:
|
||||
f.write('1')
|
||||
os.chmod(path, stat.S_IREAD)
|
||||
return path
|
||||
|
||||
|
||||
async def test_images(app: FastAPI, compute_client: AsyncClient, tmpdir, fake_image: str, fake_file: str) -> None:
|
||||
async def test_images(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
tmpdir, fake_image: str,
|
||||
fake_file: str
|
||||
) -> None:
|
||||
|
||||
with patch("gns3server.utils.images.default_images_directory", return_value=str(tmpdir)):
|
||||
response = await compute_client.get(app.url_path_for("compute:get_dynamips_images"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json() == [{"filename": "7200.bin",
|
||||
"path": "7200.bin",
|
||||
"filesize": 7,
|
||||
"md5sum": "b0d5aa897d937aced5a6b1046e8f7e2e"}]
|
||||
with patch("gns3server.utils.images.default_images_directory", return_value=str(tmpdir)):
|
||||
response = await compute_client.get(app.url_path_for("compute:get_dynamips_images"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json() == [{"filename": "7200.bin",
|
||||
"path": "7200.bin",
|
||||
"filesize": 7,
|
||||
"md5sum": "b0d5aa897d937aced5a6b1046e8f7e2e"}]
|
||||
|
||||
|
||||
async def test_upload_image(app: FastAPI, compute_client: AsyncClient, images_dir: str) -> None:
|
||||
async def test_upload_image(self, app: FastAPI, compute_client: AsyncClient, images_dir: str) -> None:
|
||||
|
||||
response = await compute_client.post(app.url_path_for("compute:upload_dynamips_image", filename="test2"), content=b"TEST")
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
response = await compute_client.post(app.url_path_for("compute:upload_dynamips_image", filename="test2"), content=b"TEST")
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
with open(os.path.join(images_dir, "IOS", "test2")) as f:
|
||||
assert f.read() == "TEST"
|
||||
with open(os.path.join(images_dir, "IOS", "test2")) as f:
|
||||
assert f.read() == "TEST"
|
||||
|
||||
with open(os.path.join(images_dir, "IOS", "test2.md5sum")) as f:
|
||||
checksum = f.read()
|
||||
assert checksum == "033bd94b1168d7e4f0d644c3c95e35bf"
|
||||
with open(os.path.join(images_dir, "IOS", "test2.md5sum")) as f:
|
||||
checksum = f.read()
|
||||
assert checksum == "033bd94b1168d7e4f0d644c3c95e35bf"
|
||||
|
||||
|
||||
async def test_upload_image_forbidden_location(app: FastAPI, compute_client: AsyncClient) -> None:
|
||||
async def test_upload_image_forbidden_location(self, app: FastAPI, compute_client: AsyncClient) -> None:
|
||||
|
||||
file_path = "%2e%2e/hello"
|
||||
response = await compute_client.post(app.url_path_for("compute:upload_dynamips_image", filename=file_path), content=b"TEST")
|
||||
assert response.status_code == status.HTTP_403_FORBIDDEN
|
||||
file_path = "%2e%2e/hello"
|
||||
response = await compute_client.post(app.url_path_for("compute:upload_dynamips_image", filename=file_path), content=b"TEST")
|
||||
assert response.status_code == status.HTTP_403_FORBIDDEN
|
||||
|
||||
|
||||
async def test_download_image(app: FastAPI, compute_client: AsyncClient, images_dir: str) -> None:
|
||||
async def test_download_image(self, app: FastAPI, compute_client: AsyncClient, images_dir: str) -> None:
|
||||
|
||||
response = await compute_client.post(app.url_path_for("compute:upload_dynamips_image", filename="test3"), content=b"TEST")
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
response = await compute_client.post(app.url_path_for("compute:upload_dynamips_image", filename="test3"), content=b"TEST")
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
response = await compute_client.get(app.url_path_for("compute:download_dynamips_image", filename="test3"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
response = await compute_client.get(app.url_path_for("compute:download_dynamips_image", filename="test3"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
|
||||
|
||||
async def test_download_image_forbidden(app: FastAPI, compute_client: AsyncClient, tmpdir) -> None:
|
||||
async def test_download_image_forbidden(self, app: FastAPI, compute_client: AsyncClient, tmpdir) -> None:
|
||||
|
||||
file_path = "foo/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd"
|
||||
response = await compute_client.get(app.url_path_for("compute:download_dynamips_image", filename=file_path))
|
||||
assert response.status_code == status.HTTP_403_FORBIDDEN
|
||||
file_path = "foo/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd"
|
||||
response = await compute_client.get(app.url_path_for("compute:download_dynamips_image", filename=file_path))
|
||||
assert response.status_code == status.HTTP_403_FORBIDDEN
|
||||
|
||||
|
||||
@pytest.mark.skipif(os.getuid() == 0, reason="Root can delete any image")
|
||||
async def test_upload_image_permission_denied(app: FastAPI, compute_client: AsyncClient, images_dir: str) -> None:
|
||||
@pytest.mark.skipif(os.getuid() == 0, reason="Root can delete any image")
|
||||
async def test_upload_image_permission_denied(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
images_dir: str
|
||||
) -> None:
|
||||
|
||||
os.makedirs(os.path.join(images_dir, "IOS"), exist_ok=True)
|
||||
with open(os.path.join(images_dir, "IOS", "test2.tmp"), "w+") as f:
|
||||
f.write("")
|
||||
os.chmod(os.path.join(images_dir, "IOS", "test2.tmp"), 0)
|
||||
os.makedirs(os.path.join(images_dir, "IOS"), exist_ok=True)
|
||||
with open(os.path.join(images_dir, "IOS", "test2.tmp"), "w+") as f:
|
||||
f.write("")
|
||||
os.chmod(os.path.join(images_dir, "IOS", "test2.tmp"), 0)
|
||||
|
||||
response = await compute_client.post(app.url_path_for("compute:upload_dynamips_image", filename="test2"), content=b"TEST")
|
||||
assert response.status_code == status.HTTP_409_CONFLICT
|
||||
response = await compute_client.post(app.url_path_for("compute:upload_dynamips_image", filename="test2"), content=b"TEST")
|
||||
assert response.status_code == status.HTTP_409_CONFLICT
|
||||
@@ -28,427 +28,474 @@ from gns3server.compute.project import Project
|
||||
pytestmark = pytest.mark.asyncio
|
||||
|
||||
|
||||
@pytest_asyncio.fixture
|
||||
async def ethernet_switch(app: FastAPI, compute_client: AsyncClient, compute_project: Project) -> dict:
|
||||
class TestEthernetSwitchNodesRoutes:
|
||||
|
||||
params = {"name": "Ethernet Switch"}
|
||||
with asyncio_patch("gns3server.compute.dynamips.nodes.ethernet_switch.EthernetSwitch.create") as mock:
|
||||
response = await compute_client.post(
|
||||
app.url_path_for("compute:create_ethernet_switch", project_id=compute_project.id),
|
||||
json=params
|
||||
@pytest_asyncio.fixture
|
||||
async def ethernet_switch(self, app: FastAPI, compute_client: AsyncClient, compute_project: Project) -> dict:
|
||||
|
||||
params = {"name": "Ethernet Switch"}
|
||||
with asyncio_patch("gns3server.compute.dynamips.nodes.ethernet_switch.EthernetSwitch.create") as mock:
|
||||
response = await compute_client.post(
|
||||
app.url_path_for("compute:create_ethernet_switch", project_id=compute_project.id),
|
||||
json=params
|
||||
)
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
|
||||
json_response = response.json()
|
||||
node = compute_project.get_node(json_response["node_id"])
|
||||
node._hypervisor = AsyncioMagicMock()
|
||||
node._hypervisor.send = AsyncioMagicMock()
|
||||
node._hypervisor.version = "0.2.16"
|
||||
return json_response
|
||||
|
||||
|
||||
async def test_ethernet_switch_create(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project
|
||||
) -> None:
|
||||
|
||||
params = {"name": "Ethernet Switch 1"}
|
||||
with asyncio_patch("gns3server.compute.dynamips.nodes.ethernet_switch.EthernetSwitch.create") as mock:
|
||||
response = await compute_client.post(
|
||||
app.url_path_for("compute:create_ethernet_switch", project_id=compute_project.id),
|
||||
json=params
|
||||
)
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["name"] == "Ethernet Switch 1"
|
||||
assert response.json()["project_id"] == compute_project.id
|
||||
|
||||
|
||||
async def test_ethernet_switch_get(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
|
||||
response = await compute_client.get(
|
||||
app.url_path_for(
|
||||
"compute:get_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"]
|
||||
)
|
||||
)
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
|
||||
json_response = response.json()
|
||||
node = compute_project.get_node(json_response["node_id"])
|
||||
node._hypervisor = AsyncioMagicMock()
|
||||
node._hypervisor.send = AsyncioMagicMock()
|
||||
node._hypervisor.version = "0.2.16"
|
||||
return json_response
|
||||
|
||||
|
||||
async def test_ethernet_switch_create(app: FastAPI, compute_client: AsyncClient, compute_project: Project) -> None:
|
||||
|
||||
params = {"name": "Ethernet Switch 1"}
|
||||
with asyncio_patch("gns3server.compute.dynamips.nodes.ethernet_switch.EthernetSwitch.create") as mock:
|
||||
response = await compute_client.post(
|
||||
app.url_path_for("compute:create_ethernet_switch", project_id=compute_project.id),
|
||||
json=params
|
||||
)
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["name"] == "Ethernet Switch 1"
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["name"] == "Ethernet Switch"
|
||||
assert response.json()["project_id"] == compute_project.id
|
||||
assert response.json()["status"] == "started"
|
||||
|
||||
|
||||
async def test_ethernet_switch_get(app: FastAPI, compute_client: AsyncClient, compute_project: Project, ethernet_switch: dict) -> None:
|
||||
async def test_ethernet_switch_duplicate(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
|
||||
response = await compute_client.get(
|
||||
app.url_path_for(
|
||||
"compute:get_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"]
|
||||
)
|
||||
)
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["name"] == "Ethernet Switch"
|
||||
assert response.json()["project_id"] == compute_project.id
|
||||
assert response.json()["status"] == "started"
|
||||
# create destination switch first
|
||||
params = {"name": "Ethernet Switch 2"}
|
||||
with asyncio_patch("gns3server.compute.dynamips.nodes.ethernet_switch.EthernetSwitch.create") as mock:
|
||||
response = await compute_client.post(
|
||||
app.url_path_for(
|
||||
"compute:create_ethernet_switch",
|
||||
project_id=compute_project.id),
|
||||
json=params
|
||||
)
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
|
||||
|
||||
async def test_ethernet_switch_duplicate(
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
|
||||
# create destination switch first
|
||||
params = {"name": "Ethernet Switch 2"}
|
||||
with asyncio_patch("gns3server.compute.dynamips.nodes.ethernet_switch.EthernetSwitch.create") as mock:
|
||||
params = {"destination_node_id": response.json()["node_id"]}
|
||||
response = await compute_client.post(
|
||||
app.url_path_for(
|
||||
"compute:create_ethernet_switch",
|
||||
project_id=compute_project.id),
|
||||
json=params
|
||||
"compute:duplicate_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"]), json=params
|
||||
)
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
|
||||
params = {"destination_node_id": response.json()["node_id"]}
|
||||
response = await compute_client.post(
|
||||
app.url_path_for(
|
||||
"compute:duplicate_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"]), json=params
|
||||
|
||||
async def test_ethernet_switch_update(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
|
||||
params = {
|
||||
"name": "test",
|
||||
"console_type": "telnet"
|
||||
}
|
||||
|
||||
response = await compute_client.put(
|
||||
app.url_path_for(
|
||||
"compute:update_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"]),
|
||||
json=params
|
||||
)
|
||||
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["name"] == "test"
|
||||
node = compute_project.get_node(ethernet_switch["node_id"])
|
||||
node._hypervisor.send.assert_called_with("ethsw rename \"Ethernet Switch\" \"test\"")
|
||||
|
||||
|
||||
async def test_ethernet_switch_update_ports(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
|
||||
port_params = {
|
||||
"ports_mapping": [
|
||||
{
|
||||
"name": "Ethernet0",
|
||||
"port_number": 0,
|
||||
"type": "qinq",
|
||||
"vlan": 1
|
||||
},
|
||||
{
|
||||
"name": "Ethernet1",
|
||||
"port_number": 1,
|
||||
"type": "qinq",
|
||||
"vlan": 2,
|
||||
"ethertype": "0x88A8"
|
||||
},
|
||||
{
|
||||
"name": "Ethernet2",
|
||||
"port_number": 2,
|
||||
"type": "dot1q",
|
||||
"vlan": 3,
|
||||
},
|
||||
{
|
||||
"name": "Ethernet3",
|
||||
"port_number": 3,
|
||||
"type": "access",
|
||||
"vlan": 4,
|
||||
}
|
||||
],
|
||||
}
|
||||
|
||||
response = await compute_client.put(
|
||||
app.url_path_for(
|
||||
"compute:update_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"]),
|
||||
json=port_params
|
||||
)
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
|
||||
nio_params = {
|
||||
"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"
|
||||
}
|
||||
|
||||
for port_mapping in port_params["ports_mapping"]:
|
||||
port_number = port_mapping["port_number"]
|
||||
vlan = port_mapping["vlan"]
|
||||
port_type = port_mapping["type"]
|
||||
ethertype = port_mapping.get("ethertype", "")
|
||||
url = app.url_path_for(
|
||||
"compute:create_ethernet_switch_nio",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"],
|
||||
adapter_number="0",
|
||||
port_number=f"{port_number}"
|
||||
)
|
||||
await compute_client.post(url, json=nio_params)
|
||||
|
||||
node = compute_project.get_node(ethernet_switch["node_id"])
|
||||
nio = node.get_nio(port_number)
|
||||
calls = [
|
||||
call.send(f'nio create_udp {nio.name} 4242 127.0.0.1 4343'),
|
||||
call.send(f'ethsw add_nio "Ethernet Switch" {nio.name}'),
|
||||
call.send(f'ethsw set_{port_type}_port "Ethernet Switch" {nio.name} {vlan} {ethertype}'.strip())
|
||||
]
|
||||
node._hypervisor.send.assert_has_calls(calls)
|
||||
node._hypervisor.send.reset_mock()
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"ports_settings",
|
||||
(
|
||||
(
|
||||
{
|
||||
"name": "Ethernet0",
|
||||
"port_number": 0,
|
||||
"type": "dot42q", # invalid port type
|
||||
"vlan": 1,
|
||||
}
|
||||
),
|
||||
(
|
||||
{
|
||||
"name": "Ethernet0",
|
||||
"port_number": 0,
|
||||
"type": "access", # missing vlan field
|
||||
}
|
||||
),
|
||||
(
|
||||
{
|
||||
"name": "Ethernet0",
|
||||
"port_number": 0,
|
||||
"type": "dot1q",
|
||||
"vlan": 1,
|
||||
"ethertype": "0x88A8" # EtherType is only for QinQ
|
||||
}
|
||||
),
|
||||
(
|
||||
{
|
||||
"name": "Ethernet0",
|
||||
"port_number": 0,
|
||||
"type": "qinq",
|
||||
"vlan": 1,
|
||||
"ethertype": "0x4242" # not a valid EtherType
|
||||
}
|
||||
),
|
||||
(
|
||||
{
|
||||
"name": "Ethernet0",
|
||||
"port_number": 0,
|
||||
"type": "access",
|
||||
"vlan": 0, # minimum vlan number is 1
|
||||
}
|
||||
),
|
||||
(
|
||||
{
|
||||
"name": "Ethernet0",
|
||||
"port_number": 0,
|
||||
"type": "access",
|
||||
"vlan": 4242, # maximum vlan number is 4094
|
||||
}
|
||||
),
|
||||
)
|
||||
)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
async def test_ethernet_switch_update_ports_invalid(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
ethernet_switch: dict,
|
||||
ports_settings: dict,
|
||||
) -> None:
|
||||
|
||||
port_params = {
|
||||
"ports_mapping": [ports_settings]
|
||||
}
|
||||
|
||||
response = await compute_client.put(
|
||||
app.url_path_for(
|
||||
"compute:update_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"]),
|
||||
json=port_params
|
||||
)
|
||||
assert response.status_code == status.HTTP_422_UNPROCESSABLE_ENTITY
|
||||
|
||||
|
||||
async def test_ethernet_switch_update(
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
async def test_ethernet_switch_delete(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
|
||||
params = {
|
||||
"name": "test",
|
||||
"console_type": "telnet"
|
||||
}
|
||||
|
||||
response = await compute_client.put(
|
||||
app.url_path_for(
|
||||
"compute:update_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"]),
|
||||
json=params
|
||||
)
|
||||
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["name"] == "test"
|
||||
node = compute_project.get_node(ethernet_switch["node_id"])
|
||||
node._hypervisor.send.assert_called_with("ethsw rename \"Ethernet Switch\" \"test\"")
|
||||
response = await compute_client.delete(
|
||||
app.url_path_for(
|
||||
"compute:delete_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"]
|
||||
)
|
||||
)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_ethernet_switch_update_ports(
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
async def test_ethernet_switch_start(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
|
||||
port_params = {
|
||||
"ports_mapping": [
|
||||
{
|
||||
"name": "Ethernet0",
|
||||
"port_number": 0,
|
||||
"type": "qinq",
|
||||
"vlan": 1
|
||||
},
|
||||
{
|
||||
"name": "Ethernet1",
|
||||
"port_number": 1,
|
||||
"type": "qinq",
|
||||
"vlan": 2,
|
||||
"ethertype": "0x88A8"
|
||||
},
|
||||
{
|
||||
"name": "Ethernet2",
|
||||
"port_number": 2,
|
||||
"type": "dot1q",
|
||||
"vlan": 3,
|
||||
},
|
||||
{
|
||||
"name": "Ethernet3",
|
||||
"port_number": 3,
|
||||
"type": "access",
|
||||
"vlan": 4,
|
||||
}
|
||||
],
|
||||
}
|
||||
response = await compute_client.post(
|
||||
app.url_path_for(
|
||||
"compute:start_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"])
|
||||
)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
response = await compute_client.put(
|
||||
app.url_path_for(
|
||||
"compute:update_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"]),
|
||||
json=port_params
|
||||
)
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
|
||||
nio_params = {
|
||||
"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"
|
||||
}
|
||||
async def test_ethernet_switch_stop(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
|
||||
response = await compute_client.post(
|
||||
app.url_path_for(
|
||||
"compute:stop_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"])
|
||||
)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_ethernet_switch_suspend(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
|
||||
response = await compute_client.post(
|
||||
app.url_path_for(
|
||||
"compute:suspend_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"])
|
||||
)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_ethernet_switch_reload(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
|
||||
response = await compute_client.post(
|
||||
app.url_path_for(
|
||||
"compute:reload_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"])
|
||||
)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_ethernet_switch_create_udp(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
|
||||
params = {
|
||||
"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"
|
||||
}
|
||||
|
||||
for port_mapping in port_params["ports_mapping"]:
|
||||
port_number = port_mapping["port_number"]
|
||||
vlan = port_mapping["vlan"]
|
||||
port_type = port_mapping["type"]
|
||||
ethertype = port_mapping.get("ethertype", "")
|
||||
url = app.url_path_for(
|
||||
"compute:create_ethernet_switch_nio",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"],
|
||||
adapter_number="0",
|
||||
port_number=f"{port_number}"
|
||||
port_number="0"
|
||||
)
|
||||
await compute_client.post(url, json=nio_params)
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_udp"
|
||||
|
||||
node = compute_project.get_node(ethernet_switch["node_id"])
|
||||
nio = node.get_nio(port_number)
|
||||
nio = node.get_nio(0)
|
||||
calls = [
|
||||
call.send(f'nio create_udp {nio.name} 4242 127.0.0.1 4343'),
|
||||
call.send(f'ethsw add_nio "Ethernet Switch" {nio.name}'),
|
||||
call.send(f'ethsw set_{port_type}_port "Ethernet Switch" {nio.name} {vlan} {ethertype}'.strip())
|
||||
call.send(f'ethsw set_access_port "Ethernet Switch" {nio.name} 1')
|
||||
]
|
||||
node._hypervisor.send.assert_has_calls(calls)
|
||||
node._hypervisor.send.reset_mock()
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"ports_settings",
|
||||
(
|
||||
(
|
||||
{
|
||||
"name": "Ethernet0",
|
||||
"port_number": 0,
|
||||
"type": "dot42q", # invalid port type
|
||||
"vlan": 1,
|
||||
}
|
||||
),
|
||||
(
|
||||
{
|
||||
"name": "Ethernet0",
|
||||
"port_number": 0,
|
||||
"type": "access", # missing vlan field
|
||||
}
|
||||
),
|
||||
(
|
||||
{
|
||||
"name": "Ethernet0",
|
||||
"port_number": 0,
|
||||
"type": "dot1q",
|
||||
"vlan": 1,
|
||||
"ethertype": "0x88A8" # EtherType is only for QinQ
|
||||
}
|
||||
),
|
||||
(
|
||||
{
|
||||
"name": "Ethernet0",
|
||||
"port_number": 0,
|
||||
"type": "qinq",
|
||||
"vlan": 1,
|
||||
"ethertype": "0x4242" # not a valid EtherType
|
||||
}
|
||||
),
|
||||
(
|
||||
{
|
||||
"name": "Ethernet0",
|
||||
"port_number": 0,
|
||||
"type": "access",
|
||||
"vlan": 0, # minimum vlan number is 1
|
||||
}
|
||||
),
|
||||
(
|
||||
{
|
||||
"name": "Ethernet0",
|
||||
"port_number": 0,
|
||||
"type": "access",
|
||||
"vlan": 4242, # maximum vlan number is 4094
|
||||
}
|
||||
),
|
||||
)
|
||||
)
|
||||
async def test_ethernet_switch_update_ports_invalid(
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
ethernet_switch: dict,
|
||||
ports_settings: dict,
|
||||
) -> None:
|
||||
async def test_ethernet_switch_delete_nio(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
|
||||
port_params = {
|
||||
"ports_mapping": [ports_settings]
|
||||
}
|
||||
params = {
|
||||
"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"
|
||||
}
|
||||
|
||||
response = await compute_client.put(
|
||||
app.url_path_for(
|
||||
"compute:update_ethernet_switch",
|
||||
url = app.url_path_for(
|
||||
"compute:create_ethernet_switch_nio",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"]),
|
||||
json=port_params
|
||||
)
|
||||
assert response.status_code == status.HTTP_422_UNPROCESSABLE_ENTITY
|
||||
|
||||
|
||||
async def test_ethernet_switch_delete(app: FastAPI, compute_client: AsyncClient, ethernet_switch: dict) -> None:
|
||||
|
||||
response = await compute_client.delete(
|
||||
app.url_path_for(
|
||||
"compute:delete_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"]
|
||||
node_id=ethernet_switch["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0"
|
||||
)
|
||||
)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
await compute_client.post(url, json=params)
|
||||
|
||||
node = compute_project.get_node(ethernet_switch["node_id"])
|
||||
node._hypervisor.send.reset_mock()
|
||||
nio = node.get_nio(0)
|
||||
|
||||
async def test_ethernet_switch_start(app: FastAPI, compute_client: AsyncClient, ethernet_switch: dict) -> None:
|
||||
|
||||
response = await compute_client.post(
|
||||
app.url_path_for(
|
||||
"compute:start_ethernet_switch",
|
||||
url = app.url_path_for(
|
||||
"compute:delete_ethernet_switch_nio",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"])
|
||||
)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_ethernet_switch_stop(app: FastAPI, compute_client: AsyncClient, ethernet_switch: dict) -> None:
|
||||
|
||||
response = await compute_client.post(
|
||||
app.url_path_for(
|
||||
"compute:stop_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"])
|
||||
)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_ethernet_switch_suspend(app: FastAPI, compute_client: AsyncClient, ethernet_switch: dict) -> None:
|
||||
|
||||
response = await compute_client.post(
|
||||
app.url_path_for(
|
||||
"compute:suspend_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"])
|
||||
)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_ethernet_switch_reload(app: FastAPI, compute_client: AsyncClient, ethernet_switch: dict) -> None:
|
||||
|
||||
response = await compute_client.post(
|
||||
app.url_path_for(
|
||||
"compute:reload_ethernet_switch",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"])
|
||||
)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_ethernet_switch_create_udp(
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
|
||||
params = {
|
||||
"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"
|
||||
}
|
||||
|
||||
url = app.url_path_for(
|
||||
"compute:create_ethernet_switch_nio",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0"
|
||||
)
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_udp"
|
||||
|
||||
node = compute_project.get_node(ethernet_switch["node_id"])
|
||||
nio = node.get_nio(0)
|
||||
calls = [
|
||||
call.send(f'nio create_udp {nio.name} 4242 127.0.0.1 4343'),
|
||||
call.send(f'ethsw add_nio "Ethernet Switch" {nio.name}'),
|
||||
call.send(f'ethsw set_access_port "Ethernet Switch" {nio.name} 1')
|
||||
]
|
||||
node._hypervisor.send.assert_has_calls(calls)
|
||||
|
||||
|
||||
async def test_ethernet_switch_delete_nio(
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
|
||||
params = {
|
||||
"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"
|
||||
}
|
||||
|
||||
url = app.url_path_for(
|
||||
"compute:create_ethernet_switch_nio",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0"
|
||||
)
|
||||
await compute_client.post(url, json=params)
|
||||
|
||||
node = compute_project.get_node(ethernet_switch["node_id"])
|
||||
node._hypervisor.send.reset_mock()
|
||||
nio = node.get_nio(0)
|
||||
|
||||
url = app.url_path_for(
|
||||
"compute:delete_ethernet_switch_nio",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0"
|
||||
)
|
||||
response = await compute_client.delete(url)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
calls = [
|
||||
call(f'ethsw remove_nio "Ethernet Switch" {nio.name}'),
|
||||
call(f'nio delete {nio.name}')
|
||||
]
|
||||
node._hypervisor.send.assert_has_calls(calls)
|
||||
|
||||
|
||||
async def test_ethernet_switch_start_capture(app: FastAPI, compute_client: AsyncClient, ethernet_switch: dict) -> None:
|
||||
|
||||
params = {
|
||||
"capture_file_name": "test.pcap",
|
||||
"data_link_type": "DLT_EN10MB"
|
||||
}
|
||||
|
||||
url = app.url_path_for("compute:start_ethernet_switch_capture",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
|
||||
with asyncio_patch("gns3server.compute.dynamips.nodes.ethernet_switch.EthernetSwitch.start_capture") as mock:
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert mock.called
|
||||
assert "test.pcap" in response.json()["pcap_file_path"]
|
||||
|
||||
|
||||
async def test_ethernet_switch_stop_capture(app: FastAPI, compute_client: AsyncClient, ethernet_switch: dict) -> None:
|
||||
|
||||
url = app.url_path_for("compute:stop_ethernet_switch_capture",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
|
||||
with asyncio_patch("gns3server.compute.dynamips.nodes.ethernet_switch.EthernetSwitch.stop_capture") as mock:
|
||||
response = await compute_client.post(url)
|
||||
node_id=ethernet_switch["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0"
|
||||
)
|
||||
response = await compute_client.delete(url)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
assert mock.called
|
||||
|
||||
calls = [
|
||||
call(f'ethsw remove_nio "Ethernet Switch" {nio.name}'),
|
||||
call(f'nio delete {nio.name}')
|
||||
]
|
||||
node._hypervisor.send.assert_has_calls(calls)
|
||||
|
||||
|
||||
async def test_ethernet_switch_start_capture(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
|
||||
params = {
|
||||
"capture_file_name": "test.pcap",
|
||||
"data_link_type": "DLT_EN10MB"
|
||||
}
|
||||
|
||||
url = app.url_path_for("compute:start_ethernet_switch_capture",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
|
||||
with asyncio_patch("gns3server.compute.dynamips.nodes.ethernet_switch.EthernetSwitch.start_capture") as mock:
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert mock.called
|
||||
assert "test.pcap" in response.json()["pcap_file_path"]
|
||||
|
||||
|
||||
async def test_ethernet_switch_stop_capture(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
ethernet_switch: dict
|
||||
) -> None:
|
||||
|
||||
url = app.url_path_for("compute:stop_ethernet_switch_capture",
|
||||
project_id=ethernet_switch["project_id"],
|
||||
node_id=ethernet_switch["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
|
||||
with asyncio_patch("gns3server.compute.dynamips.nodes.ethernet_switch.EthernetSwitch.stop_capture") as mock:
|
||||
response = await compute_client.post(url)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
assert mock.called
|
||||
@@ -28,452 +28,502 @@ from unittest.mock import patch
|
||||
|
||||
from gns3server.compute.project import Project
|
||||
|
||||
pytestmark = [pytest.mark.asyncio]
|
||||
pytestmark = pytest.mark.asyncio
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def fake_iou_bin(images_dir) -> str:
|
||||
"""Create a fake IOU image on disk"""
|
||||
class TestIOUNodesRoutes:
|
||||
|
||||
path = os.path.join(images_dir, "IOU", "iou.bin")
|
||||
with open(path, "w+") as f:
|
||||
f.write('\x7fELF\x01\x01\x01')
|
||||
os.chmod(path, stat.S_IREAD | stat.S_IEXEC)
|
||||
return path
|
||||
@pytest.fixture
|
||||
def fake_iou_bin(self, images_dir) -> str:
|
||||
"""Create a fake IOU image on disk"""
|
||||
|
||||
path = os.path.join(images_dir, "IOU", "iou.bin")
|
||||
with open(path, "w+") as f:
|
||||
f.write('\x7fELF\x01\x01\x01')
|
||||
os.chmod(path, stat.S_IREAD | stat.S_IEXEC)
|
||||
return path
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def base_params(tmpdir, fake_iou_bin) -> dict:
|
||||
"""Return standard parameters"""
|
||||
@pytest.fixture
|
||||
def base_params(self, tmpdir, fake_iou_bin) -> dict:
|
||||
"""Return standard parameters"""
|
||||
|
||||
return {"application_id": 42, "name": "IOU-TEST-1", "path": "iou.bin"}
|
||||
return {"application_id": 42, "name": "IOU-TEST-1", "path": "iou.bin"}
|
||||
|
||||
|
||||
@pytest_asyncio.fixture
|
||||
async def vm(app: FastAPI, compute_client: AsyncClient, compute_project: Project, base_params: dict) -> dict:
|
||||
@pytest_asyncio.fixture
|
||||
async def vm(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
base_params: dict
|
||||
) -> dict:
|
||||
|
||||
response = await compute_client.post(app.url_path_for("compute:create_iou_node", project_id=compute_project.id), json=base_params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
return response.json()
|
||||
response = await compute_client.post(app.url_path_for("compute:create_iou_node", project_id=compute_project.id), json=base_params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
return response.json()
|
||||
|
||||
|
||||
def startup_config_file(compute_project: Project, vm: dict) -> str:
|
||||
def startup_config_file(self, compute_project: Project, vm: dict) -> str:
|
||||
|
||||
directory = os.path.join(compute_project.path, "project-files", "iou", vm["node_id"])
|
||||
os.makedirs(directory, exist_ok=True)
|
||||
return os.path.join(directory, "startup-config.cfg")
|
||||
directory = os.path.join(compute_project.path, "project-files", "iou", vm["node_id"])
|
||||
os.makedirs(directory, exist_ok=True)
|
||||
return os.path.join(directory, "startup-config.cfg")
|
||||
|
||||
|
||||
async def test_iou_create(app: FastAPI, compute_client: AsyncClient, compute_project: Project, base_params: dict) -> None:
|
||||
async def test_iou_create(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
base_params: dict
|
||||
) -> None:
|
||||
|
||||
response = await compute_client.post(app.url_path_for("compute:create_iou_node", project_id=compute_project.id), json=base_params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["name"] == "IOU-TEST-1"
|
||||
assert response.json()["project_id"] == compute_project.id
|
||||
assert response.json()["serial_adapters"] == 2
|
||||
assert response.json()["ethernet_adapters"] == 2
|
||||
assert response.json()["ram"] == 256
|
||||
assert response.json()["nvram"] == 128
|
||||
assert response.json()["l1_keepalives"] is False
|
||||
response = await compute_client.post(app.url_path_for("compute:create_iou_node", project_id=compute_project.id), json=base_params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["name"] == "IOU-TEST-1"
|
||||
assert response.json()["project_id"] == compute_project.id
|
||||
assert response.json()["serial_adapters"] == 2
|
||||
assert response.json()["ethernet_adapters"] == 2
|
||||
assert response.json()["ram"] == 256
|
||||
assert response.json()["nvram"] == 128
|
||||
assert response.json()["l1_keepalives"] is False
|
||||
|
||||
|
||||
async def test_iou_create_with_params(app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
base_params: dict) -> None:
|
||||
async def test_iou_create_with_params(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
base_params: dict
|
||||
) -> None:
|
||||
|
||||
params = base_params
|
||||
params["ram"] = 1024
|
||||
params["nvram"] = 512
|
||||
params["serial_adapters"] = 4
|
||||
params["ethernet_adapters"] = 0
|
||||
params["l1_keepalives"] = True
|
||||
params["startup_config_content"] = "hostname test"
|
||||
params["use_default_iou_values"] = False
|
||||
params = base_params
|
||||
params["ram"] = 1024
|
||||
params["nvram"] = 512
|
||||
params["serial_adapters"] = 4
|
||||
params["ethernet_adapters"] = 0
|
||||
params["l1_keepalives"] = True
|
||||
params["startup_config_content"] = "hostname test"
|
||||
params["use_default_iou_values"] = False
|
||||
|
||||
response = await compute_client.post(app.url_path_for("compute:create_iou_node", project_id=compute_project.id), json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["name"] == "IOU-TEST-1"
|
||||
assert response.json()["project_id"] == compute_project.id
|
||||
assert response.json()["serial_adapters"] == 4
|
||||
assert response.json()["ethernet_adapters"] == 0
|
||||
assert response.json()["ram"] == 1024
|
||||
assert response.json()["nvram"] == 512
|
||||
assert response.json()["l1_keepalives"] is True
|
||||
assert response.json()["use_default_iou_values"] is False
|
||||
response = await compute_client.post(app.url_path_for("compute:create_iou_node", project_id=compute_project.id), json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["name"] == "IOU-TEST-1"
|
||||
assert response.json()["project_id"] == compute_project.id
|
||||
assert response.json()["serial_adapters"] == 4
|
||||
assert response.json()["ethernet_adapters"] == 0
|
||||
assert response.json()["ram"] == 1024
|
||||
assert response.json()["nvram"] == 512
|
||||
assert response.json()["l1_keepalives"] is True
|
||||
assert response.json()["use_default_iou_values"] is False
|
||||
|
||||
with open(startup_config_file(compute_project, response.json())) as f:
|
||||
assert f.read() == "hostname test"
|
||||
with open(self.startup_config_file(compute_project, response.json())) as f:
|
||||
assert f.read() == "hostname test"
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"name, status_code",
|
||||
(
|
||||
("valid-name", status.HTTP_201_CREATED),
|
||||
("42name", status.HTTP_409_CONFLICT),
|
||||
("name42", status.HTTP_201_CREATED),
|
||||
("-name", status.HTTP_409_CONFLICT),
|
||||
("name%-test", status.HTTP_409_CONFLICT),
|
||||
("x" * 63, status.HTTP_201_CREATED),
|
||||
("x" * 64, status.HTTP_409_CONFLICT),
|
||||
),
|
||||
)
|
||||
async def test_iou_create_with_invalid_name(
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
base_params: dict,
|
||||
name: str,
|
||||
status_code: int
|
||||
) -> None:
|
||||
|
||||
base_params["name"] = name
|
||||
response = await compute_client.post(
|
||||
app.url_path_for("compute:create_iou_node", project_id=compute_project.id), json=base_params
|
||||
@pytest.mark.parametrize(
|
||||
"name, status_code",
|
||||
(
|
||||
("valid-name", status.HTTP_201_CREATED),
|
||||
("42name", status.HTTP_409_CONFLICT),
|
||||
("name42", status.HTTP_201_CREATED),
|
||||
("-name", status.HTTP_409_CONFLICT),
|
||||
("name%-test", status.HTTP_409_CONFLICT),
|
||||
("x" * 63, status.HTTP_201_CREATED),
|
||||
("x" * 64, status.HTTP_409_CONFLICT),
|
||||
),
|
||||
)
|
||||
assert response.status_code == status_code
|
||||
async def test_iou_create_with_invalid_name(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
base_params: dict,
|
||||
name: str,
|
||||
status_code: int
|
||||
) -> None:
|
||||
|
||||
base_params["name"] = name
|
||||
response = await compute_client.post(
|
||||
app.url_path_for("compute:create_iou_node", project_id=compute_project.id), json=base_params
|
||||
)
|
||||
assert response.status_code == status_code
|
||||
|
||||
|
||||
async def test_iou_create_startup_config_already_exist(
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
base_params: dict) -> None:
|
||||
"""We don't erase a startup-config if already exist at project creation"""
|
||||
async def test_iou_create_startup_config_already_exist(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
base_params: dict) -> None:
|
||||
"""We don't erase a startup-config if already exist at project creation"""
|
||||
|
||||
node_id = str(uuid.uuid4())
|
||||
startup_config_file_path = startup_config_file(compute_project, {'node_id': node_id})
|
||||
with open(startup_config_file_path, 'w+') as f:
|
||||
f.write("echo hello")
|
||||
node_id = str(uuid.uuid4())
|
||||
startup_config_file_path = self.startup_config_file(compute_project, {'node_id': node_id})
|
||||
with open(startup_config_file_path, 'w+') as f:
|
||||
f.write("echo hello")
|
||||
|
||||
params = base_params
|
||||
params["node_id"] = node_id
|
||||
params["startup_config_content"] = "hostname test"
|
||||
params = base_params
|
||||
params["node_id"] = node_id
|
||||
params["startup_config_content"] = "hostname test"
|
||||
|
||||
response = await compute_client.post(app.url_path_for("compute:create_iou_node", project_id=compute_project.id), json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
response = await compute_client.post(app.url_path_for("compute:create_iou_node", project_id=compute_project.id), json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
|
||||
with open(startup_config_file(compute_project, response.json())) as f:
|
||||
assert f.read() == "echo hello"
|
||||
with open(self.startup_config_file(compute_project, response.json())) as f:
|
||||
assert f.read() == "echo hello"
|
||||
|
||||
|
||||
async def test_iou_get(app: FastAPI, compute_client: AsyncClient, compute_project: Project, vm: dict) -> None:
|
||||
async def test_iou_get(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
compute_project: Project,
|
||||
vm: dict
|
||||
) -> None:
|
||||
|
||||
response = await compute_client.get(app.url_path_for("compute:get_iou_node", project_id=vm["project_id"], node_id=vm["node_id"]))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["name"] == "IOU-TEST-1"
|
||||
assert response.json()["project_id"] == compute_project.id
|
||||
assert response.json()["serial_adapters"] == 2
|
||||
assert response.json()["ethernet_adapters"] == 2
|
||||
assert response.json()["ram"] == 256
|
||||
assert response.json()["nvram"] == 128
|
||||
assert response.json()["l1_keepalives"] is False
|
||||
response = await compute_client.get(app.url_path_for("compute:get_iou_node", project_id=vm["project_id"], node_id=vm["node_id"]))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["name"] == "IOU-TEST-1"
|
||||
assert response.json()["project_id"] == compute_project.id
|
||||
assert response.json()["serial_adapters"] == 2
|
||||
assert response.json()["ethernet_adapters"] == 2
|
||||
assert response.json()["ram"] == 256
|
||||
assert response.json()["nvram"] == 128
|
||||
assert response.json()["l1_keepalives"] is False
|
||||
|
||||
|
||||
async def test_iou_start(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
async def test_iou_start(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.iou.iou_vm.IOUVM.start", return_value=True) as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:start_iou_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]), json={})
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
with asyncio_patch("gns3server.compute.iou.iou_vm.IOUVM.start", return_value=True) as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:start_iou_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]), json={})
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_iou_start_with_iourc(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
async def test_iou_start_with_iourc(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
params = {"iourc_content": "test"}
|
||||
with asyncio_patch("gns3server.compute.iou.iou_vm.IOUVM.start", return_value=True) as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:start_iou_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]), json=params)
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
params = {"iourc_content": "test"}
|
||||
with asyncio_patch("gns3server.compute.iou.iou_vm.IOUVM.start", return_value=True) as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:start_iou_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]), json=params)
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_iou_stop(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
async def test_iou_stop(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.iou.iou_vm.IOUVM.stop", return_value=True) as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:stop_iou_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
with asyncio_patch("gns3server.compute.iou.iou_vm.IOUVM.stop", return_value=True) as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:stop_iou_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_iou_reload(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
async def test_iou_reload(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.iou.iou_vm.IOUVM.reload", return_value=True) as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:reload_iou_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
with asyncio_patch("gns3server.compute.iou.iou_vm.IOUVM.reload", return_value=True) as mock:
|
||||
response = await compute_client.post(app.url_path_for("compute:reload_iou_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_iou_delete(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
async def test_iou_delete(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
with asyncio_patch("gns3server.compute.iou.IOU.delete_node", return_value=True) as mock:
|
||||
response = await compute_client.delete(app.url_path_for("compute:delete_iou_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
with asyncio_patch("gns3server.compute.iou.IOU.delete_node", return_value=True) as mock:
|
||||
response = await compute_client.delete(app.url_path_for("compute:delete_iou_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]))
|
||||
assert mock.called
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
|
||||
async def test_iou_update(app: FastAPI, compute_client: AsyncClient, vm: dict, free_console_port: int) -> None:
|
||||
async def test_iou_update(
|
||||
self, app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
vm: dict,
|
||||
free_console_port: int
|
||||
) -> None:
|
||||
|
||||
params = {
|
||||
"name": "test",
|
||||
"console": free_console_port,
|
||||
"ram": 512,
|
||||
"nvram": 2048,
|
||||
"ethernet_adapters": 4,
|
||||
"serial_adapters": 0,
|
||||
"l1_keepalives": True,
|
||||
"use_default_iou_values": True,
|
||||
}
|
||||
params = {
|
||||
"name": "test",
|
||||
"console": free_console_port,
|
||||
"ram": 512,
|
||||
"nvram": 2048,
|
||||
"ethernet_adapters": 4,
|
||||
"serial_adapters": 0,
|
||||
"l1_keepalives": True,
|
||||
"use_default_iou_values": True,
|
||||
}
|
||||
|
||||
response = await compute_client.put(app.url_path_for("compute:update_iou_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]), json=params)
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["name"] == "test"
|
||||
assert response.json()["console"] == free_console_port
|
||||
assert response.json()["ethernet_adapters"] == 4
|
||||
assert response.json()["serial_adapters"] == 0
|
||||
assert response.json()["ram"] == 512
|
||||
assert response.json()["nvram"] == 2048
|
||||
assert response.json()["l1_keepalives"] is True
|
||||
assert response.json()["use_default_iou_values"] is True
|
||||
response = await compute_client.put(app.url_path_for("compute:update_iou_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]), json=params)
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["name"] == "test"
|
||||
assert response.json()["console"] == free_console_port
|
||||
assert response.json()["ethernet_adapters"] == 4
|
||||
assert response.json()["serial_adapters"] == 0
|
||||
assert response.json()["ram"] == 512
|
||||
assert response.json()["nvram"] == 2048
|
||||
assert response.json()["l1_keepalives"] is True
|
||||
assert response.json()["use_default_iou_values"] is True
|
||||
|
||||
|
||||
async def test_iou_nio_create_udp(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
async def test_iou_nio_create_udp(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
params = {"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"}
|
||||
params = {"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"}
|
||||
|
||||
url = app.url_path_for("compute:create_iou_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="1",
|
||||
port_number="0")
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_udp"
|
||||
|
||||
|
||||
async def test_iou_nio_update_udp(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
params = {"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"}
|
||||
|
||||
url = app.url_path_for("compute:create_iou_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="1",
|
||||
port_number="0")
|
||||
|
||||
await compute_client.post(url, json=params)
|
||||
params["filters"] = {}
|
||||
|
||||
url = app.url_path_for("compute:update_iou_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="1",
|
||||
port_number="0")
|
||||
response = await compute_client.put(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_udp"
|
||||
|
||||
|
||||
async def test_iou_nio_create_ethernet(app: FastAPI, compute_client: AsyncClient, vm: dict, ethernet_device: str) -> None:
|
||||
|
||||
params = {
|
||||
"type": "nio_ethernet",
|
||||
"ethernet_device": ethernet_device
|
||||
}
|
||||
|
||||
url = app.url_path_for("compute:create_iou_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="1",
|
||||
port_number="0")
|
||||
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_ethernet"
|
||||
assert response.json()["ethernet_device"] == ethernet_device
|
||||
|
||||
|
||||
async def test_iou_nio_create_ethernet_different_port(app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
vm: dict,
|
||||
ethernet_device: str) -> None:
|
||||
|
||||
params = {
|
||||
"type": "nio_ethernet",
|
||||
"ethernet_device": ethernet_device
|
||||
}
|
||||
|
||||
url = app.url_path_for("compute:create_iou_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="3")
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_ethernet"
|
||||
assert response.json()["ethernet_device"] == ethernet_device
|
||||
|
||||
|
||||
async def test_iou_nio_create_tap(app: FastAPI, compute_client: AsyncClient, vm: dict, ethernet_device: str) -> None:
|
||||
|
||||
params = {
|
||||
"type": "nio_tap",
|
||||
"tap_device": ethernet_device
|
||||
}
|
||||
|
||||
url = app.url_path_for("compute:create_iou_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="1",
|
||||
port_number="0")
|
||||
with patch("gns3server.compute.base_manager.BaseManager.has_privileged_access", return_value=True):
|
||||
url = app.url_path_for("compute:create_iou_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="1",
|
||||
port_number="0")
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_tap"
|
||||
assert response.json()["type"] == "nio_udp"
|
||||
|
||||
|
||||
async def test_iou_delete_nio(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
async def test_iou_nio_update_udp(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
params = {
|
||||
"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"
|
||||
}
|
||||
params = {"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"}
|
||||
|
||||
url = app.url_path_for("compute:create_iou_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="1",
|
||||
port_number="0")
|
||||
url = app.url_path_for("compute:create_iou_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="1",
|
||||
port_number="0")
|
||||
|
||||
await compute_client.post(url, json=params)
|
||||
await compute_client.post(url, json=params)
|
||||
params["filters"] = {}
|
||||
|
||||
url = app.url_path_for("compute:delete_iou_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="1",
|
||||
port_number="0")
|
||||
|
||||
response = await compute_client.delete(url)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
url = app.url_path_for("compute:update_iou_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="1",
|
||||
port_number="0")
|
||||
response = await compute_client.put(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_udp"
|
||||
|
||||
|
||||
async def test_iou_start_capture(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
async def test_iou_nio_create_ethernet(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
vm: dict,
|
||||
ethernet_device: str
|
||||
) -> None:
|
||||
|
||||
params = {
|
||||
"capture_file_name": "test.pcap",
|
||||
"data_link_type": "DLT_EN10MB"
|
||||
}
|
||||
params = {
|
||||
"type": "nio_ethernet",
|
||||
"ethernet_device": ethernet_device
|
||||
}
|
||||
|
||||
url = app.url_path_for("compute:start_iou_node_capture",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
url = app.url_path_for("compute:create_iou_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="1",
|
||||
port_number="0")
|
||||
|
||||
with patch("gns3server.compute.iou.iou_vm.IOUVM.is_running", return_value=True):
|
||||
with asyncio_patch("gns3server.compute.iou.iou_vm.IOUVM.start_capture") as mock:
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_ethernet"
|
||||
assert response.json()["ethernet_device"] == ethernet_device
|
||||
|
||||
|
||||
async def test_iou_nio_create_ethernet_different_port(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
vm: dict,
|
||||
ethernet_device: str
|
||||
) -> None:
|
||||
|
||||
params = {
|
||||
"type": "nio_ethernet",
|
||||
"ethernet_device": ethernet_device
|
||||
}
|
||||
|
||||
url = app.url_path_for("compute:create_iou_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="3")
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_ethernet"
|
||||
assert response.json()["ethernet_device"] == ethernet_device
|
||||
|
||||
|
||||
async def test_iou_nio_create_tap(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
vm: dict,
|
||||
ethernet_device: str
|
||||
) -> None:
|
||||
|
||||
params = {
|
||||
"type": "nio_tap",
|
||||
"tap_device": ethernet_device
|
||||
}
|
||||
|
||||
url = app.url_path_for("compute:create_iou_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="1",
|
||||
port_number="0")
|
||||
with patch("gns3server.compute.base_manager.BaseManager.has_privileged_access", return_value=True):
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert mock.called
|
||||
assert "test.pcap" in response.json()["pcap_file_path"]
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert response.json()["type"] == "nio_tap"
|
||||
|
||||
|
||||
async def test_iou_stop_capture(app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
async def test_iou_delete_nio(
|
||||
self,
|
||||
app: FastAPI,
|
||||
compute_client: AsyncClient,
|
||||
vm: dict
|
||||
) -> None:
|
||||
|
||||
url = app.url_path_for("compute:stop_iou_node_capture",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
params = {
|
||||
"type": "nio_udp",
|
||||
"lport": 4242,
|
||||
"rport": 4343,
|
||||
"rhost": "127.0.0.1"
|
||||
}
|
||||
|
||||
with patch("gns3server.compute.iou.iou_vm.IOUVM.is_running", return_value=True):
|
||||
with asyncio_patch("gns3server.compute.iou.iou_vm.IOUVM.stop_capture") as mock:
|
||||
response = await compute_client.post(url)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
assert mock.called
|
||||
url = app.url_path_for("compute:create_iou_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="1",
|
||||
port_number="0")
|
||||
|
||||
await compute_client.post(url, json=params)
|
||||
|
||||
# @pytest.mark.asyncio
|
||||
# async def test_iou_pcap(compute_api, vm, compute_project):
|
||||
#
|
||||
# with asyncio_patch("gns3server.compute.iou.iou_vm.IOUVM.get_nio"):
|
||||
# with asyncio_patch("gns3server.compute.iou.IOU.stream_pcap_file"):
|
||||
# response = await compute_client.get("/projects/{project_id}/iou/nodes/{node_id}/adapters/0/ports/0/pcap".format(project_id=compute_project.id, node_id=vm["node_id"]), raw=True)
|
||||
# assert response.status_code == status.HTTP_200_OK
|
||||
url = app.url_path_for("compute:delete_iou_node_nio",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="1",
|
||||
port_number="0")
|
||||
|
||||
|
||||
async def test_images(app: FastAPI, compute_client: AsyncClient, fake_iou_bin: str) -> None:
|
||||
|
||||
response = await compute_client.get(app.url_path_for("compute:get_iou_images"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json() == [{"filename": "iou.bin", "path": "iou.bin", "filesize": 7, "md5sum": "e573e8f5c93c6c00783f20c7a170aa6c"}]
|
||||
|
||||
|
||||
async def test_upload_image(app: FastAPI, compute_client: AsyncClient, tmpdir) -> None:
|
||||
|
||||
with patch("gns3server.compute.IOU.get_images_directory", return_value=str(tmpdir)):
|
||||
response = await compute_client.post(app.url_path_for("compute:upload_iou_image", filename="test2"), content=b"TEST")
|
||||
response = await compute_client.delete(url)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
with open(str(tmpdir / "test2")) as f:
|
||||
assert f.read() == "TEST"
|
||||
|
||||
with open(str(tmpdir / "test2.md5sum")) as f:
|
||||
checksum = f.read()
|
||||
assert checksum == "033bd94b1168d7e4f0d644c3c95e35bf"
|
||||
async def test_iou_start_capture(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
params = {
|
||||
"capture_file_name": "test.pcap",
|
||||
"data_link_type": "DLT_EN10MB"
|
||||
}
|
||||
|
||||
url = app.url_path_for("compute:start_iou_node_capture",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
|
||||
with patch("gns3server.compute.iou.iou_vm.IOUVM.is_running", return_value=True):
|
||||
with asyncio_patch("gns3server.compute.iou.iou_vm.IOUVM.start_capture") as mock:
|
||||
response = await compute_client.post(url, json=params)
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert mock.called
|
||||
assert "test.pcap" in response.json()["pcap_file_path"]
|
||||
|
||||
|
||||
async def test_upload_image_forbidden_location(app: FastAPI, compute_client: AsyncClient) -> None:
|
||||
async def test_iou_stop_capture(self, app: FastAPI, compute_client: AsyncClient, vm: dict) -> None:
|
||||
|
||||
file_path = "%2e%2e/hello"
|
||||
response = await compute_client.post(app.url_path_for("compute:upload_dynamips_image", filename=file_path), content=b"TEST")
|
||||
assert response.status_code == status.HTTP_403_FORBIDDEN
|
||||
url = app.url_path_for("compute:stop_iou_node_capture",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"],
|
||||
adapter_number="0",
|
||||
port_number="0")
|
||||
|
||||
with patch("gns3server.compute.iou.iou_vm.IOUVM.is_running", return_value=True):
|
||||
with asyncio_patch("gns3server.compute.iou.iou_vm.IOUVM.stop_capture") as mock:
|
||||
response = await compute_client.post(url)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
assert mock.called
|
||||
|
||||
|
||||
async def test_download_image(app: FastAPI, compute_client: AsyncClient, images_dir: str) -> None:
|
||||
|
||||
response = await compute_client.post(app.url_path_for("compute:upload_dynamips_image", filename="test3"), content=b"TEST")
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
response = await compute_client.get(app.url_path_for("compute:download_dynamips_image", filename="test3"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
# @pytest.mark.asyncio
|
||||
# async def test_iou_pcap(compute_api, vm, compute_project):
|
||||
#
|
||||
# with asyncio_patch("gns3server.compute.iou.iou_vm.IOUVM.get_nio"):
|
||||
# with asyncio_patch("gns3server.compute.iou.IOU.stream_pcap_file"):
|
||||
# response = await compute_client.get("/projects/{project_id}/iou/nodes/{node_id}/adapters/0/ports/0/pcap".format(project_id=compute_project.id, node_id=vm["node_id"]), raw=True)
|
||||
# assert response.status_code == status.HTTP_200_OK
|
||||
|
||||
|
||||
async def test_download_image_forbidden(app: FastAPI, compute_client: AsyncClient, tmpdir) -> None:
|
||||
async def test_images(self, app: FastAPI, compute_client: AsyncClient, fake_iou_bin: str) -> None:
|
||||
|
||||
file_path = "foo/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd"
|
||||
response = await compute_client.get(app.url_path_for("compute:download_iou_image", filename=file_path))
|
||||
assert response.status_code == status.HTTP_403_FORBIDDEN
|
||||
response = await compute_client.get(app.url_path_for("compute:get_iou_images"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json() == [{"filename": "iou.bin", "path": "iou.bin", "filesize": 7, "md5sum": "e573e8f5c93c6c00783f20c7a170aa6c"}]
|
||||
|
||||
|
||||
async def test_iou_duplicate(app: FastAPI, compute_client: AsyncClient, vm: dict, base_params: dict) -> None:
|
||||
async def test_upload_image(self, app: FastAPI, compute_client: AsyncClient, tmpdir) -> None:
|
||||
|
||||
# create destination node first
|
||||
response = await compute_client.post(app.url_path_for("compute:create_iou_node", project_id=vm["project_id"]), json=base_params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
with patch("gns3server.compute.IOU.get_images_directory", return_value=str(tmpdir)):
|
||||
response = await compute_client.post(app.url_path_for("compute:upload_iou_image", filename="test2"), content=b"TEST")
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
params = {"destination_node_id": response.json()["node_id"]}
|
||||
with open(str(tmpdir / "test2")) as f:
|
||||
assert f.read() == "TEST"
|
||||
|
||||
response = await compute_client.post(app.url_path_for("compute:duplicate_iou_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]), json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
with open(str(tmpdir / "test2.md5sum")) as f:
|
||||
checksum = f.read()
|
||||
assert checksum == "033bd94b1168d7e4f0d644c3c95e35bf"
|
||||
|
||||
|
||||
async def test_upload_image_forbidden_location(self, app: FastAPI, compute_client: AsyncClient) -> None:
|
||||
|
||||
file_path = "%2e%2e/hello"
|
||||
response = await compute_client.post(app.url_path_for("compute:upload_dynamips_image", filename=file_path), content=b"TEST")
|
||||
assert response.status_code == status.HTTP_403_FORBIDDEN
|
||||
|
||||
|
||||
async def test_download_image(self, app: FastAPI, compute_client: AsyncClient, images_dir: str) -> None:
|
||||
|
||||
response = await compute_client.post(app.url_path_for("compute:upload_dynamips_image", filename="test3"), content=b"TEST")
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
|
||||
response = await compute_client.get(app.url_path_for("compute:download_dynamips_image", filename="test3"))
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
|
||||
|
||||
async def test_download_image_forbidden(self, app: FastAPI, compute_client: AsyncClient, tmpdir) -> None:
|
||||
|
||||
file_path = "foo/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd"
|
||||
response = await compute_client.get(app.url_path_for("compute:download_iou_image", filename=file_path))
|
||||
assert response.status_code == status.HTTP_403_FORBIDDEN
|
||||
|
||||
|
||||
async def test_iou_duplicate(self, app: FastAPI, compute_client: AsyncClient, vm: dict, base_params: dict) -> None:
|
||||
|
||||
# create destination node first
|
||||
response = await compute_client.post(app.url_path_for("compute:create_iou_node", project_id=vm["project_id"]), json=base_params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
|
||||
params = {"destination_node_id": response.json()["node_id"]}
|
||||
|
||||
response = await compute_client.post(app.url_path_for("compute:duplicate_iou_node",
|
||||
project_id=vm["project_id"],
|
||||
node_id=vm["node_id"]), json=params)
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||