Rename to 'shields', add some preliminary graphics

parent 68e7b428
Pipeline #56134 passed with stage
in 2 minutes and 37 seconds
---
title: Badges
title: Shields
layout: docs
permalink: /docs/badges/
permalink: /docs/shields/
---
When you have set up reproducible builds for your project, you can announce
this by adding a 'badge' to your project page. We have badges for various
this by adding a 'shield' to your project page. We have shields for various
'levels' of reproducible builds support:
* Plain
* Bronze
* Silver
* Gold
* ![Regular]({{ "/images/shields/shield.svg" | prepend: site.baseurl }})
* ![Bronze]({{ "/images/shields/shield-bronze.svg" | prepend: site.baseurl }})
* ![Silver]({{ "/images/shields/shield-silver.svg" | prepend: site.baseurl }})
* ![Gold]({{ "/images/shields/shield-gold.svg" | prepend: site.baseurl }})
'Plain' is the maximum level you can achieve when you leave it up to
'Regular' is the maximum level you can achieve when you leave it up to
distributors (e.g. Linux distributions) to create packaged artifacts. When you
publish artifacts yourself, the other levels come into play.
'Bronze' is achievable. For the 'Silver' and 'Gold' levels, infrastructure to
share attestations is required. Such infrastructure is still in the prototype
phase.
## Advantages
| |B|S|G| |
| |![Bronze]({{ "/images/shields/bronze-star.svg" | prepend: site.baseurl }})|![Silver]({{ "/images/shields/silver-star.svg" | prepend: site.baseurl }})|![Gold]({{ "/images/shields/gold-star.svg" | prepend: site.baseurl }})| |
|-|-|-|-|-|
|v|v|v|v|everything is set up so distributors can secure their pipeline|
| |v|v|v|artifacts tainted by compromised build infrastructure will be detected|
......@@ -29,7 +32,7 @@ publish artifacts yourself, the other levels come into play.
## Requirements
| |B|S|G| |
| |![Bronze]({{ "/images/shields/bronze-star.svg" | prepend: site.baseurl }})|![Silver]({{ "/images/shields/silver-star.svg" | prepend: site.baseurl }})|![Gold]({{ "/images/shields/gold-star.svg" | prepend: site.baseurl }})| |
|-|-|-|-|-|
|v|v|v|v|you have a [deterministic build system](plans.md#getting-a-deterministic-build-system)|
| |v|v|v|artifacts you publish can be rebuilt and verified|
......@@ -38,6 +41,7 @@ publish artifacts yourself, the other levels come into play.
| | |v|v|infrastructure is in place for end-users to share attestations|
| | | |v|infrastructure is in place for end-users to automatically verify attestations when fetching the artifacts|
When adding a badge, it is recommended that it links to:
* Plain: documentation on how to build your project reproducibly
......
......@@ -43,6 +43,7 @@ main {
td {
border: 1px solid #ddd;
text-align: center;
}
@media (min-width: 750px) {
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="17.841618"
height="16.71648"
version="1.1"
id="svg30"
sodipodi:docname="bronze-star.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<metadata
id="metadata36">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs34" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1981"
inkscape:window-height="1574"
id="namedview32"
showgrid="false"
inkscape:zoom="6.4409265"
inkscape:cx="-84.561902"
inkscape:cy="-33.163748"
inkscape:window-x="1217"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg30"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<linearGradient
id="b"
x2="0"
y2="1">
<stop
offset="0"
stop-color="#bbb"
stop-opacity=".1"
id="stop2" />
<stop
offset="1"
stop-opacity=".1"
id="stop4" />
</linearGradient>
<clipPath
id="a">
<rect
width="157"
height="20"
rx="3"
id="rect7"
x="0"
y="0"
style="fill:#ffffff" />
</clipPath>
<style
id="style2234"
type="text/css">
.st0{fill:#1E5B96;}
.st1{fill:#2B89D6;}
</style>
<path
id="path2560"
d="m 8.9208134,0.5266861 2.1034796,5.9599042 h 6.3105 l -4.90816,3.8564057 1.75292,5.959904 -5.2587396,-3.505831 -5.25875,3.505831 1.75292,-5.959904 L 0.50682344,6.4865903 H 6.8173134 Z"
inkscape:connector-curvature="0"
style="fill:#f58f00;fill-opacity:0.82589285;stroke:#000000;stroke-width:0.35058263" />
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="17.841618"
height="16.71648"
version="1.1"
id="svg30"
sodipodi:docname="gold-star.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<metadata
id="metadata36">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs34" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1981"
inkscape:window-height="1574"
id="namedview32"
showgrid="false"
inkscape:zoom="6.4409265"
inkscape:cx="-84.561902"
inkscape:cy="-33.163748"
inkscape:window-x="1217"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg30"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<linearGradient
id="b"
x2="0"
y2="1">
<stop
offset="0"
stop-color="#bbb"
stop-opacity=".1"
id="stop2" />
<stop
offset="1"
stop-opacity=".1"
id="stop4" />
</linearGradient>
<clipPath
id="a">
<rect
width="157"
height="20"
rx="3"
id="rect7"
x="0"
y="0"
style="fill:#ffffff" />
</clipPath>
<style
id="style2234"
type="text/css">
.st0{fill:#1E5B96;}
.st1{fill:#2B89D6;}
</style>
<path
id="path2560"
d="m 8.9208134,0.5266861 2.1034796,5.9599042 h 6.3105 l -4.90816,3.8564057 1.75292,5.959904 -5.2587396,-3.505831 -5.25875,3.505831 1.75292,-5.959904 L 0.50682344,6.4865903 H 6.8173134 Z"
inkscape:connector-curvature="0"
style="fill:#f5eb00;fill-opacity:0.82589285;stroke:#000000;stroke-width:0.35058263" />
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="157"
height="20"
version="1.1"
id="svg30"
sodipodi:docname="shield-bronze.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<metadata
id="metadata36">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs34" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1981"
inkscape:window-height="1574"
id="namedview32"
showgrid="false"
inkscape:zoom="6.4409265"
inkscape:cx="78.87562"
inkscape:cy="-31.048265"
inkscape:window-x="1217"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg30" />
<linearGradient
id="b"
x2="0"
y2="100%">
<stop
offset="0"
stop-color="#bbb"
stop-opacity=".1"
id="stop2" />
<stop
offset="1"
stop-opacity=".1"
id="stop4" />
</linearGradient>
<clipPath
id="a">
<rect
width="157"
height="20"
rx="3"
fill="#fff"
id="rect7" />
</clipPath>
<g
clip-path="url(#a)"
id="g16">
<path
fill="#555"
d="M0 0h132v20H0z"
id="path10" />
<path
fill="#97ca00"
d="M132 0h25v20H132z"
id="path12" />
<path
fill="url(#b)"
d="M0 0h157v20H0z"
id="path14" />
</g>
<text
style="font-size:110px;font-family:'DejaVu Sans', Verdana, Geneva, sans-serif;text-anchor:middle;fill:#010101;fill-opacity:0.3"
lengthAdjust="spacing"
id="text20"
textLength="1050"
transform="scale(0.1)"
y="150"
x="755">reproducible builds</text>
<text
style="font-size:110px;font-family:'DejaVu Sans', Verdana, Geneva, sans-serif;text-anchor:middle;fill:#ffffff"
lengthAdjust="spacing"
id="text22"
textLength="1050"
transform="scale(0.1)"
y="140"
x="755">reproducible builds</text>
<style
id="style2234"
type="text/css">
.st0{fill:#1E5B96;}
.st1{fill:#2B89D6;}
</style>
<g
id="g2267-8"
transform="matrix(0.09904206,0,0,0.09904206,5.7837911,4.5301741)"
style="fill:#000005;fill-opacity:0.28125">
<g
id="g2265-5"
style="fill:#000005;fill-opacity:0.28125">
<g
transform="rotate(90,40.7,44.8)"
id="g26_2_-3"
style="fill:#000005;fill-opacity:0.28125">
<g
id="circle2_2_-9"
style="fill:#000005;fill-opacity:0.28125">
<circle
id="circle2236-4"
r="12.6"
cy="-33.5"
cx="61.700001"
class="st0"
style="fill:#000005;fill-opacity:0.28125" />
</g>
<g
id="circle4_2_-1"
style="fill:#000005;fill-opacity:0.28125">
<circle
id="circle2239-5"
r="12.6"
cy="72.900002"
cx="61.700001"
class="st0"
style="fill:#000005;fill-opacity:0.28125" />
</g>
<g
id="circle6_2_-4"
style="fill:#000005;fill-opacity:0.28125">
<circle
id="circle2242-1"
r="12.6"
cy="19.700001"
cx="114.9"
class="st0"
style="fill:#000005;fill-opacity:0.28125" />
</g>
<g
id="circle8_2_-5"
style="fill:#000005;fill-opacity:0.28125">
<circle
id="circle2245-5"
r="12.6"
cy="19.700001"
cx="8.5"
class="st0"
style="fill:#000005;fill-opacity:0.28125" />
</g>
<g
id="g12_2_-4"
style="fill:#000005;fill-opacity:0.28125">
<g
id="polygon10_2_-9"
style="fill:#000005;fill-opacity:0.28125">
<polygon
id="polygon2248-8"
points="100.5,-15.4 86.6,-29.3 86.6,-8.9 66.3,-8.9 80.2,5 100.5,5 "
class="st1"
style="fill:#000005;fill-opacity:0.28125" />
</g>
</g>
<g
id="g16_2_-3"
style="fill:#000005;fill-opacity:0.28125">
<g
id="polygon14_2_-8"
style="fill:#000005;fill-opacity:0.28125">
<polygon
id="polygon2252-5"
points="47,38.2 33.1,24.3 33.1,44.6 12.7,44.6 26.6,58.5 47,58.5 "
class="st1"
style="fill:#000005;fill-opacity:0.28125" />
</g>
</g>
<g
id="g20_2_-2"
style="fill:#000005;fill-opacity:0.28125">
<g
id="polygon18_2_-2"
style="fill:#000005;fill-opacity:0.28125">
<polygon
id="polygon2256-2"
points="80.1,34.4 66.2,48.3 86.6,48.2 86.5,68.7 100.4,54.8 100.5,34.4 "
class="st1"
style="fill:#000005;fill-opacity:0.28125" />
</g>
</g>
<g
id="g24_2_-7"
style="fill:#000005;fill-opacity:0.28125">
<g
id="polygon22_2_-0"
style="fill:#000005;fill-opacity:0.28125">
<polygon
id="polygon2260-3"
points="26.6,-19.2 12.7,-5.2 33.1,-5.3 33,15.1 47,1.1 47,-19.2 "
class="st1"
style="fill:#000005;fill-opacity:0.28125" />
</g>
</g>
</g>
</g>
</g>
<g
id="g2267"
transform="matrix(0.09904206,0,0,0.09904206,5.7787687,3.7672023)"
style="stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none">
<g
id="g2265"
style="stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none">
<g
transform="rotate(90,40.7,44.8)"
id="g26_2_"
style="stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none">
<g
id="circle2_2_"
style="stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none">
<circle
id="circle2236"
r="12.6"
cy="-33.5"
cx="61.700001"
class="st0"
style="fill:#1e5b96;stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none" />
</g>
<g
id="circle4_2_"
style="stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none">
<circle
id="circle2239"
r="12.6"
cy="72.900002"
cx="61.700001"
class="st0"
style="fill:#1e5b96;stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none" />
</g>
<g
id="circle6_2_"
style="stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none">
<circle
id="circle2242"
r="12.6"
cy="19.700001"
cx="114.9"
class="st0"
style="fill:#1e5b96;stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none" />
</g>
<g
id="circle8_2_"
style="stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none">
<circle
id="circle2245"
r="12.6"
cy="19.700001"
cx="8.5"
class="st0"
style="fill:#1e5b96;stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none" />
</g>
<g
id="g12_2_"
style="stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none">
<g
id="polygon10_2_"
style="stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none">
<polygon
id="polygon2248"
points="86.6,-8.9 66.3,-8.9 80.2,5 100.5,5 100.5,-15.4 86.6,-29.3 "
class="st1"
style="fill:#2b89d6;stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none" />
</g>
</g>
<g
id="g16_2_"
style="stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none">
<g
id="polygon14_2_"
style="stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none">
<polygon
id="polygon2252"
points="33.1,44.6 12.7,44.6 26.6,58.5 47,58.5 47,38.2 33.1,24.3 "
class="st1"
style="fill:#2b89d6;stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none" />
</g>
</g>
<g
id="g20_2_"
style="stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none">
<g
id="polygon18_2_"
style="stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none">
<polygon
id="polygon2256"
points="86.6,48.2 86.5,68.7 100.4,54.8 100.5,34.4 80.1,34.4 66.2,48.3 "
class="st1"
style="fill:#2b89d6;stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none" />
</g>
</g>
<g
id="g24_2_"
style="stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none">
<g
id="polygon22_2_"
style="stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none">
<polygon
id="polygon2260"
points="33.1,-5.3 33,15.1 47,1.1 47,-19.2 26.6,-19.2 12.7,-5.2 "
class="st1"
style="fill:#2b89d6;stroke:#ffffff;stroke-opacity:0.46875;stroke-width:2.00924738;stroke-miterlimit:4;stroke-dasharray:none" />
</g>
</g>
</g>
</g>
</g>
<path
id="path2560"
d="m 144.17916,1.6947239 2.10348,5.9599042 h 6.3105 l -4.90816,3.8564059 1.75292,5.959904 -5.25874,-3.505831 -5.25875,3.505831 1.75292,-5.959904 -4.90816,-3.8564059 h 6.31049 z"
inkscape:connector-curvature="0"
style="fill:#f58f00;stroke:#000000;stroke-width:0.35058263;fill-opacity:0.82589287" />
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="157"
height="20"
version="1.1"
id="svg30"
sodipodi:docname="shield-gold.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<metadata
id="metadata36">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs34" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1981"
inkscape:window-height="1574"
id="namedview32"
showgrid="false"
inkscape:zoom="6.4409265"
inkscape:cx="78.87562"
inkscape:cy="-31.048265"
inkscape:window-x="1217"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg30" />
<linearGradient
id="b"
x2="0"
y2="100%">
<stop
offset="0"
stop-color="#bbb"
stop-opacity=".1"
id="stop2" />
<stop
offset="1"
stop-opacity=".1"
id="stop4" />
</linearGradient>
<clipPath
id="a">
<rect
width="157"
height="20"
rx="3"
fill="#fff"
id="rect7" />
</clipPath>
<g
clip-path="url(#a)"
id="g16">
<path
fill="#555"
d="M0 0h132v20H0z"
id="path10" />
<path
fill="#97ca00"
d="M132 0h25v20H132z"
id="path12" />
<path
fill="url(#b)"
d="M0 0h157v20H0z"
id="path14" />
</g>
<text
style="font-size:110px;font-family:'DejaVu Sans', Verdana, Geneva, sans-serif;text-anchor:middle;fill:#010101;fill-opacity:0.3"
lengthAdjust="spacing"
id="text20"
textLength="1050"
transform="scale(0.1)"
y="150"
x="755">reproducible builds</text>
<text
style="font-size:110px;font-family:'DejaVu Sans', Verdana, Geneva, sans-serif;text-anchor:middle;fill:#ffffff"
lengthAdjust="spacing"
id="text22"
textLength="1050"
transform="scale(0.1)"
y="140"
x="755">reproducible builds</text>
<style
id="style2234"
type="text/css">
.st0{fill:#1E5B96;}
.st1{fill:#2B89D6;}
</style>
<g
id="g2267-8"
transform="matrix(0.09904206,0,0,0.09904206,5.7837911,4.5301741)"
style="fill:#000005;fill-opacity:0.28125">
<g
id="g2265-5"
style="fill:#000005;fill-opacity:0.28125">
<g
transform="rotate(90,40.7,44.8)"
id="g26_2_-3"
style="fill:#000005;fill-opacity:0.28125">
<g
id="circle2_2_-9"
style="fill:#000005;fill-opacity:0.28125">
<circle
id="circle2236-4"
r="12.6"
cy="-33.5"
cx="61.700001"
class="st0"
style="fill:#000005;fill-opacity:0.28125" />
</g>
<g
id="circle4_2_-1"
style="fill:#000005;fill-opacity:0.28125">
<circle
id="circle2239-5"
r="12.6"
cy="72.900002"
cx="61.700001"
class="st0"
style="fill:#000005;fill-opacity:0.28125" />
</g>
<g
id="circle6_2_-4"
style="fill:#000005;fill-opacity:0.28125">
<circle
id="circle2242-1"
r="12.6"
cy="19.700001"