1
.github/workflows/buildx-bake.yml
vendored
@ -4,6 +4,7 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- master # Change this to your main branch name
|
||||
#- tuning
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
6
.gitignore
vendored
@ -1 +1,5 @@
|
||||
.vscode
|
||||
.vscode
|
||||
config/npm/keys.json
|
||||
config/npm/logs
|
||||
|
||||
maps/
|
27
config/box_filter.yaml
Normal file
@ -0,0 +1,27 @@
|
||||
scan_to_scan_filter_chain:
|
||||
ros__parameters:
|
||||
filter1:
|
||||
name: box_filter
|
||||
type: laser_filters/LaserScanBoxFilter
|
||||
params:
|
||||
box_frame: laser_frame
|
||||
max_x: 0.80 #was 0.16
|
||||
max_y: 0.18 #was 0.17
|
||||
max_z: 0.1
|
||||
min_x: -0.41 #was -0.41
|
||||
min_y: -0.18 # was -0.17
|
||||
min_z: -0.2
|
||||
invert: false # activate to remove all points outside of the box
|
||||
name: shadows
|
||||
type: laser_filters/ScanShadowsFilter
|
||||
params:
|
||||
min_angle: 10
|
||||
max_angle: 170
|
||||
neighbors: 20
|
||||
window: 1
|
||||
name: dark_shadows
|
||||
type: laser_filters/LaserScanIntensityFilter
|
||||
params:
|
||||
lower_threshold: 100
|
||||
upper_threshold: 10000
|
||||
disp_histogram: 0
|
34
config/caddy/Caddyfile
Normal file
@ -0,0 +1,34 @@
|
||||
# {
|
||||
# debug
|
||||
# }
|
||||
|
||||
http://loki {
|
||||
root * /usr/share/caddy
|
||||
file_server browse
|
||||
|
||||
handle_path /config* {
|
||||
reverse_proxy http://olivetin:1337
|
||||
}
|
||||
|
||||
handle_path /viz* {
|
||||
reverse_proxy http://foxglove:8080
|
||||
}
|
||||
|
||||
# this is not working right now
|
||||
handle_path /joy* {
|
||||
reverse_proxy http://host.docker.internal:8000
|
||||
}
|
||||
}
|
||||
|
||||
http://loki.local {
|
||||
root * /usr/share/caddy
|
||||
file_server browse
|
||||
|
||||
handle_path /config {
|
||||
reverse_proxy http://olivetin:1337
|
||||
}
|
||||
|
||||
handle_path /viz* {
|
||||
reverse_proxy http://foxglove:8080
|
||||
}
|
||||
}
|
BIN
config/caddy/content/overview/CPS_Logo_White_square_TRANSP.png
Normal file
After Width: | Height: | Size: 14 KiB |
1
config/caddy/content/overview/blueprint.svg
Normal file
After Width: | Height: | Size: 5.8 KiB |
95
config/caddy/content/overview/index.html
Normal file
@ -0,0 +1,95 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<!-- ersetze die Links + QR Codes unter den Kommentaren -->
|
||||
|
||||
<head>
|
||||
<title>CPS Bot Overview</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
|
||||
<header>
|
||||
<h1 id="HEADLINE">Loki Overview<img src="CPS_Logo_White_square_TRANSP.png" id="LOGO"></h1>
|
||||
</header>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="box" id="RIGHT">
|
||||
<div id="BLOCK_ONE">
|
||||
<p class="mini-heads">Teleop:</p>
|
||||
<!-- again -->
|
||||
<!-- Replace link at href -->
|
||||
<!-- hier Link zu Joystick -->
|
||||
<a href="http://loki:8000/">
|
||||
<img src="joystick.png" class="qr qr_2"></a>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
<div id="BLOCK_ONE">
|
||||
<p class="mini-heads">Robot Configuration:</p>
|
||||
<!-- again -->
|
||||
<!-- Replace link at href -->
|
||||
<!-- hier Link zu WebGui -->
|
||||
<a href="http://loki/config/">
|
||||
<img src="wrench.svg" class="qr qr_2"></a>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
<p id="SPACE"> </p>
|
||||
|
||||
<div id="BLOCK_TWO">
|
||||
<p class="mini-heads">Data View:</p>
|
||||
<!-- again -->
|
||||
<!-- hier Link zu Manual -->
|
||||
<a href="http://loki/viz/">
|
||||
<img src="safety-glasses.svg" class="qr qr_2">
|
||||
</a>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
<p id="SPACE"> </p>
|
||||
|
||||
<div id="BLOCK_THREE">
|
||||
<p class="mini-heads">Manual:</p>
|
||||
<!-- again -->
|
||||
<!-- hier Link zu Manual -->
|
||||
<a href="https://cps.unileoben.ac.at">
|
||||
<img src="blueprint.svg" class="qr qr_2">
|
||||
</a>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="box" id="LEFT">
|
||||
<p class="mini-heads">Connect to Wi-Fi:</p>
|
||||
<!-- replace mit relativen Link!!!, bei mir spinnts und es wird das gebrochene Bild symbol angezeigt. Anders geht
|
||||
es allerdings, falls nicht bei dir sags mir -->
|
||||
<img src="qr-loki.wifi.svg" class="qr">
|
||||
<div id="NORM_SET">
|
||||
<table>
|
||||
<tr>
|
||||
<td>SSID:</td>
|
||||
<td>cps-loki</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Password: </td>
|
||||
<td>cps-loki</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="info">
|
||||
<!-- Link zum Lehrstuhl, einfach den ganzen Div Block rausnehmen falls du das nicht willst -->
|
||||
<a href="https://cps.unileoben.ac.at/">Check us out!</a>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
|
||||
|
||||
</html>
|
BIN
config/caddy/content/overview/joystick.png
Normal file
After Width: | Height: | Size: 21 KiB |
508
config/caddy/content/overview/qr-loki-config.svg
Normal file
@ -0,0 +1,508 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="1160px" height="1160px" viewBox="0 0 1160 1160" enable-background="new 0 0 1160 1160" xml:space="preserve">
|
||||
<rect x="0" y="0" width="1160" height="1160" fill="rgb(255,255,255)" /><g transform="translate(80,80)"><g transform="translate(320,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,40) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,40) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,40) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,40) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,280) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,280) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,280) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,280) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(80,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(240,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(880,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(40,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(80,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(120,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(160,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(720,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(40,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(120,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(200,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(240,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(680,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(880,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(40,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(680,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(720,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(40,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(200,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(240,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(720,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(40,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(80,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(120,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(200,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(720,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(40,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(80,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(240,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(680,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(880,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(160,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(680,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(40,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(120,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(160,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(240,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(680,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(720,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(880,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(720,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(680,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(720,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(880,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(680,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(680,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(720,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(680,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,0) scale(2.8, 2.8)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
|
||||
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
|
||||
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
|
||||
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
|
||||
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
|
||||
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
|
||||
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
|
||||
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
|
||||
</g>
|
||||
</g></g><g transform="translate(720,0) scale(2.8, 2.8)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
|
||||
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
|
||||
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
|
||||
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
|
||||
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
|
||||
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
|
||||
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
|
||||
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
|
||||
</g>
|
||||
</g></g><g transform="translate(0,720) scale(2.8, 2.8)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
|
||||
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
|
||||
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
|
||||
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
|
||||
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
|
||||
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
|
||||
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
|
||||
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
|
||||
</g>
|
||||
</g></g><g transform="translate(80,80) scale(1.2, 1.2)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<g id="XMLID_1_">
|
||||
<g>
|
||||
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
|
||||
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
|
||||
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g></g><g transform="translate(800,80) scale(1.2, 1.2)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<g id="XMLID_1_">
|
||||
<g>
|
||||
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
|
||||
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
|
||||
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g></g><g transform="translate(80,800) scale(1.2, 1.2)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<g id="XMLID_1_">
|
||||
<g>
|
||||
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
|
||||
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
|
||||
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g></g></g></svg>
|
After Width: | Height: | Size: 34 KiB |
728
config/caddy/content/overview/qr-loki-overview.svg
Normal file
@ -0,0 +1,728 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="1155px" height="1155px" viewBox="0 0 1155 1155" enable-background="new 0 0 1155 1155" xml:space="preserve">
|
||||
<rect x="0" y="0" width="1155" height="1155" fill="rgb(255,255,255)" /><g transform="translate(70,70)"><g transform="translate(280,0) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(315,0) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,0) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,0) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(525,0) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(595,0) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,35) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(315,35) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,35) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,35) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(525,35) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(595,35) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(665,35) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(700,35) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,70) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(385,70) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,70) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,70) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(630,70) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(385,105) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,105) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(525,105) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(595,105) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,140) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(315,140) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(350,140) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,140) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(525,140) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(630,140) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(665,140) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(350,175) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(420,175) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,175) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,175) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(595,175) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(630,175) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(700,175) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,210) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(350,210) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(420,210) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,210) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,210) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(630,210) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(700,210) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(315,245) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(385,245) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,245) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(665,245) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(105,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(140,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(175,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(210,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(245,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(350,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(525,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(595,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(665,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(735,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(910,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(945,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(980,280) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(70,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(105,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(175,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(245,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(630,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(665,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(805,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(910,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(945,315) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(70,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(175,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(210,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(385,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(595,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(700,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(770,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(805,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(910,350) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(35,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(70,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(105,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(140,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(175,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(245,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(315,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(350,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(385,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(420,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(525,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(595,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(665,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(700,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(770,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(980,385) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(105,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(175,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(210,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(245,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(315,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(350,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(665,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(770,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(805,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(980,420) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(70,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(105,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(140,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(175,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(245,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(315,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(385,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(770,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(875,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(945,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(980,455) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(35,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(70,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(140,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(175,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(210,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(245,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(385,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(525,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(595,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(665,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(700,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(805,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(875,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(910,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(980,490) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(35,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(105,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(175,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(315,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(350,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(385,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(420,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(665,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(735,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(910,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(980,525) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(35,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(70,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(105,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(175,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(210,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(245,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(385,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(525,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(630,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(665,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(700,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(805,560) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(140,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(175,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(245,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(315,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(350,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(385,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(420,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(630,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(665,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(700,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(875,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(910,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(945,595) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(35,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(70,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(105,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(210,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(350,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(385,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(420,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(665,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(735,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(770,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(980,630) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(35,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(105,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(525,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(735,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(770,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(875,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(910,665) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(35,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(70,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(105,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(210,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(245,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(315,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(350,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(630,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(700,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(735,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(770,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(805,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(875,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(910,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(945,700) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(350,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(385,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(420,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(595,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(630,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(700,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(875,735) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(385,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(525,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(665,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(700,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(770,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(875,770) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(315,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(350,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(385,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(630,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(700,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(875,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(945,805) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(315,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(385,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(420,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(525,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(595,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(665,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(700,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(735,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(770,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(805,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(875,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(945,840) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(315,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(350,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(385,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(630,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(665,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(700,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(735,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(945,875) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(630,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(700,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(735,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(805,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(875,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(945,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(980,910) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(350,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(420,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(455,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(525,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(770,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(805,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(875,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(910,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(980,945) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,980) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(315,980) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(490,980) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,980) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(595,980) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(630,980) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(665,980) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(700,980) scale(0.35,0.35)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,0) scale(2.45, 2.45)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
|
||||
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
|
||||
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
|
||||
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
|
||||
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
|
||||
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
|
||||
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
|
||||
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
|
||||
</g>
|
||||
</g></g><g transform="translate(770,0) scale(2.45, 2.45)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
|
||||
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
|
||||
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
|
||||
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
|
||||
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
|
||||
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
|
||||
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
|
||||
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
|
||||
</g>
|
||||
</g></g><g transform="translate(0,770) scale(2.45, 2.45)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
|
||||
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
|
||||
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
|
||||
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
|
||||
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
|
||||
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
|
||||
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
|
||||
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
|
||||
</g>
|
||||
</g></g><g transform="translate(70,70) scale(1.05, 1.05)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<g id="XMLID_1_">
|
||||
<g>
|
||||
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
|
||||
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
|
||||
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g></g><g transform="translate(840,70) scale(1.05, 1.05)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<g id="XMLID_1_">
|
||||
<g>
|
||||
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
|
||||
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
|
||||
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g></g><g transform="translate(70,840) scale(1.05, 1.05)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<g id="XMLID_1_">
|
||||
<g>
|
||||
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
|
||||
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
|
||||
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g></g></g></svg>
|
After Width: | Height: | Size: 50 KiB |
552
config/caddy/content/overview/qr-loki-viz.svg
Normal file
@ -0,0 +1,552 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="1160px" height="1160px" viewBox="0 0 1160 1160" enable-background="new 0 0 1160 1160" xml:space="preserve">
|
||||
<rect x="0" y="0" width="1160" height="1160" fill="rgb(255,255,255)" /><g transform="translate(80,80)"><g transform="translate(320,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,0) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,40) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,40) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,80) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,120) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,160) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,200) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,240) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,280) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,280) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,280) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(120,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(160,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(200,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(240,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(680,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(880,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,320) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(40,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(120,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(880,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,360) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(80,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(160,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(240,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(680,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,400) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(80,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(120,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(160,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(200,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(880,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,440) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(200,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(240,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(720,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,480) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(80,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,520) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(40,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(80,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(160,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(240,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(880,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,560) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(80,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(160,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(200,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(680,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(720,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(880,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,600) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(80,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(160,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(240,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(280,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(680,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(720,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(880,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,640) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,680) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(720,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,720) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,760) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(600,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(680,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(720,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,800) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(560,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(720,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,840) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(680,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(880,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,880) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(760,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(800,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(880,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(920,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,920) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(320,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(360,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(400,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(440,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(480,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(520,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(640,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(680,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(840,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(960,960) scale(0.4,0.4)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<rect width="100" height="100"/>
|
||||
</g></g><g transform="translate(0,0) scale(2.8, 2.8)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
|
||||
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
|
||||
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
|
||||
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
|
||||
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
|
||||
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
|
||||
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
|
||||
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
|
||||
</g>
|
||||
</g></g><g transform="translate(720,0) scale(2.8, 2.8)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
|
||||
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
|
||||
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
|
||||
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
|
||||
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
|
||||
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
|
||||
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
|
||||
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
|
||||
</g>
|
||||
</g></g><g transform="translate(0,720) scale(2.8, 2.8)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<path style="fill:none;" d="M65.859,15.008H34.141c-4.082,0-7.869,1.258-10.979,3.398c-2.419,1.665-4.428,3.864-5.848,6.421
|
||||
C15.838,27.484,15,30.526,15,33.758v32.471c0,10.344,8.586,18.76,19.145,18.76L50,84.992l15.855-0.004
|
||||
C76.414,84.988,85,76.572,85,66.229V33.758C85,23.419,76.414,15.008,65.859,15.008z"/>
|
||||
<path d="M65.859,0.008H34.141h0C18.683,0.008,5.587,10.221,1.4,24.18c-0.433,1.444-0.771,2.928-1.006,4.445
|
||||
C0.135,30.299,0,32.013,0,33.758v32.471c0,18.619,15.32,33.76,34.141,33.76L50,99.992l15.859-0.004
|
||||
c18.82,0,34.141-15.141,34.141-33.76V33.758C100,15.148,84.68,0.008,65.859,0.008z M85,66.229c0,10.344-8.586,18.76-19.145,18.76
|
||||
L50,84.992l-15.855-0.004C23.586,84.988,15,76.572,15,66.229V33.758c0-3.231,0.838-6.273,2.313-8.931
|
||||
c1.42-2.557,3.429-4.756,5.848-6.421c3.11-2.141,6.897-3.398,10.979-3.398h31.719C76.414,15.008,85,23.419,85,33.758V66.229z"/>
|
||||
</g>
|
||||
</g></g><g transform="translate(80,80) scale(1.2, 1.2)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<g id="XMLID_1_">
|
||||
<g>
|
||||
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
|
||||
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
|
||||
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g></g><g transform="translate(800,80) scale(1.2, 1.2)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<g id="XMLID_1_">
|
||||
<g>
|
||||
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
|
||||
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
|
||||
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g></g><g transform="translate(80,800) scale(1.2, 1.2)"><g transform="" style="fill: rgb(16, 64, 102);">
|
||||
<g>
|
||||
<g id="XMLID_1_">
|
||||
<g>
|
||||
<path d="M27.351,100c-15.09,0-27.365-12.032-27.365-26.808V26.794c0-4.616,1.2-8.96,3.301-12.761
|
||||
c2.029-3.658,4.901-6.802,8.36-9.174C16.09,1.801,21.506,0,27.336,0h45.327c15.076,0,27.351,12.018,27.351,26.793v46.398
|
||||
c0,14.775-12.274,26.808-27.351,26.808H50H27.351z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g></g></g></svg>
|
After Width: | Height: | Size: 37 KiB |
1043
config/caddy/content/overview/qr-loki.wifi.svg
Normal file
After Width: | Height: | Size: 80 KiB |
1
config/caddy/content/overview/safety-glasses.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg id="icons" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><defs><style>.cls-1{fill:#b7e29c;}.cls-2{fill:#97cc83;}.cls-3{fill:#f4d647;}.cls-4{fill:#f4a742;}.cls-5{fill:#5282ef;}.cls-6{fill:#a2bdf4;}.cls-7{fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;}</style></defs><title>safety-glasses</title><path class="cls-1" d="M48,37a33.319,33.319,0,0,1,8.56,1.083A27.63,27.63,0,0,0,64,39a27.643,27.643,0,0,0,7.44-.917A33.308,33.308,0,0,1,80,37h22.474a1,1,0,0,0,.85-1.536C96.759,24.828,84.651,18,64,18S31.241,24.828,24.675,35.464A1,1,0,0,0,25.526,37Z"/><path class="cls-1" d="M90,91c-15.884,0-19.965-7.631-22.665-12.681C65.561,75,64.656,75,64,75s-1.56,0-3.335,3.319C57.964,83.369,53.883,91,38,91c-5.978,0-10.526-1.4-13.985-3.723a1,1,0,0,0-1.487,1.229C28.428,101.418,40.846,110,64,110s35.572-8.582,41.473-21.495a1,1,0,0,0-1.487-1.229C100.526,89.6,95.978,91,90,91Z"/><path class="cls-2" d="M67.33,78.32a26.676,26.676,0,0,0,4.57,6.64,282.35,282.35,0,0,0-15.14,24.73C38.2,108.07,27.78,100,22.53,88.51a1,1,0,0,1,1.48-1.23C27.47,89.6,32.02,91,38,91c15.88,0,19.96-7.63,22.67-12.68C62.44,75,63.34,75,64,75S65.56,75,67.33,78.32Z"/><path class="cls-2" d="M102.47,37H80a33.7,33.7,0,0,0-8.56,1.08c-.89.21-1.73.41-2.67.57A170.727,170.727,0,0,1,91.95,24.34a32.506,32.506,0,0,1,11.37,11.12A1,1,0,0,1,102.47,37Z"/><g id="_Group_" data-name="<Group>"><path class="cls-3" d="M113,46v4a2.006,2.006,0,0,1-2,2h-4.33c-.23,0-.45-.01-.68-.02a11.881,11.881,0,0,1-2.59-.43l-7.39-2.1A12,12,0,0,0,92.74,49s-10.25,2.86-27.5,2.99h-.01c-.41.01-.82.01-1.23.01-5.4,0-10.14-.27-14.14-.65h-.01A91.913,91.913,0,0,1,35.26,49a12,12,0,0,0-3.27.45l-7.39,2.1a11.881,11.881,0,0,1-2.59.43c-.23.01-.45.02-.68.02H17a2.006,2.006,0,0,1-2-2V46a4,4,0,0,1,4-4H48c7,0,8,2,16,2s9-2,16-2h29A4,4,0,0,1,113,46Z"/><path class="cls-4" d="M106.67,52h3.32c0,17-1.04,34-19.99,34C68,86,75,70,64,70S60,86,38,86C19.05,86,18.01,69,18.01,52h3.32c.23,0,.45-.01.68-.02V52c0,7.02.29,12.77,1.22,17.29a21.68,21.68,0,0,0,2.42,6.75C28.03,80.04,31.88,82,38,82c10.49,0,12.45-3.67,14.73-7.92C54.55,70.67,57.05,66,64,66s9.45,4.67,11.27,8.08C77.55,78.33,79.51,82,90,82c13.6,0,15.99-9.67,15.99-30v-.02C106.22,51.99,106.44,52,106.67,52Z"/><path class="cls-5" d="M105.99,51.98V52c0,20.33-2.39,30-15.99,30-10.49,0-12.45-3.67-14.73-7.92C73.45,70.67,70.95,66,64,66s-9.45,4.67-11.27,8.08C50.45,78.33,48.49,82,38,82c-6.12,0-9.97-1.96-12.35-5.96,6.37-7.39,18.66-18.12,39.58-24.05h.01C82.49,51.86,92.74,49,92.74,49a12,12,0,0,1,3.27.45l7.39,2.1A11.881,11.881,0,0,0,105.99,51.98Z"/><path class="cls-6" d="M64,52c.41,0,.82,0,1.23-.01C44.31,57.92,32.02,68.65,25.65,76.04a21.68,21.68,0,0,1-2.42-6.75A60.754,60.754,0,0,1,49.85,51.35h.01C53.86,51.73,58.6,52,64,52Z"/><path class="cls-5" d="M35.26,49a91.913,91.913,0,0,0,14.59,2.35A60.754,60.754,0,0,0,23.23,69.29C22.3,64.77,22.01,59.02,22.01,52v-.02a11.881,11.881,0,0,0,2.59-.43l7.39-2.1A12,12,0,0,1,35.26,49Z"/><path class="cls-7" d="M18.01,52c0,17,1.04,34,19.99,34,22,0,15-16,26-16s4,16,26,16c18.95,0,19.99-17,19.99-34"/><path class="cls-7" d="M65.24,51.99C82.49,51.86,92.74,49,92.74,49a12,12,0,0,1,3.27.45l7.39,2.1a11.881,11.881,0,0,0,2.59.43c.23.01.45.02.68.02H111a2.006,2.006,0,0,0,2-2V46a4,4,0,0,0-4-4H80c-7,0-8,2-16,2s-9-2-16-2H19a4,4,0,0,0-4,4v4a2.006,2.006,0,0,0,2,2h4.33c.23,0,.45-.01.68-.02a11.881,11.881,0,0,0,2.59-.43l7.39-2.1A12,12,0,0,1,35.26,49a91.913,91.913,0,0,0,14.59,2.35"/><path class="cls-7" d="M49.86,51.35c4,.38,8.74.65,14.14.65.41,0,.82,0,1.23-.01"/><path class="cls-7" d="M105.99,51.98V52c0,20.33-2.39,30-15.99,30-10.49,0-12.45-3.67-14.73-7.92C73.45,70.67,70.95,66,64,66s-9.45,4.67-11.27,8.08C50.45,78.33,48.49,82,38,82c-6.12,0-9.97-1.96-12.35-5.96a21.68,21.68,0,0,1-2.42-6.75C22.3,64.77,22.01,59.02,22.01,52v-.02"/><path class="cls-7" d="M23.23,69.29A60.754,60.754,0,0,1,49.85,51.35h.01"/><path class="cls-7" d="M25.65,76.04c6.37-7.39,18.66-18.12,39.58-24.05h.01"/></g></svg>
|
After Width: | Height: | Size: 3.8 KiB |
247
config/caddy/content/overview/style.css
Normal file
@ -0,0 +1,247 @@
|
||||
html
|
||||
{
|
||||
background-color: rgb(51, 51, 51);
|
||||
font-family: sans-serif;
|
||||
padding-bottom: 50px;
|
||||
}
|
||||
|
||||
#HEADLINE
|
||||
{
|
||||
font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
|
||||
text-align: center;
|
||||
color: white;
|
||||
background-color: rgb(1, 115, 126);
|
||||
box-shadow: 0px 15px 0px -5px rgb(1, 89, 97);
|
||||
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
#LOGO
|
||||
{
|
||||
height: 1em;
|
||||
width: auto;
|
||||
|
||||
float: right;
|
||||
margin-top: 2px;
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
background-color: inherit;
|
||||
}
|
||||
|
||||
.mini-heads
|
||||
{
|
||||
color: white;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
#LEFT
|
||||
{
|
||||
float: left;
|
||||
max-width: 49.5%;
|
||||
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#RIGHT
|
||||
{
|
||||
float: right;
|
||||
max-width: 49.5%;
|
||||
flex-direction: row;
|
||||
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.qr
|
||||
{
|
||||
max-width: 59.5%;
|
||||
height: auto;
|
||||
|
||||
object-fit: cover;
|
||||
|
||||
border-color: black;
|
||||
border: 3px solid;
|
||||
border-radius: 10%;
|
||||
|
||||
}
|
||||
|
||||
.qr_2
|
||||
{
|
||||
width: 35%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
table, td
|
||||
{
|
||||
color: white;
|
||||
|
||||
width: 70%;
|
||||
line-height: 190%;
|
||||
border: 1px solid rgb(76, 76, 76);
|
||||
background-color: rgb(34, 34, 34);
|
||||
border-collapse: collapse;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
#SPACE
|
||||
{
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
#NORM_SET
|
||||
{
|
||||
padding-top: 6px;
|
||||
}
|
||||
|
||||
.link
|
||||
{
|
||||
color: white;
|
||||
background-color: rgb(1, 115, 126);
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
border-radius: 3px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.link:hover
|
||||
{
|
||||
color: rgb(206, 206, 206);
|
||||
}
|
||||
|
||||
.link:visited
|
||||
{
|
||||
color: rgb(75, 75, 75);
|
||||
background-color: rgb(1, 89, 97);
|
||||
}
|
||||
|
||||
.info
|
||||
{
|
||||
color: white;
|
||||
|
||||
background-color: rgb(34, 34, 34);
|
||||
|
||||
padding-top: 3px;
|
||||
padding-right: 6px;
|
||||
text-indent: 6px;
|
||||
|
||||
position: fixed;
|
||||
bottom: 0px;
|
||||
right: 6px;
|
||||
|
||||
border: 1px solid rgb(76, 76, 76);
|
||||
}
|
||||
|
||||
.info:hover
|
||||
{
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.info:visited
|
||||
{
|
||||
color: rgb(206, 206, 206);
|
||||
}
|
||||
|
||||
a, a:visited, a:hover, a:active {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/* Phone */ /* pract. ab 400% zoom (inludkiert) am pc */
|
||||
@media only screen and (max-width : 480px)
|
||||
{
|
||||
#LEFT
|
||||
{
|
||||
width: 100%;
|
||||
max-width: none;
|
||||
clear: both;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#RIGHT
|
||||
{
|
||||
max-width: none;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.qr
|
||||
{
|
||||
max-width: 43.9%;
|
||||
}
|
||||
|
||||
.qr_2
|
||||
{
|
||||
width: 29%;
|
||||
}
|
||||
}
|
||||
|
||||
/* Tablet / Ipad */ /* pract. ab 200% Zoom (nicht inkludiert) am pc */
|
||||
@media only screen and (max-width : 767px) and (min-width: 481px)
|
||||
{
|
||||
#LEFT
|
||||
{
|
||||
max-width: none;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.qr
|
||||
{
|
||||
max-width: 35%;
|
||||
}
|
||||
|
||||
table td
|
||||
{
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
.mini-heads
|
||||
{
|
||||
font-size: x-large;
|
||||
}
|
||||
|
||||
#RIGHT
|
||||
{
|
||||
max-width: none;
|
||||
}
|
||||
|
||||
#SPACE
|
||||
{
|
||||
padding: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#BLOCK_ONE
|
||||
{
|
||||
max-width: 49.5%;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#BLOCK_TWO
|
||||
{
|
||||
max-width: 49.5%;
|
||||
float: right;
|
||||
}
|
||||
|
||||
#BLOCK_THREE
|
||||
{
|
||||
max-width: 49.5%;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.qr_2
|
||||
{
|
||||
max-width: 80%;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.link
|
||||
{
|
||||
font-size: larger;
|
||||
}
|
||||
|
||||
.info
|
||||
{
|
||||
font-size: larger;
|
||||
}
|
||||
}
|
1
config/caddy/content/overview/wrench.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg id="icons" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><defs><style>.cls-1{fill:#9addf7;}.cls-2{fill:#65c7e5;}.cls-3{fill:#cbccd3;}.cls-4{fill:#a5a7ad;}.cls-5{fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;}.cls-6{opacity:0.16;}</style></defs><title>wrench</title><path class="cls-1" d="M108.91,50.84a1,1,0,0,0-1.57-.62c-5.62,4.09-10.88,5.38-15.64,6.53-3.79.92-7.06,1.71-10.22,3.9a19.456,19.456,0,0,0-3.84,3.7C66.47,78.2,51.65,95.15,42.5,105.22a1,1,0,0,0,.42,1.62A63.082,63.082,0,0,0,64,110a78.244,78.244,0,0,0,8.64-.45,49.668,49.668,0,0,0,17.25-4.75C105.07,97.12,110,81.74,110,64A74.515,74.515,0,0,0,108.91,50.84ZM73.98,18.61A77.519,77.519,0,0,0,64,18c-9.06,0-16.47,1.31-22.5,3.69A33.934,33.934,0,0,0,26.95,32.2C20.39,40.47,18,51.67,18,64a65.914,65.914,0,0,0,2.58,19.37.993.993,0,0,0,1.63.42c4.55-4.21,10.43-9.52,16.74-15.09,2.68-2.37,5.44-4.78,8.21-7.18,5.14-4.45,10.32-8.84,15.12-12.78a19.294,19.294,0,0,0,3.03-3.05c3.47-4.53,3.86-8.9,4.24-13.12.34-3.79.68-7.71,3.6-10.65l1.46-1.66A1,1,0,0,0,73.98,18.61Z"/><path class="cls-2" d="M45.74,30.99l-4.01,7A2,2,0,0,1,39.99,39H32.01a2,2,0,0,1-1.74-1.01L26.95,32.2A33.934,33.934,0,0,1,41.5,21.69a1.858,1.858,0,0,1,.23.32l4.01,7A2,2,0,0,1,45.74,30.99Z"/><path class="cls-2" d="M94.993,70.5H91.007a2,2,0,0,0-1.735,1.006l-2.006,3.5a2,2,0,0,0,0,1.989l2.006,3.5A2,2,0,0,0,91.007,81.5h3.985a2,2,0,0,0,1.735-1.006l2.006-3.5a2,2,0,0,0,0-1.989l-2.006-3.5A2,2,0,0,0,94.993,70.5Z"/><path class="cls-2" d="M47.16,61.52c-2.77,2.4-5.53,4.81-8.21,7.18a1.934,1.934,0,0,1-.68-.71l-2.01-3.5a2,2,0,0,1,0-1.98l2.01-3.5A2,2,0,0,1,40.01,58h3.98a2,2,0,0,1,1.74,1.01Z"/><path class="cls-2" d="M89.89,104.8a49.668,49.668,0,0,1-17.25,4.75l-1.53-5.65a1.991,1.991,0,0,1,.51-1.94l5.65-5.65a2,2,0,0,1,1.94-.52L87,97.9a2.011,2.011,0,0,1,1.4,1.41Z"/><g id="_Group_" data-name="<Group>"><path class="cls-3" d="M92.89,42l-1.76,3.63c-.04.08-.08.16-.13.24a1.986,1.986,0,0,1-1.47.88,1.574,1.574,0,0,1-.53-.01,1.721,1.721,0,0,1-.54-.18l-.85-.42-.61-.3-1.18-.58-1.8-.88L83,43.88l-.78-.38-.97-.48a1.274,1.274,0,0,1-.25-.15,1.869,1.869,0,0,1-.47-.46,2.012,2.012,0,0,1-.2-2.09L81,38.93l1.09-2.25a1.98,1.98,0,0,1,.91-.92,2.107,2.107,0,0,1,.73-.21,1.9,1.9,0,0,1,1.03.2l.24.12.63.31,1.37.67.43.21,1.57.78.23.11,1.77.87.02.01.95.47a2.03,2.03,0,0,1,.92,2.7Z"/><path class="cls-3" d="M94.4,16.02a2,2,0,0,1,1.66,2.86L90.14,31.7,79.35,26.67a15.038,15.038,0,0,1,3.72-6.24A14.881,14.881,0,0,1,94.4,16.02Z"/><path class="cls-4" d="M111.47,22.16c1.8,5.55,3.17,14.29-2.91,20.43-11.01,11.11-20.5,7.4-29.93,13.96a23.949,23.949,0,0,0-4.88,4.66C58.54,80.07,37.58,103.5,32.09,109.04a9.941,9.941,0,0,1-14.16,0,10.171,10.171,0,0,1,0-14.29c5.5-5.55,28.81-26.79,47.52-42.15a24.047,24.047,0,0,0,3.82-3.86c7.55-9.83,3.53-19.36,7.43-23.3l2.65,1.23L90.14,31.7l4.02,1.87a4.013,4.013,0,0,0,1.99.36l5.43-.42a4.014,4.014,0,0,0,3.53-2.86l2.54-8.43A2,2,0,0,1,111.47,22.16ZM92.89,42a2.032,2.032,0,0,0-.92-2.7l-7.21-3.55a1.987,1.987,0,0,0-2.67.93l-1.76,3.64a2.035,2.035,0,0,0,.92,2.7l7.21,3.54a1.979,1.979,0,0,0,2.67-.93ZM25.02,106A3.952,3.952,0,0,0,29,102.02,4.046,4.046,0,0,0,24.98,98,3.952,3.952,0,0,0,21,101.98,4.046,4.046,0,0,0,25.02,106Z"/><path class="cls-5" d="M79.35,26.67,76.7,25.44c-3.9,3.94.12,13.47-7.43,23.3a24.047,24.047,0,0,1-3.82,3.86C46.74,67.96,23.43,89.2,17.93,94.75a10.171,10.171,0,0,0,0,14.29,9.941,9.941,0,0,0,14.16,0c5.49-5.54,26.45-28.97,41.66-47.83a23.949,23.949,0,0,1,4.88-4.66c9.43-6.56,18.92-2.85,29.93-13.96,6.08-6.14,4.71-14.88,2.91-20.43a2,2,0,0,0-3.82.06l-2.54,8.43a4.014,4.014,0,0,1-3.53,2.86l-5.43.42a4.013,4.013,0,0,1-1.99-.36L90.14,31.7Z"/><path class="cls-5" d="M21,101.98A3.952,3.952,0,0,1,24.98,98,4.046,4.046,0,0,1,29,102.02,3.952,3.952,0,0,1,25.02,106,4.046,4.046,0,0,1,21,101.98Z"/><path class="cls-5" d="M79.35,26.67a15.038,15.038,0,0,1,3.72-6.24A14.881,14.881,0,0,1,94.4,16.02a2,2,0,0,1,1.66,2.86L90.14,31.7"/><path class="cls-5" d="M80.33,40.32l1.76-3.64a1.987,1.987,0,0,1,2.67-.93l7.21,3.55a2.032,2.032,0,0,1,.92,2.7l-1.76,3.63a1.979,1.979,0,0,1-2.67.93l-7.21-3.54A2.035,2.035,0,0,1,80.33,40.32Z"/><line class="cls-5" x1="86.72" y1="36.71" x2="83.3" y2="44.03"/><line class="cls-5" x1="90.31" y1="38.48" x2="86.9" y2="45.79"/></g><g class="cls-6"><path d="M30.172,91.172,58.879,63.879a3,3,0,0,1,4.243,4.243L35.828,96.828a4,4,0,0,1-5.8-5.514C30.072,91.269,30.127,91.215,30.172,91.172Z"/></g></svg>
|
After Width: | Height: | Size: 4.3 KiB |
BIN
config/foxglove/extensions/yulong.virtual-joystick-0.0.1.foxe
Normal file
155
config/foxglove/foxglove-layout.json
Normal file
@ -0,0 +1,155 @@
|
||||
{
|
||||
"configById": {
|
||||
"virtual-joystick.Virtual Joystick!26sdvuh": {
|
||||
"topic": "/cmd_vel",
|
||||
"publishRate": 60,
|
||||
"maxLinearSpeed": 0.5,
|
||||
"maxAngularSpeed": 2
|
||||
},
|
||||
"3D!18i6zy7": {
|
||||
"layers": {
|
||||
"845139cb-26bc-40b3-8161-8ab60af4baf5": {
|
||||
"visible": true,
|
||||
"frameLocked": true,
|
||||
"label": "Grid",
|
||||
"instanceId": "845139cb-26bc-40b3-8161-8ab60af4baf5",
|
||||
"layerId": "foxglove.Grid",
|
||||
"size": 10,
|
||||
"divisions": 10,
|
||||
"lineWidth": 1,
|
||||
"color": "#248eff",
|
||||
"position": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"rotation": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"order": 1
|
||||
}
|
||||
},
|
||||
"cameraState": {
|
||||
"distance": 20,
|
||||
"perspective": true,
|
||||
"phi": 60,
|
||||
"target": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"targetOffset": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"targetOrientation": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"thetaOffset": 45,
|
||||
"fovy": 45,
|
||||
"near": 0.5,
|
||||
"far": 5000
|
||||
},
|
||||
"followMode": "follow-pose",
|
||||
"scene": {},
|
||||
"transforms": {},
|
||||
"topics": {},
|
||||
"publish": {
|
||||
"type": "point",
|
||||
"poseTopic": "/move_base_simple/goal",
|
||||
"pointTopic": "/clicked_point",
|
||||
"poseEstimateTopic": "/initialpose",
|
||||
"poseEstimateXDeviation": 0.5,
|
||||
"poseEstimateYDeviation": 0.5,
|
||||
"poseEstimateThetaDeviation": 0.26179939
|
||||
},
|
||||
"imageMode": {}
|
||||
},
|
||||
"Image!3mnp456": {
|
||||
"cameraState": {
|
||||
"distance": 20,
|
||||
"perspective": true,
|
||||
"phi": 60,
|
||||
"target": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"targetOffset": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"targetOrientation": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"thetaOffset": 45,
|
||||
"fovy": 45,
|
||||
"near": 0.5,
|
||||
"far": 5000
|
||||
},
|
||||
"followMode": "follow-pose",
|
||||
"scene": {},
|
||||
"transforms": {},
|
||||
"topics": {},
|
||||
"layers": {},
|
||||
"publish": {
|
||||
"type": "point",
|
||||
"poseTopic": "/move_base_simple/goal",
|
||||
"pointTopic": "/clicked_point",
|
||||
"poseEstimateTopic": "/initialpose",
|
||||
"poseEstimateXDeviation": 0.5,
|
||||
"poseEstimateYDeviation": 0.5,
|
||||
"poseEstimateThetaDeviation": 0.26179939
|
||||
},
|
||||
"imageMode": {}
|
||||
},
|
||||
"RawMessages!os6rgs": {
|
||||
"diffEnabled": false,
|
||||
"diffMethod": "custom",
|
||||
"diffTopicPath": "",
|
||||
"showFullMessageForDiff": false,
|
||||
"topicPath": ""
|
||||
},
|
||||
"Battery Indicator.Battery display!3gjrnnu": {
|
||||
"batteryTopic": "",
|
||||
"topic": {
|
||||
"batteryTopic": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"globalVariables": {},
|
||||
"userNodes": {},
|
||||
"playbackConfig": {
|
||||
"speed": 1
|
||||
},
|
||||
"layout": {
|
||||
"direction": "row",
|
||||
"first": "virtual-joystick.Virtual Joystick!26sdvuh",
|
||||
"second": {
|
||||
"first": "3D!18i6zy7",
|
||||
"second": {
|
||||
"first": "Image!3mnp456",
|
||||
"second": {
|
||||
"first": "RawMessages!os6rgs",
|
||||
"second": "Battery Indicator.Battery display!3gjrnnu",
|
||||
"direction": "column",
|
||||
"splitPercentage": 79.02494331065759
|
||||
},
|
||||
"direction": "column",
|
||||
"splitPercentage": 30
|
||||
},
|
||||
"direction": "row",
|
||||
"splitPercentage": 70
|
||||
}
|
||||
}
|
||||
}
|
169
config/foxglove/index.html
Normal file
@ -0,0 +1,169 @@
|
||||
<!doctype html><html><head><meta charset="utf-8"><meta name="apple-mobile-web-app-capable" content="yes"><title>Foxglove Studio</title><link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png"/><link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png"/><link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png"/><style id="loading-styles">body {
|
||||
margin: 0;
|
||||
}
|
||||
#root {
|
||||
height: 100vh;
|
||||
background-color: #f4f4f5;
|
||||
color: #393939;
|
||||
}
|
||||
@media (prefers-color-scheme: dark) {
|
||||
#root {
|
||||
background-color: #15151a};
|
||||
color: #e1e1e4;
|
||||
}
|
||||
}</style><script defer="defer" src="main.c33a35baf28db3973be7.js"></script></head><script>global = globalThis;
|
||||
globalThis.FOXGLOVE_STUDIO_DEFAULT_LAYOUT = [{
|
||||
"configById": {
|
||||
"virtual-joystick.Virtual Joystick!26sdvuh": {
|
||||
"topic": "/cmd_vel",
|
||||
"publishRate": 60,
|
||||
"maxLinearSpeed": 0.5,
|
||||
"maxAngularSpeed": 2
|
||||
},
|
||||
"3D!18i6zy7": {
|
||||
"layers": {
|
||||
"845139cb-26bc-40b3-8161-8ab60af4baf5": {
|
||||
"visible": true,
|
||||
"frameLocked": true,
|
||||
"label": "Grid",
|
||||
"instanceId": "845139cb-26bc-40b3-8161-8ab60af4baf5",
|
||||
"layerId": "foxglove.Grid",
|
||||
"size": 10,
|
||||
"divisions": 10,
|
||||
"lineWidth": 1,
|
||||
"color": "#248eff",
|
||||
"position": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"rotation": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"order": 1
|
||||
}
|
||||
},
|
||||
"cameraState": {
|
||||
"distance": 20,
|
||||
"perspective": true,
|
||||
"phi": 60,
|
||||
"target": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"targetOffset": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"targetOrientation": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"thetaOffset": 45,
|
||||
"fovy": 45,
|
||||
"near": 0.5,
|
||||
"far": 5000
|
||||
},
|
||||
"followMode": "follow-pose",
|
||||
"scene": {},
|
||||
"transforms": {},
|
||||
"topics": {},
|
||||
"publish": {
|
||||
"type": "point",
|
||||
"poseTopic": "/move_base_simple/goal",
|
||||
"pointTopic": "/clicked_point",
|
||||
"poseEstimateTopic": "/initialpose",
|
||||
"poseEstimateXDeviation": 0.5,
|
||||
"poseEstimateYDeviation": 0.5,
|
||||
"poseEstimateThetaDeviation": 0.26179939
|
||||
},
|
||||
"imageMode": {}
|
||||
},
|
||||
"Image!3mnp456": {
|
||||
"cameraState": {
|
||||
"distance": 20,
|
||||
"perspective": true,
|
||||
"phi": 60,
|
||||
"target": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"targetOffset": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"targetOrientation": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"thetaOffset": 45,
|
||||
"fovy": 45,
|
||||
"near": 0.5,
|
||||
"far": 5000
|
||||
},
|
||||
"followMode": "follow-pose",
|
||||
"scene": {},
|
||||
"transforms": {},
|
||||
"topics": {},
|
||||
"layers": {},
|
||||
"publish": {
|
||||
"type": "point",
|
||||
"poseTopic": "/move_base_simple/goal",
|
||||
"pointTopic": "/clicked_point",
|
||||
"poseEstimateTopic": "/initialpose",
|
||||
"poseEstimateXDeviation": 0.5,
|
||||
"poseEstimateYDeviation": 0.5,
|
||||
"poseEstimateThetaDeviation": 0.26179939
|
||||
},
|
||||
"imageMode": {}
|
||||
},
|
||||
"RawMessages!os6rgs": {
|
||||
"diffEnabled": false,
|
||||
"diffMethod": "custom",
|
||||
"diffTopicPath": "",
|
||||
"showFullMessageForDiff": false,
|
||||
"topicPath": ""
|
||||
},
|
||||
"Battery Indicator.Battery display!3gjrnnu": {
|
||||
"batteryTopic": "",
|
||||
"topic": {
|
||||
"batteryTopic": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"globalVariables": {},
|
||||
"userNodes": {},
|
||||
"playbackConfig": {
|
||||
"speed": 1
|
||||
},
|
||||
"layout": {
|
||||
"direction": "row",
|
||||
"first": "virtual-joystick.Virtual Joystick!26sdvuh",
|
||||
"second": {
|
||||
"first": "3D!18i6zy7",
|
||||
"second": {
|
||||
"first": "Image!3mnp456",
|
||||
"second": {
|
||||
"first": "RawMessages!os6rgs",
|
||||
"second": "Battery Indicator.Battery display!3gjrnnu",
|
||||
"direction": "column",
|
||||
"splitPercentage": 79.02494331065759
|
||||
},
|
||||
"direction": "column",
|
||||
"splitPercentage": 30
|
||||
},
|
||||
"direction": "row",
|
||||
"splitPercentage": 70
|
||||
}
|
||||
}
|
||||
}][0];</script><body><div id="root"></div></body></html>
|
504
config/nav2_params.yaml
Normal file
@ -0,0 +1,504 @@
|
||||
slam_toolbox:
|
||||
ros__parameters:
|
||||
|
||||
# Plugin params
|
||||
solver_plugin: solver_plugins::CeresSolver
|
||||
ceres_linear_solver: SPARSE_NORMAL_CHOLESKY
|
||||
ceres_preconditioner: SCHUR_JACOBI
|
||||
ceres_trust_strategy: LEVENBERG_MARQUARDT
|
||||
ceres_dogleg_type: TRADITIONAL_DOGLEG
|
||||
ceres_loss_function: None
|
||||
|
||||
# ROS Parameters
|
||||
odom_frame: odom
|
||||
map_frame: map
|
||||
base_frame: base_footprint
|
||||
scan_topic: /scan_filtered
|
||||
mode: mapping #localization
|
||||
|
||||
# if you'd like to immediately start continuing a map at a given pose
|
||||
# or at the dock, but they are mutually exclusive, if pose is given
|
||||
# will use pose
|
||||
#map_file_name: /home/bjorn/Documents/ros-projects/cps_bot_mini_ws/my_map_serial
|
||||
# map_start_pose: [0.0, 0.0, 0.0]
|
||||
map_start_at_dock: true
|
||||
|
||||
debug_logging: false
|
||||
throttle_scans: 1
|
||||
transform_publish_period: 0.02 #if 0 never publishes odometry
|
||||
map_update_interval: 1.0 #was 5.0
|
||||
resolution: 0.05
|
||||
max_laser_range: 200.0 #for rastering images, standard was 20
|
||||
minimum_time_interval: 0.5
|
||||
transform_timeout: 0.2
|
||||
tf_buffer_duration: 30.
|
||||
stack_size_to_use: 40000000 #// program needs a larger stack size to serialize large maps
|
||||
enable_interactive_mode: true
|
||||
|
||||
# General Parameters
|
||||
use_scan_matching: true
|
||||
use_scan_barycenter: true
|
||||
minimum_travel_distance: 0.5
|
||||
minimum_travel_heading: 0.5
|
||||
scan_buffer_size: 10
|
||||
scan_buffer_maximum_scan_distance: 10.0
|
||||
link_match_minimum_response_fine: 0.1
|
||||
link_scan_maximum_distance: 1.5
|
||||
loop_search_maximum_distance: 3.0
|
||||
do_loop_closing: true
|
||||
loop_match_minimum_chain_size: 10
|
||||
loop_match_maximum_variance_coarse: 3.0
|
||||
loop_match_minimum_response_coarse: 0.35
|
||||
loop_match_minimum_response_fine: 0.45
|
||||
|
||||
# Correlation Parameters - Correlation Parameters
|
||||
correlation_search_space_dimension: 0.5
|
||||
correlation_search_space_resolution: 0.01
|
||||
correlation_search_space_smear_deviation: 0.1
|
||||
|
||||
# Correlation Parameters - Loop Closure Parameters
|
||||
loop_search_space_dimension: 8.0
|
||||
loop_search_space_resolution: 0.05
|
||||
loop_search_space_smear_deviation: 0.03
|
||||
|
||||
# Scan Matcher Parameters
|
||||
distance_variance_penalty: 0.5
|
||||
angle_variance_penalty: 1.0
|
||||
|
||||
fine_search_angle_offset: 0.00349
|
||||
coarse_search_angle_offset: 0.349
|
||||
coarse_angle_resolution: 0.0349
|
||||
minimum_angle_penalty: 0.9
|
||||
minimum_distance_penalty: 0.5
|
||||
use_response_expansion: true
|
||||
|
||||
amcl:
|
||||
ros__parameters:
|
||||
use_sim_time: True
|
||||
alpha1: 0.2
|
||||
alpha2: 0.2
|
||||
alpha3: 0.2
|
||||
alpha4: 0.2
|
||||
alpha5: 0.2
|
||||
base_frame_id: "base_footprint"
|
||||
beam_skip_distance: 0.5
|
||||
beam_skip_error_threshold: 0.9
|
||||
beam_skip_threshold: 0.3
|
||||
do_beamskip: false
|
||||
global_frame_id: "map"
|
||||
lambda_short: 0.1
|
||||
laser_likelihood_max_dist: 2.0
|
||||
laser_max_range: 7.0 #was 100.0
|
||||
laser_min_range: -1.0
|
||||
laser_model_type: "likelihood_field"
|
||||
max_beams: 60
|
||||
max_particles: 2000
|
||||
min_particles: 500
|
||||
odom_frame_id: "odom"
|
||||
pf_err: 0.05
|
||||
pf_z: 0.99
|
||||
recovery_alpha_fast: 0.0
|
||||
recovery_alpha_slow: 0.0
|
||||
resample_interval: 1
|
||||
robot_model_type: "nav2_amcl::DifferentialMotionModel"
|
||||
save_pose_rate: 0.5
|
||||
sigma_hit: 0.2
|
||||
tf_broadcast: true
|
||||
transform_tolerance: 1.0
|
||||
update_min_a: 0.2
|
||||
update_min_d: 0.25
|
||||
z_hit: 0.5
|
||||
z_max: 0.05
|
||||
z_rand: 0.5
|
||||
z_short: 0.05
|
||||
scan_topic: scan_filtered
|
||||
|
||||
bt_navigator:
|
||||
ros__parameters:
|
||||
use_sim_time: True
|
||||
global_frame: map
|
||||
robot_base_frame: base_link
|
||||
odom_topic: /odometry/filtered
|
||||
bt_loop_duration: 10
|
||||
default_server_timeout: 20
|
||||
# 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults:
|
||||
# nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml
|
||||
# nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml
|
||||
# They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2.
|
||||
plugin_lib_names:
|
||||
- nav2_compute_path_to_pose_action_bt_node
|
||||
- nav2_compute_path_through_poses_action_bt_node
|
||||
- nav2_smooth_path_action_bt_node
|
||||
- nav2_follow_path_action_bt_node
|
||||
- nav2_spin_action_bt_node
|
||||
- nav2_wait_action_bt_node
|
||||
- nav2_assisted_teleop_action_bt_node
|
||||
- nav2_back_up_action_bt_node
|
||||
- nav2_drive_on_heading_bt_node
|
||||
- nav2_clear_costmap_service_bt_node
|
||||
- nav2_is_stuck_condition_bt_node
|
||||
- nav2_goal_reached_condition_bt_node
|
||||
- nav2_goal_updated_condition_bt_node
|
||||
- nav2_globally_updated_goal_condition_bt_node
|
||||
- nav2_is_path_valid_condition_bt_node
|
||||
- nav2_initial_pose_received_condition_bt_node
|
||||
- nav2_reinitialize_global_localization_service_bt_node
|
||||
- nav2_rate_controller_bt_node
|
||||
- nav2_distance_controller_bt_node
|
||||
- nav2_speed_controller_bt_node
|
||||
- nav2_truncate_path_action_bt_node
|
||||
- nav2_truncate_path_local_action_bt_node
|
||||
- nav2_goal_updater_node_bt_node
|
||||
- nav2_recovery_node_bt_node
|
||||
- nav2_pipeline_sequence_bt_node
|
||||
- nav2_round_robin_node_bt_node
|
||||
- nav2_transform_available_condition_bt_node
|
||||
- nav2_time_expired_condition_bt_node
|
||||
- nav2_path_expiring_timer_condition
|
||||
- nav2_distance_traveled_condition_bt_node
|
||||
- nav2_single_trigger_bt_node
|
||||
- nav2_goal_updated_controller_bt_node
|
||||
- nav2_is_battery_low_condition_bt_node
|
||||
- nav2_navigate_through_poses_action_bt_node
|
||||
- nav2_navigate_to_pose_action_bt_node
|
||||
- nav2_remove_passed_goals_action_bt_node
|
||||
- nav2_planner_selector_bt_node
|
||||
- nav2_controller_selector_bt_node
|
||||
- nav2_goal_checker_selector_bt_node
|
||||
- nav2_controller_cancel_bt_node
|
||||
- nav2_path_longer_on_approach_bt_node
|
||||
- nav2_wait_cancel_bt_node
|
||||
- nav2_spin_cancel_bt_node
|
||||
- nav2_back_up_cancel_bt_node
|
||||
- nav2_assisted_teleop_cancel_bt_node
|
||||
- nav2_drive_on_heading_cancel_bt_node
|
||||
- nav2_is_battery_charging_condition_bt_node
|
||||
|
||||
bt_navigator_navigate_through_poses_rclcpp_node:
|
||||
ros__parameters:
|
||||
use_sim_time: True
|
||||
|
||||
bt_navigator_navigate_to_pose_rclcpp_node:
|
||||
ros__parameters:
|
||||
use_sim_time: True
|
||||
|
||||
# controller_server:
|
||||
# ros__parameters:
|
||||
# use_sim_time: True
|
||||
# controller_frequency: 20.0
|
||||
# min_x_velocity_threshold: 0.001
|
||||
# min_y_velocity_threshold: 0.5
|
||||
# min_theta_velocity_threshold: 0.001
|
||||
# failure_tolerance: 0.3
|
||||
# progress_checker_plugin: "progress_checker"
|
||||
# goal_checker_plugins: ["general_goal_checker"] # "precise_goal_checker"
|
||||
# controller_plugins: ["FollowPath"]
|
||||
|
||||
# # Progress checker parameters
|
||||
# progress_checker:
|
||||
# plugin: "nav2_controller::SimpleProgressChecker"
|
||||
# required_movement_radius: 0.5
|
||||
# movement_time_allowance: 10.0
|
||||
# # Goal checker parameters
|
||||
# #precise_goal_checker:
|
||||
# # plugin: "nav2_controller::SimpleGoalChecker"
|
||||
# # xy_goal_tolerance: 0.25
|
||||
# # yaw_goal_tolerance: 0.25
|
||||
# # stateful: True
|
||||
# general_goal_checker:
|
||||
# stateful: True
|
||||
# plugin: "nav2_controller::SimpleGoalChecker"
|
||||
# xy_goal_tolerance: 0.25
|
||||
# yaw_goal_tolerance: 0.25
|
||||
# # DWB parameters
|
||||
# FollowPath:
|
||||
# plugin: "dwb_core::DWBLocalPlanner"
|
||||
# debug_trajectory_details: True
|
||||
# min_vel_x: -0.1
|
||||
# min_vel_y: 0.0
|
||||
# max_vel_x: 0.26
|
||||
# max_vel_y: 0.0
|
||||
# max_vel_theta: 1.0
|
||||
# min_speed_xy: 0.0
|
||||
# max_speed_xy: 0.26
|
||||
# min_speed_theta: 0.0
|
||||
# # Add high threshold velocity for turtlebot 3 issue.
|
||||
# # https://github.com/ROBOTIS-GIT/turtlebot3_simulations/issues/75
|
||||
# acc_lim_x: 2.5
|
||||
# acc_lim_y: 0.0
|
||||
# acc_lim_theta: 3.2
|
||||
# decel_lim_x: -2.5
|
||||
# decel_lim_y: 0.0
|
||||
# decel_lim_theta: -3.2
|
||||
# vx_samples: 20
|
||||
# vy_samples: 5
|
||||
# vtheta_samples: 20
|
||||
# sim_time: 1.7
|
||||
# linear_granularity: 0.05
|
||||
# angular_granularity: 0.025
|
||||
# transform_tolerance: 0.2
|
||||
# xy_goal_tolerance: 0.25
|
||||
# trans_stopped_velocity: 0.25
|
||||
# short_circuit_trajectory_evaluation: True
|
||||
# stateful: True
|
||||
# critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist", "ObstacleFootprint", "PreferForward"]
|
||||
# BaseObstacle.scale: 0.02
|
||||
# PathAlign.scale: 32.0
|
||||
# PathAlign.forward_point_distance: 0.1
|
||||
# GoalAlign.scale: 24.0
|
||||
# GoalAlign.forward_point_distance: 0.1
|
||||
# PathDist.scale: 32.0
|
||||
# GoalDist.scale: 24.0
|
||||
# RotateToGoal.scale: 32.0
|
||||
# RotateToGoal.slowing_factor: 5.0
|
||||
# RotateToGoal.lookahead_time: -1.0
|
||||
controller_server:
|
||||
ros__parameters:
|
||||
use_sim_time: True
|
||||
controller_frequency: 100.0 # was 20.0
|
||||
min_x_velocity_threshold: 0.001
|
||||
min_y_velocity_threshold: 0.5
|
||||
min_theta_velocity_threshold: 0.001
|
||||
progress_checker_plugins: ["progress_checker"] # progress_checker_plugin: "progress_checker" For Humble and older
|
||||
goal_checker_plugins: ["goal_checker"]
|
||||
controller_plugins: ["FollowPath"]
|
||||
|
||||
progress_checker:
|
||||
plugin: "nav2_controller::SimpleProgressChecker"
|
||||
required_movement_radius: 0.5
|
||||
movement_time_allowance: 10.0
|
||||
goal_checker:
|
||||
plugin: "nav2_controller::SimpleGoalChecker"
|
||||
xy_goal_tolerance: 0.25 # was 0.25
|
||||
yaw_goal_tolerance: 0.25 # was 0.25
|
||||
stateful: True
|
||||
FollowPath:
|
||||
plugin: "nav2_regulated_pure_pursuit_controller::RegulatedPurePursuitController"
|
||||
desired_linear_vel: 0.5
|
||||
lookahead_dist: 0.6
|
||||
min_lookahead_dist: 0.3
|
||||
max_lookahead_dist: 0.9
|
||||
lookahead_time: 1.5
|
||||
rotate_to_heading_angular_vel: 1.8
|
||||
transform_tolerance: 0.1
|
||||
use_velocity_scaled_lookahead_dist: false
|
||||
min_approach_linear_velocity: 0.007 # was 0.05
|
||||
approach_velocity_scaling_dist: 0.6
|
||||
use_collision_detection: true
|
||||
max_allowed_time_to_collision_up_to_carrot: 1.0
|
||||
use_regulated_linear_velocity_scaling: true
|
||||
use_fixed_curvature_lookahead: false
|
||||
curvature_lookahead_dist: 0.25
|
||||
use_cost_regulated_linear_velocity_scaling: false
|
||||
regulated_linear_scaling_min_radius: 0.9
|
||||
regulated_linear_scaling_min_speed: 0.25
|
||||
use_rotate_to_heading: false # was true, cannot be set together with allow_reversing
|
||||
allow_reversing: true # was false
|
||||
rotate_to_heading_min_angle: 0.785
|
||||
max_angular_accel: 3.2
|
||||
max_robot_pose_search_dist: 10.0
|
||||
use_interpolation: true # was false
|
||||
|
||||
|
||||
local_costmap:
|
||||
local_costmap:
|
||||
ros__parameters:
|
||||
update_frequency: 5.0
|
||||
publish_frequency: 2.0
|
||||
global_frame: odom
|
||||
robot_base_frame: base_link
|
||||
use_sim_time: True
|
||||
rolling_window: true
|
||||
width: 3
|
||||
height: 3
|
||||
resolution: 0.05
|
||||
#robot_radius: 0.22
|
||||
footprint: "[ [0.065, 0.160], [0.065, -0.160], [-0.28, -0.13], [-0.28, 0.13] ]" # gave another points for the polygon "[ [0.18, 0.255], [0.18, -0.255], [-0.54, -0.165], [-0.54, 0.165] ]"
|
||||
plugins: ["voxel_layer", "inflation_layer"]
|
||||
inflation_layer:
|
||||
plugin: "nav2_costmap_2d::InflationLayer"
|
||||
cost_scaling_factor: 10.0 # was 3.0
|
||||
inflation_radius: 0.55
|
||||
voxel_layer:
|
||||
plugin: "nav2_costmap_2d::VoxelLayer"
|
||||
enabled: True
|
||||
publish_voxel_map: True
|
||||
origin_z: 0.0
|
||||
z_resolution: 0.05
|
||||
z_voxels: 16
|
||||
max_obstacle_height: 2.0
|
||||
mark_threshold: 0
|
||||
observation_sources: rplidar oakd
|
||||
rplidar:
|
||||
topic: /scan_filtered
|
||||
max_obstacle_height: 2.0
|
||||
clearing: True
|
||||
marking: True
|
||||
data_type: "LaserScan"
|
||||
raytrace_max_range: 3.0
|
||||
raytrace_min_range: 0.0
|
||||
obstacle_max_range: 2.5
|
||||
obstacle_min_range: 0.0
|
||||
oak-d: # no frame set, uses frame from message
|
||||
topic: /stereo/points
|
||||
max_obstacle_height: 1.5
|
||||
min_obstacle_height: 0.02
|
||||
obstacle_max_range: 3.0
|
||||
obstacle_min_range: 0.0
|
||||
raytrace_max_range: 3.2
|
||||
raytrace_min_range: 0.0
|
||||
clearing: True
|
||||
marking: True
|
||||
data_type: "PointCloud2"
|
||||
static_layer:
|
||||
plugin: "nav2_costmap_2d::StaticLayer"
|
||||
map_subscribe_transient_local: True
|
||||
always_send_full_costmap: True
|
||||
|
||||
global_costmap:
|
||||
global_costmap:
|
||||
ros__parameters:
|
||||
update_frequency: 1.0
|
||||
publish_frequency: 1.0
|
||||
global_frame: map
|
||||
robot_base_frame: base_link
|
||||
use_sim_time: True
|
||||
#robot_radius: 0.22
|
||||
footprint: "[ [0.065, 0.160], [0.065, -0.160], [-0.28, -0.13], [-0.28, 0.13] ]" # gave another points for the polygon
|
||||
resolution: 0.05
|
||||
track_unknown_space: true
|
||||
plugins: ["static_layer", "obstacle_layer", "inflation_layer"]
|
||||
obstacle_layer:
|
||||
plugin: "nav2_costmap_2d::ObstacleLayer"
|
||||
enabled: True
|
||||
observation_sources: scan
|
||||
scan:
|
||||
topic: /scan_filtered
|
||||
max_obstacle_height: 2.0
|
||||
clearing: True
|
||||
marking: True
|
||||
data_type: "LaserScan"
|
||||
raytrace_max_range: 3.0
|
||||
raytrace_min_range: 0.0
|
||||
obstacle_max_range: 2.5
|
||||
obstacle_min_range: 0.0
|
||||
static_layer:
|
||||
plugin: "nav2_costmap_2d::StaticLayer"
|
||||
map_subscribe_transient_local: True
|
||||
inflation_layer:
|
||||
plugin: "nav2_costmap_2d::InflationLayer"
|
||||
cost_scaling_factor: 10.0 # was 3.0
|
||||
inflation_radius: 0.55
|
||||
always_send_full_costmap: True
|
||||
|
||||
map_server:
|
||||
ros__parameters:
|
||||
use_sim_time: True
|
||||
# Overridden in launch by the "map" launch configuration or provided default value.
|
||||
# To use in yaml, remove the default "map" value in the tb3_simulation_launch.py file & provide full path to map below.
|
||||
yaml_filename: ""
|
||||
|
||||
map_saver:
|
||||
ros__parameters:
|
||||
use_sim_time: True
|
||||
save_map_timeout: 5.0
|
||||
free_thresh_default: 0.25
|
||||
occupied_thresh_default: 0.65
|
||||
map_subscribe_transient_local: True
|
||||
|
||||
# planner_server:
|
||||
# ros__parameters:
|
||||
# expected_planner_frequency: 20.0
|
||||
# use_sim_time: True
|
||||
# planner_plugins: ["GridBased"]
|
||||
# GridBased:
|
||||
# plugin: "nav2_navfn_planner/NavfnPlanner"
|
||||
# tolerance: 0.5
|
||||
# use_astar: false
|
||||
# allow_unknown: true
|
||||
planner_server:
|
||||
ros__parameters:
|
||||
planner_plugins: ["GridBased"]
|
||||
use_sim_time: True
|
||||
|
||||
GridBased:
|
||||
plugin: "nav2_smac_planner/SmacPlanner2D"
|
||||
tolerance: 0.125 # tolerance for planning if unable to reach exact pose, in meters
|
||||
downsample_costmap: false # whether or not to downsample the map
|
||||
downsampling_factor: 1 # multiplier for the resolution of the costmap layer (e.g. 2 on a 5cm costmap would be 10cm)
|
||||
allow_unknown: true # allow traveling in unknown space
|
||||
max_iterations: 1000000 # maximum total iterations to search for before failing (in case unreachable), set to -1 to disable
|
||||
max_on_approach_iterations: 1000 # maximum number of iterations to attempt to reach goal once in tolerance
|
||||
max_planning_time: 2.0 # max time in s for planner to plan, smooth
|
||||
cost_travel_multiplier: 2.0 # Cost multiplier to apply to search to steer away from high cost areas. Larger values will place in the center of aisles more exactly (if non-`FREE` cost potential field exists) but take slightly longer to compute. To optimize for speed, a value of 1.0 is reasonable. A reasonable tradeoff value is 2.0. A value of 0.0 effective disables steering away from obstacles and acts like a naive binary search A*.
|
||||
use_final_approach_orientation: true # Whether to set the final path pose at the goal's orientation to the requested orientation (false) or in line with the approach angle so the robot doesn't rotate to heading (true)
|
||||
smoother:
|
||||
max_iterations: 1000
|
||||
w_smooth: 0.3
|
||||
w_data: 0.2
|
||||
tolerance: 0.1
|
||||
|
||||
smoother_server:
|
||||
ros__parameters:
|
||||
use_sim_time: True
|
||||
smoother_plugins: ["simple_smoother"]
|
||||
simple_smoother:
|
||||
plugin: "nav2_smoother::SimpleSmoother"
|
||||
tolerance: 1.0e-10
|
||||
max_its: 1000
|
||||
do_refinement: True
|
||||
|
||||
behavior_server:
|
||||
ros__parameters:
|
||||
costmap_topic: local_costmap/costmap_raw
|
||||
footprint_topic: local_costmap/published_footprint
|
||||
cycle_frequency: 10.0
|
||||
behavior_plugins: ["spin", "backup", "drive_on_heading", "assisted_teleop", "wait"]
|
||||
spin:
|
||||
plugin: "nav2_behaviors/Spin"
|
||||
backup:
|
||||
plugin: "nav2_behaviors/BackUp"
|
||||
drive_on_heading:
|
||||
plugin: "nav2_behaviors/DriveOnHeading"
|
||||
wait:
|
||||
plugin: "nav2_behaviors/Wait"
|
||||
assisted_teleop:
|
||||
plugin: "nav2_behaviors/AssistedTeleop"
|
||||
global_frame: odom
|
||||
robot_base_frame: base_link
|
||||
transform_tolerance: 0.1
|
||||
use_sim_time: true
|
||||
simulate_ahead_time: 2.0
|
||||
max_rotational_vel: 1.0
|
||||
min_rotational_vel: 0.4
|
||||
rotational_acc_lim: 3.2
|
||||
|
||||
robot_state_publisher:
|
||||
ros__parameters:
|
||||
use_sim_time: True
|
||||
|
||||
waypoint_follower:
|
||||
ros__parameters:
|
||||
use_sim_time: True
|
||||
loop_rate: 20
|
||||
stop_on_failure: false
|
||||
waypoint_task_executor_plugin: "wait_at_waypoint"
|
||||
wait_at_waypoint:
|
||||
plugin: "nav2_waypoint_follower::WaitAtWaypoint"
|
||||
enabled: True
|
||||
waypoint_pause_duration: 200
|
||||
|
||||
velocity_smoother:
|
||||
ros__parameters:
|
||||
use_sim_time: True
|
||||
smoothing_frequency: 20.0
|
||||
scale_velocities: False
|
||||
feedback: "CLOSED_LOOP" # was OPEN_LOOP
|
||||
max_velocity: [0.26, 0.0, 1.0]
|
||||
min_velocity: [-0.26, 0.0, -1.0]
|
||||
max_accel: [2.5, 0.0, 3.2]
|
||||
max_decel: [-2.5, 0.0, -3.2]
|
||||
odom_topic: "/odometry/filtered"
|
||||
odom_duration: 0.1 # was 0.1
|
||||
deadband_velocity: [0.0, 0.0, 0.0]
|
||||
velocity_timeout: 1.0
|
BIN
config/npm/database.sqlite
Normal file
18
config/npm/nginx/default_host/site.conf
Normal file
@ -0,0 +1,18 @@
|
||||
# ------------------------------------------------------------
|
||||
# Default Site
|
||||
# ------------------------------------------------------------
|
||||
|
||||
server {
|
||||
listen 80 default;
|
||||
listen [::]:80 default;
|
||||
|
||||
server_name default-host.localhost;
|
||||
access_log /data/logs/default-host_access.log combined;
|
||||
error_log /data/logs/default-host_error.log warn;
|
||||
|
||||
|
||||
include conf.d/include/letsencrypt-acme-challenge.conf;
|
||||
location / {
|
||||
return 301 http://192.168.20.10:1337/;
|
||||
}
|
||||
}
|
58
config/npm/nginx/proxy_host/3.conf
Normal file
@ -0,0 +1,58 @@
|
||||
# ------------------------------------------------------------
|
||||
# overview.loki
|
||||
# ------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
map $scheme $hsts_header {
|
||||
https "max-age=63072000; preload";
|
||||
}
|
||||
|
||||
server {
|
||||
set $forward_scheme http;
|
||||
set $server "host.docker.internal";
|
||||
set $port 1337;
|
||||
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
|
||||
|
||||
server_name overview.loki;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
access_log /data/logs/proxy-host-3_access.log proxy;
|
||||
error_log /data/logs/proxy-host-3_error.log warn;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
location / {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Proxy!
|
||||
include conf.d/include/proxy.conf;
|
||||
}
|
||||
|
||||
|
||||
# Custom
|
||||
include /data/nginx/custom/server_proxy[.]conf;
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
actions:
|
||||
- title: "Start Navigation Stack"
|
||||
shell: docker compose -f /repo/docker-compose.yaml up -d navigation
|
||||
- title: "Stop Navigation Stack"
|
||||
shell: docker compose -f /repo/docker-compose.yaml down navigation
|
||||
- title: "Start Mapping"
|
||||
shell: docker compose -f /repo/docker-compose.yaml up -d mapping
|
||||
- title: "Stop Mapping"
|
||||
shell: docker compose -f /repo/docker-compose.yaml down mapping
|
||||
- title: "Restart Teleop"
|
||||
shell: docker compose -f /repo/docker-compose.yaml restart teleop
|
35
config/olivetin/config.yaml
Normal file
@ -0,0 +1,35 @@
|
||||
showNavigation: false
|
||||
logLevel: "INFO"
|
||||
showNewVersions: false
|
||||
showFooter: false
|
||||
|
||||
actions:
|
||||
- title: "Start Navigation Stack"
|
||||
shell: docker start cps_loki-navigation-1
|
||||
icon: '<img src = "customIcons/nav2_start.png" width = "48px"/>'
|
||||
- title: "Stop Navigation Stack"
|
||||
shell: docker stop cps_loki-navigation-1
|
||||
icon: '<img src = "customIcons/nav2_stop.png" width = "48px"/>'
|
||||
- title: "Start Mapping"
|
||||
shell: docker start cps_loki-mapping-1
|
||||
icon: '<img src = "customIcons/mapping_start.gif" width = "48px"/>'
|
||||
- title: "Stop Mapping"
|
||||
shell: docker stop cps_loki-mapping-1
|
||||
icon: '<img src = "customIcons/mapping_stop.gif" width = "48px"/>'
|
||||
- title: "Restart Teleop"
|
||||
icon: '<img src = "customIcons/gamepad.png" width = "48px"/>'
|
||||
shell: docker restart cps_loki-teleop-1
|
||||
- title: Restart or Shutdown System
|
||||
icon: restart
|
||||
shell: systemctl {{ choice }}
|
||||
arguments:
|
||||
- name: choice
|
||||
title: Pick one
|
||||
choices:
|
||||
- value: reboot
|
||||
- value: shutdown
|
||||
# This will SSH into a server an run the command 'service httpd restart'
|
||||
# - title: Restart httpd on Server 1
|
||||
# shell: ssh bjorn@loki.local 'echo "it works"'
|
||||
# icon: ping
|
||||
# timeout: 5
|
BIN
config/olivetin/icons/gamepad.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
config/olivetin/icons/mapping_start.gif
Normal file
After Width: | Height: | Size: 13 MiB |
BIN
config/olivetin/icons/mapping_stop.gif
Normal file
After Width: | Height: | Size: 137 KiB |
BIN
config/olivetin/icons/nav2_start.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
config/olivetin/icons/nav2_stop.gif
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
config/olivetin/icons/nav2_stop.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
config/olivetin/icons/qr-code.png
Normal file
After Width: | Height: | Size: 78 KiB |
1
config/olivetin/installation-id.txt
Normal file
@ -0,0 +1 @@
|
||||
ba1fa920-2863-4600-994f-23559acfcab2
|
@ -36,6 +36,7 @@ services:
|
||||
# Allows graphical programs in the container.
|
||||
- /tmp/.X11-unix:/tmp/.X11-unix:rw
|
||||
- ${XAUTHORITY:-$HOME/.Xauthority}:/root/.Xauthority
|
||||
restart: unless-stopped
|
||||
# Overlay image containing the project specific source code.
|
||||
overlay:
|
||||
extends: base
|
||||
@ -82,7 +83,7 @@ services:
|
||||
devices:
|
||||
- /dev/ttyUSB0:/dev/ttyUSB0
|
||||
- /dev/ttyACM0:/dev/ttyACM0
|
||||
restart: unless-stopped
|
||||
restart: always
|
||||
# teleop
|
||||
teleop:
|
||||
extends: overlay
|
||||
@ -90,7 +91,7 @@ services:
|
||||
ros2 launch cps_loki_bringup robot_joy_teleop.launch.py
|
||||
devices:
|
||||
- /dev/input:/dev/input
|
||||
restart: unless-stopped
|
||||
restart: always
|
||||
# scan filter node
|
||||
lidar_filter:
|
||||
extends: overlay
|
||||
@ -120,7 +121,7 @@ services:
|
||||
command: >
|
||||
ros2 launch nav2_bringup bringup_launch.py slam:=True map:=/repo/map.yaml
|
||||
use_sim_time:=False use_composition:=True
|
||||
params_file:=/overlay_ws/src/cps_loki_bringup/config/nav2_params.yaml
|
||||
params_file:=/repo/config/nav2_params.yaml
|
||||
depends_on:
|
||||
- lidar
|
||||
- controller
|
||||
@ -137,61 +138,85 @@ services:
|
||||
###################################################################################################################################
|
||||
# Webgui Supervision via Foxglove Studio #
|
||||
###################################################################################################################################
|
||||
olivetin:
|
||||
container_name: olivetin
|
||||
image: jamesread/olivetin
|
||||
#image: ghcr.io/bjoernellens1/cps_bot_mini_ws/olivetin
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/Dockerfile
|
||||
tags:
|
||||
- ghcr.io/bjoernellens1/cps_bot_mini_ws/olivetin
|
||||
target: olivetin
|
||||
x-bake:
|
||||
platforms:
|
||||
#- linux/arm64
|
||||
- linux/amd64
|
||||
user: root
|
||||
privileged: true
|
||||
volumes:
|
||||
- ./config/olivetin/:/config/ # here is config.yaml and icons located
|
||||
- ./config/olivetin/icons:/var/www/olivetin/customIcons
|
||||
- .:/repo
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
||||
# - /var/lib/docker:/var/lib/docker
|
||||
- ~/.ssh/id_rsa:/root/.ssh/id_rsa
|
||||
networks:
|
||||
- caddy_network
|
||||
ports:
|
||||
- "1337:1337"
|
||||
restart: always
|
||||
|
||||
|
||||
|
||||
# config:
|
||||
# container_name: olivetin
|
||||
# image: ghcr.io/bjoernellens1/cps_bot_mini_ws/olivetin
|
||||
# build:
|
||||
# context: .
|
||||
# dockerfile: docker/Dockerfile
|
||||
# tags:
|
||||
# - ghcr.io/bjoernellens1/cps_bot_mini_ws/olivetin
|
||||
# target: olivetin
|
||||
# x-bake:
|
||||
# platforms:
|
||||
# #- linux/arm64
|
||||
# - linux/amd64
|
||||
# #user: root
|
||||
# privileged: true
|
||||
# volumes:
|
||||
# - ./config/olivetin.yaml:/config/config.yaml # replace host path or volume as needed
|
||||
# - .:/repo
|
||||
# - /var/run/docker.sock:/var/run/docker.sock
|
||||
# - /var/lib/docker:/var/lib/docker
|
||||
# ports:
|
||||
# - "88:1337"
|
||||
# restart: unless-stopped
|
||||
portainer:
|
||||
container_name: portainer
|
||||
#image: jamesread/olivetin
|
||||
image: portainer/portainer-ce:latest
|
||||
volumes:
|
||||
- ./config/olivetin/:/config/ # here is config.yaml and icons located
|
||||
- ./config/olivetin/icons:/var/www/olivetin/customIcons
|
||||
- .:/repo
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- portainer_data:/data
|
||||
|
||||
# - /var/lib/docker:/var/lib/docker
|
||||
- ~/.ssh/id_rsa:/root/.ssh/id_rsa
|
||||
ports:
|
||||
- "8000:8000"
|
||||
- "9443:9443"
|
||||
restart: unless-stopped
|
||||
|
||||
################################################################################################################################
|
||||
# This section is mostly for supervision from PC #
|
||||
################################################################################################################################
|
||||
|
||||
foxglove-bridge:
|
||||
image: husarion/foxglove-bridge:humble
|
||||
# Interactive shell
|
||||
# Foxglove Studio Bridge
|
||||
foxglove_bridge:
|
||||
extends: overlay
|
||||
command: >
|
||||
ros2 launch foxglove_bridge foxglove_bridge_launch.xml port:=8765
|
||||
stdin_open: true
|
||||
tty: true
|
||||
# Networking and IPC for ROS 2
|
||||
network_mode: host
|
||||
#network_mode: host
|
||||
ipc: host
|
||||
# Needed to display graphical applications
|
||||
#privileged: true
|
||||
environment:
|
||||
# Allows graphical programs in the container.
|
||||
- DISPLAY=${DISPLAY}
|
||||
- QT_X11_NO_MITSHM=1
|
||||
- NVIDIA_DRIVER_CAPABILITIES=all
|
||||
- ROS_DOMAIN_ID=5
|
||||
- RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
|
||||
|
||||
foxglove:
|
||||
image: husarion/foxglove
|
||||
#image: husarion/foxglove
|
||||
image: ghcr.io/foxglove/studio:latest
|
||||
restart: always
|
||||
depends_on:
|
||||
- foxglove-bridge
|
||||
- foxglove_bridge
|
||||
networks:
|
||||
- caddy_network
|
||||
ports:
|
||||
- 8080:8080
|
||||
volumes:
|
||||
- ./config/foxglove/extensions:/src/extensions
|
||||
- ./config/foxglove/foxglove-layout.json:/foxglove/default-layout.json
|
||||
|
||||
# rviz2
|
||||
rviz2:
|
||||
@ -200,4 +225,66 @@ services:
|
||||
rviz2
|
||||
# Needed to display graphical applications
|
||||
privileged: true
|
||||
networks: {}
|
||||
|
||||
################################################################################################################################
|
||||
# Core Services for Web Management #
|
||||
################################################################################################################################
|
||||
caddy:
|
||||
image: caddy:latest
|
||||
networks:
|
||||
- caddy_network
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- ./config/caddy/Caddyfile:/etc/caddy/Caddyfile
|
||||
- ./config/caddy/content:/usr/share/caddy/
|
||||
restart: always
|
||||
depends_on:
|
||||
- foxglove
|
||||
- olivetin
|
||||
roscore:
|
||||
image: husarion/ros1-bridge:foxy-0.9.6-20230327-stable
|
||||
command: |
|
||||
bash -c "source /opt/ros/noetic/setup.bash && roscore"
|
||||
network_mode: host
|
||||
environment:
|
||||
- ROS_DOMAIN_ID=5
|
||||
restart: always
|
||||
ros1bridge:
|
||||
image: husarion/ros1-bridge:foxy-0.9.6-20230327-stable
|
||||
command: |
|
||||
ros2 run ros1_bridge dynamic_bridge
|
||||
network_mode: host
|
||||
ipc: host
|
||||
environment:
|
||||
- ROS_DOMAIN_ID=5
|
||||
- RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
|
||||
restart: always
|
||||
webui-joystick:
|
||||
image: husarion/webui-ros-joystick:noetic-0.0.1-20230510-stable
|
||||
network_mode: host
|
||||
# networks:
|
||||
# - caddy_network
|
||||
# ports:
|
||||
# - 8000:8000
|
||||
ipc: host
|
||||
environment:
|
||||
- ROS_DOMAIN_ID=5
|
||||
restart: always
|
||||
depends_on:
|
||||
- ros1bridge
|
||||
command: roslaunch webui-ros-joystick webui.launch
|
||||
|
||||
################################################################################################################################
|
||||
# Docker related extra stuff #
|
||||
################################################################################################################################
|
||||
networks:
|
||||
caddy_network:
|
||||
driver: bridge
|
||||
volumes:
|
||||
portainer_data:
|
||||
npm-data:
|
||||
npm-letsencrypt:
|
@ -43,6 +43,11 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
ros-${ROS_DISTRO}-xacro \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Foxglove Bridge
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
ros-${ROS_DISTRO}-foxglove-bridge \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
|
||||
|
||||
###########################################
|
||||
@ -93,45 +98,45 @@ LABEL org.opencontainers.image.source=https://github.com/bjoernellens1/cps_loki
|
||||
#############################################
|
||||
# OliveTin Build #
|
||||
#############################################
|
||||
# FROM registry.fedoraproject.org/fedora:39 AS olivetin
|
||||
FROM registry.fedoraproject.org/fedora:39 AS olivetin
|
||||
|
||||
# LABEL org.opencontainers.image.source https://ghcr.io/bjoernellens1/cps_bot_mini_ws/olivetin
|
||||
# LABEL org.opencontainers.image.title=OliveTin
|
||||
LABEL org.opencontainers.image.source https://ghcr.io/bjoernellens1/cps_bot_mini_ws/olivetin
|
||||
LABEL org.opencontainers.image.title=OliveTin
|
||||
|
||||
# # Making sure there is newest docker version installed
|
||||
# RUN dnf -y install dnf-plugins-core \
|
||||
# && dnf -y install 'dnf-command(config-manager)' \
|
||||
# && dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo \
|
||||
# && dnf -y install docker-ce-cli docker-compose-plugin --setopt=install_weak_deps=False
|
||||
# Making sure there is newest docker version installed
|
||||
RUN dnf -y install dnf-plugins-core \
|
||||
&& dnf -y install 'dnf-command(config-manager)' \
|
||||
&& dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo \
|
||||
&& dnf -y install docker-ce-cli docker-compose-plugin --setopt=install_weak_deps=False
|
||||
|
||||
# # Install OliveTin and dependencies
|
||||
# RUN mkdir -p /config /var/www/olivetin \
|
||||
# && dnf install -y --nodocs --noplugins --setopt=keepcache=0 --setopt=install_weak_deps=0 \
|
||||
# iputils \
|
||||
# openssh-clients \
|
||||
# shadow-utils \
|
||||
# OliveTin \
|
||||
# && dnf clean all
|
||||
# Install OliveTin and dependencies
|
||||
RUN mkdir -p /config /var/www/olivetin \
|
||||
&& dnf install -y --nodocs --noplugins --setopt=keepcache=0 --setopt=install_weak_deps=0 \
|
||||
iputils \
|
||||
openssh-clients \
|
||||
shadow-utils \
|
||||
OliveTin \
|
||||
&& dnf clean all
|
||||
|
||||
# RUN useradd --system --create-home olivetin -u 1000
|
||||
RUN useradd --system --create-home olivetin -u 1000
|
||||
|
||||
# EXPOSE 1337/tcp
|
||||
EXPOSE 1337/tcp
|
||||
|
||||
# VOLUME /config
|
||||
VOLUME /config
|
||||
|
||||
# USER olivetin
|
||||
USER olivetin
|
||||
|
||||
# ENTRYPOINT [ "/usr/bin/OliveTin" ]
|
||||
ENTRYPOINT [ "/usr/bin/OliveTin" ]
|
||||
|
||||
# FROM alpine AS olivetin
|
||||
FROM docker AS olivetin
|
||||
|
||||
RUN wget https://github.com/OliveTin/OliveTin/releases/latest/download/OliveTin_linux_amd64.apk
|
||||
RUN apk add --allow-untrusted OliveTin_linux_amd64.apk
|
||||
# RUN wget https://github.com/OliveTin/OliveTin/releases/download/2023.12.21/OliveTin_linux_amd64.deb
|
||||
# RUN apt install ./OliveTin_linux_amd64.deb
|
||||
|
||||
# Expose the default OliveTin port
|
||||
EXPOSE 1337
|
||||
|
||||
# RUN wget https://github.com/OliveTin/OliveTin/releases/latest/download/OliveTin_linux_amd64.apk
|
||||
# RUN apk add --allow-untrusted OliveTin_linux_amd64.apk docker-cli-compose
|
||||
|
||||
# # Expose the default OliveTin port
|
||||
# EXPOSE 1337
|
||||
|
||||
# # Set the default command to run OliveTin
|
||||
# CMD ["OliveTin"]
|
||||
# Set the default command to run OliveTin
|
||||
CMD ["OliveTin"]
|
BIN
docs/loki_overview.odg
Normal file
@ -17,4 +17,4 @@ repositories:
|
||||
cps_loki_bringup:
|
||||
type: git
|
||||
url: https://github.com/bjoernellens1/cps_loki_bringup
|
||||
version: main
|
||||
version: tuning
|
||||
|
7
scripts/ps4_controller_script.sh
Executable file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Change directory to where docker-compose.yml is located
|
||||
cd /home/bjorn/git/cps_loki
|
||||
|
||||
# Restart the teleop service using docker-compose
|
||||
docker compose restart teleop
|
16
scripts/setup.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
# copy script to a system directory
|
||||
sudo cp ps4_controller_script.sh /etc/udev/rules.d
|
||||
|
||||
# Set execute permissions for the script
|
||||
sudo chmod +x /etc/udev/rules.d/ps4_controller_script.sh
|
||||
|
||||
# Create or append the udev rule
|
||||
echo 'ACTION=="add", SUBSYSTEM=="input", ATTRS{name}=="Wireless Controller", RUN+="/etc/udev/rules.d/ps4_controller_script.sh"' | sudo tee /etc/udev/rules.d/99-ps4-controller.rules
|
||||
|
||||
# Reload udev rules
|
||||
sudo udevadm control --reload-rules
|
||||
|
||||
# Provide user feedback
|
||||
echo "Setup completed. PS4 controller udev rule installed."
|