summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rw-r--r--share/extensions/Barcode/EAN13.py10
-rw-r--r--share/extensions/Barcode/UPCA.py4
-rw-r--r--share/extensions/Barcode/UPCE.py4
-rw-r--r--share/extensions/embedimage.py7
-rwxr-xr-xshare/extensions/gimp_xcf.py14
-rwxr-xr-xshare/extensions/inkex.py5
-rw-r--r--share/extensions/measure.py23
-rw-r--r--share/extensions/render_alphabetsoup.py924
-rwxr-xr-xshare/extensions/scour.inkscape.py53
-rw-r--r--share/extensions/scour.inx29
-rw-r--r--share/icons/Makefile.am7
-rw-r--r--share/icons/application/16x16/Makefile.am5
-rw-r--r--share/icons/application/16x16/inkscape.pngbin0 -> 989 bytes
-rw-r--r--share/icons/application/22x22/Makefile.am5
-rw-r--r--share/icons/application/22x22/inkscape.pngbin0 -> 1452 bytes
-rw-r--r--share/icons/application/24x24/Makefile.am5
-rw-r--r--share/icons/application/24x24/inkscape.pngbin0 -> 1473 bytes
-rw-r--r--share/icons/application/256x256/Makefile.am5
-rw-r--r--share/icons/application/256x256/inkscape.pngbin0 -> 40270 bytes
-rw-r--r--share/icons/application/32x32/Makefile.am5
-rw-r--r--share/icons/application/32x32/inkscape.pngbin0 -> 2155 bytes
-rw-r--r--share/icons/application/48x48/Makefile.am5
-rw-r--r--share/icons/application/48x48/inkscape.pngbin0 -> 3818 bytes
-rw-r--r--share/icons/application/Makefile.am15
-rw-r--r--share/icons/color-management-icon.pngbin0 -> 2720 bytes
-rw-r--r--share/icons/icons.svg1086
-rw-r--r--share/icons/out-of-gamut-icon.pngbin0 -> 1016 bytes
-rw-r--r--share/icons/out-of-gamut-icon.svg22
-rw-r--r--share/icons/too-much-ink-icon.pngbin0 -> 655 bytes
-rw-r--r--share/icons/too-much-ink-icon.svg70
30 files changed, 1709 insertions, 594 deletions
diff --git a/share/extensions/Barcode/EAN13.py b/share/extensions/Barcode/EAN13.py
index 3450893fc..c79b7749d 100644
--- a/share/extensions/Barcode/EAN13.py
+++ b/share/extensions/Barcode/EAN13.py
@@ -42,8 +42,8 @@ class Object(Barcode):
if len(number) == 12:
number = number + self.getChecksum(number)
else:
- if not self.varifyChecksum(number):
- sys.stderr.write("EAN13 Checksum not correct for this barcode, omit last charicter to generate new checksum.\n")
+ if not self.verifyChecksum(number):
+ sys.stderr.write("EAN13 Checksum not correct for this barcode, omit last character to generate new checksum.\n")
return
result = result + guardBar
@@ -83,9 +83,9 @@ class Object(Barcode):
return str(z)
- def varifyChecksum(self, number):
- new = self.getChecksum(number[:12])
- existing = number[12]
+ def verifyChecksum(self, number):
+ new = self.getChecksum(number[:-1])
+ existing = number[-1]
return new == existing
def getStyle(self, index):
diff --git a/share/extensions/Barcode/UPCA.py b/share/extensions/Barcode/UPCA.py
index b67d0830b..89c97eed6 100644
--- a/share/extensions/Barcode/UPCA.py
+++ b/share/extensions/Barcode/UPCA.py
@@ -33,8 +33,8 @@ class Object(EAN13.Object):
if len(number) == 11:
number = number + self.getChecksum(number)
else:
- if not self.varifyChecksum(number):
- sys.stderr.write("EAN13 Checksum not correct for this barcode, omit last charicter to generate new checksum.\n")
+ if not self.verifyChecksum(number):
+ sys.stderr.write("UPC-A Checksum not correct for this barcode, omit last character to generate new checksum.\n")
return
result = result + guardBar
diff --git a/share/extensions/Barcode/UPCE.py b/share/extensions/Barcode/UPCE.py
index 0ad518680..b41e94e8c 100644
--- a/share/extensions/Barcode/UPCE.py
+++ b/share/extensions/Barcode/UPCE.py
@@ -47,8 +47,8 @@ class Object(EAN13.Object):
if not echeck:
echeck = self.getChecksum(number)
else:
- if not self.varifyChecksum(number + echeck):
- sys.stderr.write("UPC-E Checksum not correct for this barcode, omit last charicter to generate new checksum.\n")
+ if not self.verifyChecksum(number + echeck):
+ sys.stderr.write("UPC-E Checksum not correct for this barcode, omit last character to generate new checksum.\n")
return
number = self.ConvertAtoE(number)
diff --git a/share/extensions/embedimage.py b/share/extensions/embedimage.py
index 16439223b..f73ceb358 100644
--- a/share/extensions/embedimage.py
+++ b/share/extensions/embedimage.py
@@ -56,9 +56,8 @@ class Embedder(inkex.Effect):
if xlink is None or xlink[:5] != 'data:':
absref=node.get(inkex.addNS('absref','sodipodi'))
url=urlparse.urlparse(xlink)
- href=urllib.unquote(url.path)
- if os.name == 'nt' and href[0] == '/':
- href = href[1:]
+ href=urllib.url2pathname(url.path)
+
path=''
#path selection strategy:
# 1. href if absolute
@@ -70,6 +69,8 @@ class Embedder(inkex.Effect):
if (absref != None):
path=absref
+ path=unicode(path, "utf-8")
+
if (not os.path.isfile(path)):
inkex.errormsg(_('No xlink:href or sodipodi:absref attributes found, or they do not point to an existing file! Unable to embed image.'))
if path:
diff --git a/share/extensions/gimp_xcf.py b/share/extensions/gimp_xcf.py
index 22e45006b..92da6cf40 100755
--- a/share/extensions/gimp_xcf.py
+++ b/share/extensions/gimp_xcf.py
@@ -19,6 +19,12 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
import inkex
import sys, os, tempfile
+try:
+ from subprocess import Popen, PIPE
+ bsubprocess = True
+except:
+ bsubprocess = False
+
class MyEffect(inkex.Effect):
def __init__(self):
inkex.Effect.__init__(self)
@@ -95,7 +101,13 @@ class MyEffect(inkex.Effect):
name = "%s.png" % id
filename = os.path.join(tmp_dir, name)
command = "inkscape -i %s -j %s -e %s %s " % (id, area, filename, svg_file)
- _,f,err = os.popen3(command,'r')
+ if bsubprocess:
+ p = Popen(command, shell=True, stdout=PIPE, stderr=PIPE)
+ return_code = p.wait()
+ f = p.stdout
+ err = p.stderr
+ else:
+ _,f,err = os.popen3(command,'r')
f.read()
f.close()
err.close()
diff --git a/share/extensions/inkex.py b/share/extensions/inkex.py
index b7e3e0e63..1a70c25d6 100755
--- a/share/extensions/inkex.py
+++ b/share/extensions/inkex.py
@@ -38,7 +38,8 @@ u'xml' :u'http://www.w3.org/XML/1998/namespace'
}
#a dictionary of unit to user unit conversion factors
-uuconv = {'in':90.0, 'pt':1.25, 'px':1, 'mm':3.5433070866, 'cm':35.433070866, 'pc':15.0}
+uuconv = {'in':90.0, 'pt':1.25, 'px':1, 'mm':3.5433070866, 'cm':35.433070866, 'm':3543.3070866,
+ 'km':3543307.0866, 'pc':15.0, 'yd':3240 , 'ft':1080}
def unittouu(string):
'''Returns userunits given a string representation of units in another system'''
unit = re.compile('(%s)$' % '|'.join(uuconv.keys()))
@@ -83,7 +84,7 @@ def errormsg(msg):
...
inkex.errormsg(_("This extension requires two selected paths."))
"""
- sys.stderr.write((str(msg) + "\n").encode("UTF-8"))
+ sys.stderr.write((unicode(msg) + "\n").encode("UTF-8"))
def check_inkbool(option, opt, value):
if str(value).capitalize() == 'True':
diff --git a/share/extensions/measure.py b/share/extensions/measure.py
index 8eacd40c6..68586530b 100644
--- a/share/extensions/measure.py
+++ b/share/extensions/measure.py
@@ -126,28 +126,7 @@ class Length(inkex.Effect):
p = cubicsuperpath.parsePath(node.get('d'))
num = 1
slengths, stotal = csplength(p)
- ''' Wio: Umrechnung in unit '''
- if self.options.unit=="mm":
- factor=25.4/90.0 # px->mm
- elif self.options.unit=="pt":
- factor=0.80 # px->pt
- elif self.options.unit=="cm":
- factor=25.4/900.0 # px->cm
- elif self.options.unit=="m":
- factor=25.4/90000.0 # px->m
- elif self.options.unit=="km":
- factor=25.4/90000000.0 # px->km
- elif self.options.unit=="in":
- factor=1.0/90.0 # px->in
- elif self.options.unit=="ft":
- factor=1.0/90.0/12.0 # px->ft
- elif self.options.unit=="yd":
- factor=1.0/90.0/36.0 # px->yd
- else :
- ''' Default unit is px'''
- factor=1
- self.options.unit="px"
-
+ factor = 1.0/inkex.unittouu('1'+self.options.unit)
# Format the length as string
lenstr = locale.format("%(len)25."+str(prec)+"f",{'len':round(stotal*factor*self.options.scale,prec)}).strip()
self.addTextOnPath(self.group,0, 0,lenstr+' '+self.options.unit, id, self.options.offset)
diff --git a/share/extensions/render_alphabetsoup.py b/share/extensions/render_alphabetsoup.py
index 6bc38459b..7e4009328 100644
--- a/share/extensions/render_alphabetsoup.py
+++ b/share/extensions/render_alphabetsoup.py
@@ -1,461 +1,463 @@
-#!/usr/bin/env python
-'''
-Copyright (C) 2001-2002 Matt Chisholm matt@theory.org
-Copyright (C) 2008 Joel Holdsworth joel@airwebreathe.org.uk
- for AP
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-'''
-
-import copy
-import inkex
-import simplestyle
-import math
-import cmath
-import string
-import random
-import render_alphabetsoup_config
-import bezmisc
-import simplepath
-import os
-import sys
-
-syntax = render_alphabetsoup_config.syntax
-alphabet = render_alphabetsoup_config.alphabet
-units = render_alphabetsoup_config.units
-font = render_alphabetsoup_config.font
-
-# Loads a super-path from a given SVG file
-def loadPath( svgPath ):
- extensionDir = os.path.normpath(
- os.path.join( os.getcwd(), os.path.dirname(__file__) )
- )
- # __file__ is better then sys.argv[0] because this file may be a module
- # for another one.
- tree = inkex.etree.parse( extensionDir + "/" + svgPath )
- root = tree.getroot()
- pathElement = root.find('{http://www.w3.org/2000/svg}path')
- if pathElement == None:
- return None, 0, 0
- d = pathElement.get("d")
- width = float(root.get("width"))
- height = float(root.get("height"))
- return simplepath.parsePath(d), width, height # Currently we only support a single path
-
-def combinePaths( pathA, pathB ):
- if pathA == None and pathB == None:
- return None
- elif pathA == None:
- return pathB
- elif pathB == None:
- return pathA
- else:
- return pathA + pathB
-
-def flipLeftRight( sp, width ):
- for cmd,params in sp:
- defs = simplepath.pathdefs[cmd]
- for i in range(defs[1]):
- if defs[3][i] == 'x':
- params[i] = width - params[i]
-
-def flipTopBottom( sp, height ):
- for cmd,params in sp:
- defs = simplepath.pathdefs[cmd]
- for i in range(defs[1]):
- if defs[3][i] == 'y':
- params[i] = height - params[i]
-
-def solveQuadratic(a, b, c):
- det = b*b - 4.0*a*c
- if det >= 0: # real roots
- sdet = math.sqrt(det)
- else: # complex roots
- sdet = cmath.sqrt(det)
- return (-b + sdet) / (2*a), (-b - sdet) / (2*a)
-
-def cbrt(x):
- if x >= 0:
- return x**(1.0/3.0)
- else:
- return -((-x)**(1.0/3.0))
-
-def findRealRoots(a,b,c,d):
- if a != 0:
- a, b, c, d = 1, b/float(a), c/float(a), d/float(a) # Divide through by a
- t = b / 3.0
- p, q = c - 3 * t**2, d - c * t + 2 * t**3
- u, v = solveQuadratic(1, q, -(p/3.0)**3)
- if type(u) == type(0j): # Complex Cubic Root
- r = math.sqrt(u.real**2 + u.imag**2)
- w = math.atan2(u.imag, u.real)
- y1 = 2 * cbrt(r) * math.cos(w / 3.0)
- else: # Complex Real Root
- y1 = cbrt(u) + cbrt(v)
-
- y2, y3 = solveQuadratic(1, y1, p + y1**2)
-
- if type(y2) == type(0j): # Are y2 and y3 complex?
- return [y1 - t]
- return [y1 - t, y2 - t, y3 - t]
- elif b != 0:
- det=c*c - 4.0*b*d
- if det >= 0:
- return [(-c + math.sqrt(det))/(2.0*b),(-c - math.sqrt(det))/(2.0*b)]
- elif c != 0:
- return [-d/c]
- return []
-
-def getPathBoundingBox( sp ):
-
- box = None
- last = None
- lostctrl = None
-
- for cmd,params in sp:
-
- segmentBox = None
-
- if cmd == 'M':
- # A move cannot contribute to the bounding box
- last = params[:]
- lastctrl = params[:]
- elif cmd == 'L':
- if last:
- segmentBox = (min(params[0], last[0]), max(params[0], last[0]), min(params[1], last[1]), max(params[1], last[1]))
- last = params[:]
- lastctrl = params[:]
- elif cmd == 'C':
- if last:
- segmentBox = (min(params[4], last[0]), max(params[4], last[0]), min(params[5], last[1]), max(params[5], last[1]))
-
- bx0, by0 = last[:]
- bx1, by1, bx2, by2, bx3, by3 = params[:]
-
- # Compute the x limits
- a = (-bx0 + 3*bx1 - 3*bx2 + bx3)*3
- b = (3*bx0 - 6*bx1 + 3*bx2)*2
- c = (-3*bx0 + 3*bx1)
- ts = findRealRoots(0, a, b, c)
- for t in ts:
- if t >= 0 and t <= 1:
- x = (-bx0 + 3*bx1 - 3*bx2 + bx3)*(t**3) + \
- (3*bx0 - 6*bx1 + 3*bx2)*(t**2) + \
- (-3*bx0 + 3*bx1)*t + \
- bx0
- segmentBox = (min(segmentBox[0], x), max(segmentBox[1], x), segmentBox[2], segmentBox[3])
-
- # Compute the y limits
- a = (-by0 + 3*by1 - 3*by2 + by3)*3
- b = (3*by0 - 6*by1 + 3*by2)*2
- c = (-3*by0 + 3*by1)
- ts = findRealRoots(0, a, b, c)
- for t in ts:
- if t >= 0 and t <= 1:
- y = (-by0 + 3*by1 - 3*by2 + by3)*(t**3) + \
- (3*by0 - 6*by1 + 3*by2)*(t**2) + \
- (-3*by0 + 3*by1)*t + \
- by0
- segmentBox = (segmentBox[0], segmentBox[1], min(segmentBox[2], y), max(segmentBox[3], y))
-
- last = params[-2:]
- lastctrl = params[2:4]
-
- elif cmd == 'Q':
- # Provisional
- if last:
- segmentBox = (min(params[0], last[0]), max(params[0], last[0]), min(params[1], last[1]), max(params[1], last[1]))
- last = params[-2:]
- lastctrl = params[2:4]
-
- elif cmd == 'A':
- # Provisional
- if last:
- segmentBox = (min(params[0], last[0]), max(params[0], last[0]), min(params[1], last[1]), max(params[1], last[1]))
- last = params[-2:]
- lastctrl = params[2:4]
-
- if segmentBox:
- if box:
- box = (min(segmentBox[0],box[0]), max(segmentBox[1],box[1]), min(segmentBox[2],box[2]), max(segmentBox[3],box[3]))
- else:
- box = segmentBox
- return box
-
-def mxfm( image, width, height, stack ): # returns possibly transformed image
- tbimage = image
- if ( stack[0] == "-" ): # top-bottom flip
- flipTopBottom(tbimage, height)
- stack.pop( 0 )
-
- lrimage = tbimage
- if ( stack[0] == "|" ): # left-right flip
- flipLeftRight(tbimage, width)
- stack.pop( 0 )
- return lrimage
-
-def comparerule( rule, nodes ): # compare node list to nodes in rule
- for i in range( 0, len(nodes)): # range( a, b ) = (a, a+1, a+2 ... b-2, b-1)
- if (nodes[i] == rule[i][0]):
- pass
- else: return 0
- return 1
-
-def findrule( state, nodes ): # find the rule which generated this subtree
- ruleset = syntax[state][1]
- nodelen = len(nodes)
- for rule in ruleset:
- rulelen = len(rule)
- if ((rulelen == nodelen) and (comparerule( rule, nodes ))):
- return rule
- return
-
-def generate( state ): # generate a random tree (in stack form)
- stack = [ state ]
- if ( len(syntax[state]) == 1 ): # if this is a stop symbol
- return stack
- else:
- stack.append( "[" )
- path = random.randint(0, (len(syntax[state][1])-1)) # choose randomly from next states
- for symbol in syntax[state][1][path]: # recurse down each non-terminal
- if ( symbol != 0 ): # 0 denotes end of list ###
- substack = generate( symbol[0] ) # get subtree
- for elt in substack:
- stack.append( elt )
- if (symbol[3]):stack.append( "-" ) # top-bottom flip
- if (symbol[4]):stack.append( "|" ) # left-right flip
- #else:
- #inkex.debug("found end of list in generate( state =", state, ")") # this should be deprecated/never happen
- stack.append("]")
- return stack
-
-def draw( stack ): # draw a character based on a tree stack
- state = stack.pop(0)
- #print state,
-
- image, width, height = loadPath( font+syntax[state][0] ) # load the image
- if (stack[0] != "["): # terminal stack element
- if (len(syntax[state]) == 1): # this state is a terminal node
- return image, width, height
- else:
- substack = generate( state ) # generate random substack
- return draw( substack ) # draw random substack
- else:
- #inkex.debug("[")
- stack.pop(0)
- images = [] # list of daughter images
- nodes = [] # list of daughter names
- while (stack[0] != "]"): # for all nodes in stack
- newstate = stack[0] # the new state
- newimage, width, height = draw( stack ) # draw the daughter state
- if (newimage):
- tfimage = mxfm( newimage, width, height, stack ) # maybe transform daughter state
- images.append( [tfimage, width, height] ) # list of daughter images
- nodes.append( newstate ) # list of daughter nodes
- else:
- #inkex.debug(("recurse on",newstate,"failed")) # this should never happen
- return None, 0, 0
- rule = findrule( state, nodes ) # find the rule for this subtree
-
- for i in range( 0, len(images)):
- currimg, width, height = images[i]
-
- if currimg:
- #box = getPathBoundingBox(currimg)
- dx = rule[i][1]*units
- dy = rule[i][2]*units
- #newbox = ((box[0]+dx),(box[1]+dy),(box[2]+dx),(box[3]+dy))
- simplepath.translatePath(currimg, dx, dy)
- image = combinePaths( image, currimg )
-
- stack.pop( 0 )
- return image, width, height
-
-def draw_crop_scale( stack, zoom ): # draw, crop and scale letter image
- image, width, height = draw(stack)
- bbox = getPathBoundingBox(image)
- simplepath.translatePath(image, -bbox[0], 0)
- simplepath.scalePath(image, zoom/units, zoom/units)
- return image, bbox[1] - bbox[0], bbox[3] - bbox[2]
-
-def randomize_input_string( str, zoom ): # generate list of images based on input string
- imagelist = []
-
- for i in range(0,len(str)):
- char = str[i]
- #if ( re.match("[a-zA-Z0-9?]", char)):
- if ( alphabet.has_key(char)):
- if ((i > 0) and (char == str[i-1])): # if this letter matches previous letter
- imagelist.append(imagelist[len(stack)-1])# make them the same image
- else: # generate image for letter
- stack = string.split( alphabet[char][random.randint(0,(len(alphabet[char])-1))] , "." )
- #stack = string.split( alphabet[char][random.randint(0,(len(alphabet[char])-2))] , "." )
- imagelist.append( draw_crop_scale( stack, zoom ))
- elif( char == " "): # add a " " space to the image list
- imagelist.append( " " )
- else: # this character is not in config.alphabet, skip it
- print "bad character", char
- return imagelist
-
-def optikern( image, width, zoom ): # optical kerning algorithm
- left = []
- right = []
-
- for i in range( 0, 36 ):
- y = 0.5 * (i + 0.5) * zoom
- xmin = None
- xmax = None
-
- for cmd,params in image:
-
- segmentBox = None
-
- if cmd == 'M':
- # A move cannot contribute to the bounding box
- last = params[:]
- lastctrl = params[:]
- elif cmd == 'L':
- if (y >= last[1] and y <= params[1]) or (y >= params[1] and y <= last[1]):
- if params[0] == last[0]:
- x = params[0]
- else:
- a = (params[1] - last[1]) / (params[0] - last[0])
- b = last[1] - a * last[0]
- if a != 0:
- x = (y - b) / a
- else: x = None
-
- if x:
- if xmin == None or x < xmin: xmin = x
- if xmax == None or x > xmax: xmax = x
-
- last = params[:]
- lastctrl = params[:]
- elif cmd == 'C':
- if last:
- bx0, by0 = last[:]
- bx1, by1, bx2, by2, bx3, by3 = params[:]
-
- d = by0 - y
- c = -3*by0 + 3*by1
- b = 3*by0 - 6*by1 + 3*by2
- a = -by0 + 3*by1 - 3*by2 + by3
-
- ts = findRealRoots(a, b, c, d)
-
- for t in ts:
- if t >= 0 and t <= 1:
- x = (-bx0 + 3*bx1 - 3*bx2 + bx3)*(t**3) + \
- (3*bx0 - 6*bx1 + 3*bx2)*(t**2) + \
- (-3*bx0 + 3*bx1)*t + \
- bx0
- if xmin == None or x < xmin: xmin = x
- if xmax == None or x > xmax: xmax = x
-
- last = params[-2:]
- lastctrl = params[2:4]
-
- elif cmd == 'Q':
- # Quadratic beziers are ignored
- last = params[-2:]
- lastctrl = params[2:4]
-
- elif cmd == 'A':
- # Arcs are ignored
- last = params[-2:]
- lastctrl = params[2:4]
-
-
- if xmin != None and xmax != None:
- left.append( xmin ) # distance from left edge of region to left edge of bbox
- right.append( width - xmax ) # distance from right edge of region to right edge of bbox
- else:
- left.append( width )
- right.append( width )
-
- return (left, right)
-
-def layoutstring( imagelist, zoom ): # layout string of letter-images using optical kerning
- kernlist = []
- length = zoom
- for entry in imagelist:
- if (entry == " "): # leaving room for " " space characters
- length = length + (zoom * render_alphabetsoup_config.space)
- else:
- image, width, height = entry
- length = length + width + zoom # add letter length to overall length
- kernlist.append( optikern(image, width, zoom) ) # append kerning data for this image
-
- workspace = None
-
- position = zoom
- for i in range(0, len(kernlist)):
- while(imagelist[i] == " "):
- position = position + (zoom * render_alphabetsoup_config.space )
- imagelist.pop(i)
- image, width, height = imagelist[i]
-
- # set the kerning
- if i == 0: kern = 0 # for first image, kerning is zero
- else:
- kerncompare = [] # kerning comparison array
- for j in range( 0, len(kernlist[i][0])):
- kerncompare.append( kernlist[i][0][j]+kernlist[i-1][1][j] )
- kern = min( kerncompare )
-
- position = position - kern # move position back by kern amount
- thisimage = copy.deepcopy(image)
- simplepath.translatePath(thisimage, position, 0)
- workspace = combinePaths(workspace, thisimage)
- position = position + width + zoom # advance position by letter width
-
- return workspace
-
-class AlphabetSoup(inkex.Effect):
- def __init__(self):
- inkex.Effect.__init__(self)
- self.OptionParser.add_option("-t", "--text",
- action="store", type="string",
- dest="text", default="Inkscape",
- help="The text for alphabet soup")
- self.OptionParser.add_option("-z", "--zoom",
- action="store", type="float",
- dest="zoom", default="8.0",
- help="The zoom on the output graphics")
- self.OptionParser.add_option("-s", "--seed",
- action="store", type="int",
- dest="seed", default="0",
- help="The random seed for the soup")
-
- def effect(self):
- zoom = self.options.zoom
- random.seed(self.options.seed)
-
- imagelist = randomize_input_string(self.options.text, zoom)
- image = layoutstring( imagelist, zoom )
-
- if image:
- s = { 'stroke': 'none', 'fill': '#000000' }
-
- new = inkex.etree.Element(inkex.addNS('path','svg'))
- new.set('style', simplestyle.formatStyle(s))
-
- new.set('d', simplepath.formatPath(image))
- self.current_layer.append(new)
-
-if __name__ == '__main__':
- e = AlphabetSoup()
- e.affect()
-
+#!/usr/bin/env python
+'''
+Copyright (C) 2001-2002 Matt Chisholm matt@theory.org
+Copyright (C) 2008 Joel Holdsworth joel@airwebreathe.org.uk
+ for AP
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+'''
+
+import copy
+import inkex
+import simplestyle
+import math
+import cmath
+import string
+import random
+import render_alphabetsoup_config
+import bezmisc
+import simplepath
+import os
+import sys
+import gettext
+_ = gettext.gettext
+
+syntax = render_alphabetsoup_config.syntax
+alphabet = render_alphabetsoup_config.alphabet
+units = render_alphabetsoup_config.units
+font = render_alphabetsoup_config.font
+
+# Loads a super-path from a given SVG file
+def loadPath( svgPath ):
+ extensionDir = os.path.normpath(
+ os.path.join( os.getcwd(), os.path.dirname(__file__) )
+ )
+ # __file__ is better then sys.argv[0] because this file may be a module
+ # for another one.
+ tree = inkex.etree.parse( extensionDir + "/" + svgPath )
+ root = tree.getroot()
+ pathElement = root.find('{http://www.w3.org/2000/svg}path')
+ if pathElement == None:
+ return None, 0, 0
+ d = pathElement.get("d")
+ width = float(root.get("width"))
+ height = float(root.get("height"))
+ return simplepath.parsePath(d), width, height # Currently we only support a single path
+
+def combinePaths( pathA, pathB ):
+ if pathA == None and pathB == None:
+ return None
+ elif pathA == None:
+ return pathB
+ elif pathB == None:
+ return pathA
+ else:
+ return pathA + pathB
+
+def flipLeftRight( sp, width ):
+ for cmd,params in sp:
+ defs = simplepath.pathdefs[cmd]
+ for i in range(defs[1]):
+ if defs[3][i] == 'x':
+ params[i] = width - params[i]
+
+def flipTopBottom( sp, height ):
+ for cmd,params in sp:
+ defs = simplepath.pathdefs[cmd]
+ for i in range(defs[1]):
+ if defs[3][i] == 'y':
+ params[i] = height - params[i]
+
+def solveQuadratic(a, b, c):
+ det = b*b - 4.0*a*c
+ if det >= 0: # real roots
+ sdet = math.sqrt(det)
+ else: # complex roots
+ sdet = cmath.sqrt(det)
+ return (-b + sdet) / (2*a), (-b - sdet) / (2*a)
+
+def cbrt(x):
+ if x >= 0:
+ return x**(1.0/3.0)
+ else:
+ return -((-x)**(1.0/3.0))
+
+def findRealRoots(a,b,c,d):
+ if a != 0:
+ a, b, c, d = 1, b/float(a), c/float(a), d/float(a) # Divide through by a
+ t = b / 3.0
+ p, q = c - 3 * t**2, d - c * t + 2 * t**3
+ u, v = solveQuadratic(1, q, -(p/3.0)**3)
+ if type(u) == type(0j): # Complex Cubic Root
+ r = math.sqrt(u.real**2 + u.imag**2)
+ w = math.atan2(u.imag, u.real)
+ y1 = 2 * cbrt(r) * math.cos(w / 3.0)
+ else: # Complex Real Root
+ y1 = cbrt(u) + cbrt(v)
+
+ y2, y3 = solveQuadratic(1, y1, p + y1**2)
+
+ if type(y2) == type(0j): # Are y2 and y3 complex?
+ return [y1 - t]
+ return [y1 - t, y2 - t, y3 - t]
+ elif b != 0:
+ det=c*c - 4.0*b*d
+ if det >= 0:
+ return [(-c + math.sqrt(det))/(2.0*b),(-c - math.sqrt(det))/(2.0*b)]
+ elif c != 0:
+ return [-d/c]
+ return []
+
+def getPathBoundingBox( sp ):
+
+ box = None
+ last = None
+ lostctrl = None
+
+ for cmd,params in sp:
+
+ segmentBox = None
+
+ if cmd == 'M':
+ # A move cannot contribute to the bounding box
+ last = params[:]
+ lastctrl = params[:]
+ elif cmd == 'L':
+ if last:
+ segmentBox = (min(params[0], last[0]), max(params[0], last[0]), min(params[1], last[1]), max(params[1], last[1]))
+ last = params[:]
+ lastctrl = params[:]
+ elif cmd == 'C':
+ if last:
+ segmentBox = (min(params[4], last[0]), max(params[4], last[0]), min(params[5], last[1]), max(params[5], last[1]))
+
+ bx0, by0 = last[:]
+ bx1, by1, bx2, by2, bx3, by3 = params[:]
+
+ # Compute the x limits
+ a = (-bx0 + 3*bx1 - 3*bx2 + bx3)*3
+ b = (3*bx0 - 6*bx1 + 3*bx2)*2
+ c = (-3*bx0 + 3*bx1)
+ ts = findRealRoots(0, a, b, c)
+ for t in ts:
+ if t >= 0 and t <= 1:
+ x = (-bx0 + 3*bx1 - 3*bx2 + bx3)*(t**3) + \
+ (3*bx0 - 6*bx1 + 3*bx2)*(t**2) + \
+ (-3*bx0 + 3*bx1)*t + \
+ bx0
+ segmentBox = (min(segmentBox[0], x), max(segmentBox[1], x), segmentBox[2], segmentBox[3])
+
+ # Compute the y limits
+ a = (-by0 + 3*by1 - 3*by2 + by3)*3
+ b = (3*by0 - 6*by1 + 3*by2)*2
+ c = (-3*by0 + 3*by1)
+ ts = findRealRoots(0, a, b, c)
+ for t in ts:
+ if t >= 0 and t <= 1:
+ y = (-by0 + 3*by1 - 3*by2 + by3)*(t**3) + \
+ (3*by0 - 6*by1 + 3*by2)*(t**2) + \
+ (-3*by0 + 3*by1)*t + \
+ by0
+ segmentBox = (segmentBox[0], segmentBox[1], min(segmentBox[2], y), max(segmentBox[3], y))
+
+ last = params[-2:]
+ lastctrl = params[2:4]
+
+ elif cmd == 'Q':
+ # Provisional
+ if last:
+ segmentBox = (min(params[0], last[0]), max(params[0], last[0]), min(params[1], last[1]), max(params[1], last[1]))
+ last = params[-2:]
+ lastctrl = params[2:4]
+
+ elif cmd == 'A':
+ # Provisional
+ if last:
+ segmentBox = (min(params[0], last[0]), max(params[0], last[0]), min(params[1], last[1]), max(params[1], last[1]))
+ last = params[-2:]
+ lastctrl = params[2:4]
+
+ if segmentBox:
+ if box:
+ box = (min(segmentBox[0],box[0]), max(segmentBox[1],box[1]), min(segmentBox[2],box[2]), max(segmentBox[3],box[3]))
+ else:
+ box = segmentBox
+ return box
+
+def mxfm( image, width, height, stack ): # returns possibly transformed image
+ tbimage = image
+ if ( stack[0] == "-" ): # top-bottom flip
+ flipTopBottom(tbimage, height)
+ stack.pop( 0 )
+
+ lrimage = tbimage
+ if ( stack[0] == "|" ): # left-right flip
+ flipLeftRight(tbimage, width)
+ stack.pop( 0 )
+ return lrimage
+
+def comparerule( rule, nodes ): # compare node list to nodes in rule
+ for i in range( 0, len(nodes)): # range( a, b ) = (a, a+1, a+2 ... b-2, b-1)
+ if (nodes[i] == rule[i][0]):
+ pass
+ else: return 0
+ return 1
+
+def findrule( state, nodes ): # find the rule which generated this subtree
+ ruleset = syntax[state][1]
+ nodelen = len(nodes)
+ for rule in ruleset:
+ rulelen = len(rule)
+ if ((rulelen == nodelen) and (comparerule( rule, nodes ))):
+ return rule
+ return
+
+def generate( state ): # generate a random tree (in stack form)
+ stack = [ state ]
+ if ( len(syntax[state]) == 1 ): # if this is a stop symbol
+ return stack
+ else:
+ stack.append( "[" )
+ path = random.randint(0, (len(syntax[state][1])-1)) # choose randomly from next states
+ for symbol in syntax[state][1][path]: # recurse down each non-terminal
+ if ( symbol != 0 ): # 0 denotes end of list ###
+ substack = generate( symbol[0] ) # get subtree
+ for elt in substack:
+ stack.append( elt )
+ if (symbol[3]):stack.append( "-" ) # top-bottom flip
+ if (symbol[4]):stack.append( "|" ) # left-right flip
+ #else:
+ #inkex.debug("found end of list in generate( state =", state, ")") # this should be deprecated/never happen
+ stack.append("]")
+ return stack
+
+def draw( stack ): # draw a character based on a tree stack
+ state = stack.pop(0)
+ #print state,
+
+ image, width, height = loadPath( font+syntax[state][0] ) # load the image
+ if (stack[0] != "["): # terminal stack element
+ if (len(syntax[state]) == 1): # this state is a terminal node
+ return image, width, height
+ else:
+ substack = generate( state ) # generate random substack
+ return draw( substack ) # draw random substack
+ else:
+ #inkex.debug("[")
+ stack.pop(0)
+ images = [] # list of daughter images
+ nodes = [] # list of daughter names
+ while (stack[0] != "]"): # for all nodes in stack
+ newstate = stack[0] # the new state
+ newimage, width, height = draw( stack ) # draw the daughter state
+ if (newimage):
+ tfimage = mxfm( newimage, width, height, stack ) # maybe transform daughter state
+ images.append( [tfimage, width, height] ) # list of daughter images
+ nodes.append( newstate ) # list of daughter nodes
+ else:
+ #inkex.debug(("recurse on",newstate,"failed")) # this should never happen
+ return None, 0, 0
+ rule = findrule( state, nodes ) # find the rule for this subtree
+
+ for i in range( 0, len(images)):
+ currimg, width, height = images[i]
+
+ if currimg:
+ #box = getPathBoundingBox(currimg)
+ dx = rule[i][1]*units
+ dy = rule[i][2]*units
+ #newbox = ((box[0]+dx),(box[1]+dy),(box[2]+dx),(box[3]+dy))
+ simplepath.translatePath(currimg, dx, dy)
+ image = combinePaths( image, currimg )
+
+ stack.pop( 0 )
+ return image, width, height
+
+def draw_crop_scale( stack, zoom ): # draw, crop and scale letter image
+ image, width, height = draw(stack)
+ bbox = getPathBoundingBox(image)
+ simplepath.translatePath(image, -bbox[0], 0)
+ simplepath.scalePath(image, zoom/units, zoom/units)
+ return image, bbox[1] - bbox[0], bbox[3] - bbox[2]
+
+def randomize_input_string( str, zoom ): # generate list of images based on input string
+ imagelist = []
+
+ for i in range(0,len(str)):
+ char = str[i]
+ #if ( re.match("[a-zA-Z0-9?]", char)):
+ if ( alphabet.has_key(char)):
+ if ((i > 0) and (char == str[i-1])): # if this letter matches previous letter
+ imagelist.append(imagelist[len(stack)-1])# make them the same image
+ else: # generate image for letter
+ stack = string.split( alphabet[char][random.randint(0,(len(alphabet[char])-1))] , "." )
+ #stack = string.split( alphabet[char][random.randint(0,(len(alphabet[char])-2))] , "." )
+ imagelist.append( draw_crop_scale( stack, zoom ))
+ elif( char == " "): # add a " " space to the image list
+ imagelist.append( " " )
+ else: # this character is not in config.alphabet, skip it
+ inkex.errormsg(_("bad character") + " = 0x%x" % ord(char))
+ return imagelist
+
+def optikern( image, width, zoom ): # optical kerning algorithm
+ left = []
+ right = []
+
+ for i in range( 0, 36 ):
+ y = 0.5 * (i + 0.5) * zoom
+ xmin = None
+ xmax = None
+
+ for cmd,params in image:
+
+ segmentBox = None
+
+ if cmd == 'M':
+ # A move cannot contribute to the bounding box
+ last = params[:]
+ lastctrl = params[:]
+ elif cmd == 'L':
+ if (y >= last[1] and y <= params[1]) or (y >= params[1] and y <= last[1]):
+ if params[0] == last[0]:
+ x = params[0]
+ else:
+ a = (params[1] - last[1]) / (params[0] - last[0])
+ b = last[1] - a * last[0]
+ if a != 0:
+ x = (y - b) / a
+ else: x = None
+
+ if x:
+ if xmin == None or x < xmin: xmin = x
+ if xmax == None or x > xmax: xmax = x
+
+ last = params[:]
+ lastctrl = params[:]
+ elif cmd == 'C':
+ if last:
+ bx0, by0 = last[:]
+ bx1, by1, bx2, by2, bx3, by3 = params[:]
+
+ d = by0 - y
+ c = -3*by0 + 3*by1
+ b = 3*by0 - 6*by1 + 3*by2
+ a = -by0 + 3*by1 - 3*by2 + by3
+
+ ts = findRealRoots(a, b, c, d)
+
+ for t in ts:
+ if t >= 0 and t <= 1:
+ x = (-bx0 + 3*bx1 - 3*bx2 + bx3)*(t**3) + \
+ (3*bx0 - 6*bx1 + 3*bx2)*(t**2) + \
+ (-3*bx0 + 3*bx1)*t + \
+ bx0
+ if xmin == None or x < xmin: xmin = x
+ if xmax == None or x > xmax: xmax = x
+
+ last = params[-2:]
+ lastctrl = params[2:4]
+
+ elif cmd == 'Q':
+ # Quadratic beziers are ignored
+ last = params[-2:]
+ lastctrl = params[2:4]
+
+ elif cmd == 'A':
+ # Arcs are ignored
+ last = params[-2:]
+ lastctrl = params[2:4]
+
+
+ if xmin != None and xmax != None:
+ left.append( xmin ) # distance from left edge of region to left edge of bbox
+ right.append( width - xmax ) # distance from right edge of region to right edge of bbox
+ else:
+ left.append( width )
+ right.append( width )
+
+ return (left, right)
+
+def layoutstring( imagelist, zoom ): # layout string of letter-images using optical kerning
+ kernlist = []
+ length = zoom
+ for entry in imagelist:
+ if (entry == " "): # leaving room for " " space characters
+ length = length + (zoom * render_alphabetsoup_config.space)
+ else:
+ image, width, height = entry
+ length = length + width + zoom # add letter length to overall length
+ kernlist.append( optikern(image, width, zoom) ) # append kerning data for this image
+
+ workspace = None
+
+ position = zoom
+ for i in range(0, len(kernlist)):
+ while(imagelist[i] == " "):
+ position = position + (zoom * render_alphabetsoup_config.space )
+ imagelist.pop(i)
+ image, width, height = imagelist[i]
+
+ # set the kerning
+ if i == 0: kern = 0 # for first image, kerning is zero
+ else:
+ kerncompare = [] # kerning comparison array
+ for j in range( 0, len(kernlist[i][0])):
+ kerncompare.append( kernlist[i][0][j]+kernlist[i-1][1][j] )
+ kern = min( kerncompare )
+
+ position = position - kern # move position back by kern amount
+ thisimage = copy.deepcopy(image)
+ simplepath.translatePath(thisimage, position, 0)
+ workspace = combinePaths(workspace, thisimage)
+ position = position + width + zoom # advance position by letter width
+
+ return workspace
+
+class AlphabetSoup(inkex.Effect):
+ def __init__(self):
+ inkex.Effect.__init__(self)
+ self.OptionParser.add_option("-t", "--text",
+ action="store", type="string",
+ dest="text", default="Inkscape",
+ help="The text for alphabet soup")
+ self.OptionParser.add_option("-z", "--zoom",
+ action="store", type="float",
+ dest="zoom", default="8.0",
+ help="The zoom on the output graphics")
+ self.OptionParser.add_option("-s", "--seed",
+ action="store", type="int",
+ dest="seed", default="0",
+ help="The random seed for the soup")
+
+ def effect(self):
+ zoom = self.options.zoom
+ random.seed(self.options.seed)
+
+ imagelist = randomize_input_string(self.options.text, zoom)
+ image = layoutstring( imagelist, zoom )
+
+ if image:
+ s = { 'stroke': 'none', 'fill': '#000000' }
+
+ new = inkex.etree.Element(inkex.addNS('path','svg'))
+ new.set('style', simplestyle.formatStyle(s))
+
+ new.set('d', simplepath.formatPath(image))
+ self.current_layer.append(new)
+
+if __name__ == '__main__':
+ e = AlphabetSoup()
+ e.affect()
+
diff --git a/share/extensions/scour.inkscape.py b/share/extensions/scour.inkscape.py
index 531dfb46c..9e8775782 100755
--- a/share/extensions/scour.inkscape.py
+++ b/share/extensions/scour.inkscape.py
@@ -1,8 +1,51 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-import sys
+import sys, inkex
from scour import scourString
-input = file(sys.argv[1], "r")
-sys.stdout.write(scourString(input.read()).encode("UTF-8"))
-input.close()
-sys.stdout.close()
+
+class ScourInkscape (inkex.Effect):
+
+ def __init__(self):
+ inkex.Effect.__init__(self)
+ self.OptionParser.add_option("--tab",
+ action="store", type="string",
+ dest="tab")
+ self.OptionParser.add_option("--simplify-colors", type="inkbool",
+ action="store", dest="simple_colors", default=True,
+ help="won't convert all colors to #RRGGBB format")
+ self.OptionParser.add_option("--style-to-xml", type="inkbool",
+ action="store", dest="style_to_xml", default=True,
+ help="won't convert styles into XML attributes")
+ self.OptionParser.add_option("--group-collapsing", type="inkbool",
+ action="store", dest="group_collapse", default=True,
+ help="won't collapse <g> elements")
+ self.OptionParser.add_option("--enable-id-stripping", type="inkbool",
+ action="store", dest="strip_ids", default=False,
+ help="remove all un-referenced ID attributes")
+ self.OptionParser.add_option("--embed-rasters", type="inkbool",
+ action="store", dest="embed_rasters", default=True,
+ help="won't embed rasters as base64-encoded data")
+ self.OptionParser.add_option("--keep-editor-data", type="inkbool",
+ action="store", dest="keep_editor_data", default=False,
+ help="won't remove Inkscape, Sodipodi or Adobe Illustrator elements and attributes")
+ self.OptionParser.add_option("--strip-xml-prolog", type="inkbool",
+ action="store", dest="strip_xml_prolog", default=False,
+ help="won't output the <?xml ?> prolog")
+ self.OptionParser.add_option("-p", "--set-precision",
+ action="store", type=int, dest="digits", default=5,
+ help="set number of significant digits (default: %default)")
+ self.OptionParser.add_option("--indent",
+ action="store", type="string", dest="indent_type", default="space",
+ help="indentation of the output: none, space, tab (default: %default)")
+
+
+ def effect(self):
+ input = file(sys.argv[11], "r")
+ sys.stdout.write(scourString(input.read(), self.options).encode("UTF-8"))
+ input.close()
+ sys.stdout.close()
+
+
+if __name__ == '__main__':
+ e = ScourInkscape()
+ e.affect(output=False)
diff --git a/share/extensions/scour.inx b/share/extensions/scour.inx
index 57884b6aa..d5cddeea5 100644
--- a/share/extensions/scour.inx
+++ b/share/extensions/scour.inx
@@ -5,6 +5,35 @@
<dependency type="executable" location="extensions">scour.py</dependency>
<dependency type="executable" location="extensions">svg_regex.py</dependency>
<dependency type="executable" location="extensions">yocto_css.py</dependency>
+ <param name="tab" type="notebook">
+ <page name="Options" _gui-text="Options">
+ <param name="simplify-colors" type="boolean" _gui-text="Simplify colors">true</param>
+ <param name="style-to-xml" type="boolean" _gui-text="Style to xml">true</param>
+ <param name="group-collapsing" type="boolean" _gui-text="Group collapsing">true</param>
+ <param name="enable-id-stripping" type="boolean" _gui-text="Enable id stripping">false</param>
+ <param name="embed-rasters" type="boolean" _gui-text="Embed rasters">true</param>
+ <param name="keep-editor-data" type="boolean" _gui-text="Keep editor data">false</param>
+ <param name="strip-xml-prolog" type="boolean" _gui-text="Strip xml prolog">false</param>
+ <param name="set-precision" type="int" _gui-text="Set precision">5</param>
+ <param name="indent" type="enum" _gui-text="Indent">
+ <_item value="space">Space</_item>
+ <_item value="tab">Tab</_item>
+ <_item value="none">None</_item>
+ </param>
+ </page>
+ <page name="Help" _gui-text="Help">
+ <_param name="instructions" type="description" xml:space="preserve">This extension optimize the SVG file according to the following options:
+ * Simplify colors: convert all colors to #RRGGBB format.
+ * Style to xml: convert styles into XML attributes.
+ * Group collapsing: collapse &lt;g&gt; elements.
+ * Enable id stripping: remove all un-referenced ID attributes.
+ * Embed rasters: embed rasters as base64-encoded data.
+ * Keep editor data: don't remove Inkscape, Sodipodi or Adobe Illustrator elements and attributes.
+ * Strip xml prolog: don't output the xml prolog.
+ * Set precision: set number of significant digits (default: 5).
+ * Indent: indentation of the output: none, space, tab (default: space).</_param>
+ </page>
+ </param>
<output>
<extension>.svg</extension>
<mimetype>image/svg+xml</mimetype>
diff --git a/share/icons/Makefile.am b/share/icons/Makefile.am
index e39174833..59c55948d 100644
--- a/share/icons/Makefile.am
+++ b/share/icons/Makefile.am
@@ -1,6 +1,13 @@
+SUBDIRS = application
+
iconsdir = $(datadir)/inkscape/icons
pixmaps = \
+ too-much-ink-icon.png \
+ too-much-ink-icon.svg \
+ out-of-gamut-icon.png \
+ out-of-gamut-icon.svg \
+ color-management-icon.png \
remove-color.png \
remove-color.svg \
ticotico.jpg \
diff --git a/share/icons/application/16x16/Makefile.am b/share/icons/application/16x16/Makefile.am
new file mode 100644
index 000000000..a87c2cbfa
--- /dev/null
+++ b/share/icons/application/16x16/Makefile.am
@@ -0,0 +1,5 @@
+icondir = $(datadir)/icons/hicolor/16x16/apps
+icon_DATA = inkscape.png
+
+EXTRA_DIST = $(icon_DATA)
+
diff --git a/share/icons/application/16x16/inkscape.png b/share/icons/application/16x16/inkscape.png
new file mode 100644
index 000000000..e4aed9222
--- /dev/null
+++ b/share/icons/application/16x16/inkscape.png
Binary files differ
diff --git a/share/icons/application/22x22/Makefile.am b/share/icons/application/22x22/Makefile.am
new file mode 100644
index 000000000..8beeed331
--- /dev/null
+++ b/share/icons/application/22x22/Makefile.am
@@ -0,0 +1,5 @@
+icondir = $(datadir)/icons/hicolor/22x22/apps
+icon_DATA = inkscape.png
+
+EXTRA_DIST = $(icon_DATA)
+
diff --git a/share/icons/application/22x22/inkscape.png b/share/icons/application/22x22/inkscape.png
new file mode 100644
index 000000000..b1adda08c
--- /dev/null
+++ b/share/icons/application/22x22/inkscape.png
Binary files differ
diff --git a/share/icons/application/24x24/Makefile.am b/share/icons/application/24x24/Makefile.am
new file mode 100644
index 000000000..8fc9b59aa
--- /dev/null
+++ b/share/icons/application/24x24/Makefile.am
@@ -0,0 +1,5 @@
+icondir = $(datadir)/icons/hicolor/24x24/apps
+icon_DATA = inkscape.png
+
+EXTRA_DIST = $(icon_DATA)
+
diff --git a/share/icons/application/24x24/inkscape.png b/share/icons/application/24x24/inkscape.png
new file mode 100644
index 000000000..4c2cded2c
--- /dev/null
+++ b/share/icons/application/24x24/inkscape.png
Binary files differ
diff --git a/share/icons/application/256x256/Makefile.am b/share/icons/application/256x256/Makefile.am
new file mode 100644
index 000000000..34969a4a9
--- /dev/null
+++ b/share/icons/application/256x256/Makefile.am
@@ -0,0 +1,5 @@
+icondir = $(datadir)/icons/hicolor/256x256/apps
+icon_DATA = inkscape.png
+
+EXTRA_DIST = $(icon_DATA)
+
diff --git a/share/icons/application/256x256/inkscape.png b/share/icons/application/256x256/inkscape.png
new file mode 100644
index 000000000..76e07fb3d
--- /dev/null
+++ b/share/icons/application/256x256/inkscape.png
Binary files differ
diff --git a/share/icons/application/32x32/Makefile.am b/share/icons/application/32x32/Makefile.am
new file mode 100644
index 000000000..cdccebd02
--- /dev/null
+++ b/share/icons/application/32x32/Makefile.am
@@ -0,0 +1,5 @@
+icondir = $(datadir)/icons/hicolor/32x32/apps
+icon_DATA = inkscape.png
+
+EXTRA_DIST = $(icon_DATA)
+
diff --git a/share/icons/application/32x32/inkscape.png b/share/icons/application/32x32/inkscape.png
new file mode 100644
index 000000000..aa445e4bc
--- /dev/null
+++ b/share/icons/application/32x32/inkscape.png
Binary files differ
diff --git a/share/icons/application/48x48/Makefile.am b/share/icons/application/48x48/Makefile.am
new file mode 100644
index 000000000..ffa5c1a55
--- /dev/null
+++ b/share/icons/application/48x48/Makefile.am
@@ -0,0 +1,5 @@
+icondir = $(datadir)/icons/hicolor/48x48/apps
+icon_DATA = inkscape.png
+
+EXTRA_DIST = $(icon_DATA)
+
diff --git a/share/icons/application/48x48/inkscape.png b/share/icons/application/48x48/inkscape.png
new file mode 100644
index 000000000..668acfdef
--- /dev/null
+++ b/share/icons/application/48x48/inkscape.png
Binary files differ
diff --git a/share/icons/application/Makefile.am b/share/icons/application/Makefile.am
new file mode 100644
index 000000000..0e9bb7d7d
--- /dev/null
+++ b/share/icons/application/Makefile.am
@@ -0,0 +1,15 @@
+SUBDIRS = 16x16 22x22 24x24 32x32 48x48 256x256
+
+gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
+
+install-data-hook: update-icon-cache
+uninstall-hook: update-icon-cache
+
+update-icon-cache:
+ @-if test -z "$(DESTDIR)"; then \
+ echo "Updating Gtk icon cache."; \
+ $(gtk_update_icon_cache); \
+ else \
+ echo "*** Icon cache not updated. After (un)install, run this:"; \
+ echo "*** $(gtk_update_icon_cache)"; \
+ fi
diff --git a/share/icons/color-management-icon.png b/share/icons/color-management-icon.png
new file mode 100644
index 000000000..469ccd72a
--- /dev/null
+++ b/share/icons/color-management-icon.png
Binary files differ
diff --git a/share/icons/icons.svg b/share/icons/icons.svg
index dd0fe6068..e8f690ecb 100644
--- a/share/icons/icons.svg
+++ b/share/icons/icons.svg
@@ -8,7 +8,7 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- inkscape:version="0.46+devel r21165 custom"
+ inkscape:version="0.47pre4 r22446"
sodipodi:docname="icons.svg"
height="540"
width="1250"
@@ -18,6 +18,13 @@
version="1.0">
<defs
id="defs3">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 270 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1250 : 270 : 1"
+ inkscape:persp3d-origin="625 : 180 : 1"
+ id="perspective2930" />
<linearGradient
inkscape:collect="always"
id="linearGradient7836">
@@ -4922,6 +4929,262 @@
gradientUnits="userSpaceOnUse"
id="linearGradient3740"
inkscape:collect="always" />
+ <linearGradient
+ x1="148.57143"
+ y1="580.93359"
+ x2="403.95001"
+ y2="556.64789"
+ id="linearGradient9514-8"
+ xlink:href="#linearGradient3550-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6307248,-0.78569617,0.65179606,0.51329457,256.28855,114.28429)" />
+ <linearGradient
+ id="linearGradient3550-4">
+ <stop
+ id="stop3552-6"
+ style="stop-color:#8b9174;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3554-9"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="348.60065"
+ y1="338.07721"
+ x2="375.36154"
+ y2="318.01028"
+ id="linearGradient6466-2"
+ xlink:href="#linearGradient3185-9"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(19.052029,-3.0895185)" />
+ <linearGradient
+ id="linearGradient3185-9">
+ <stop
+ id="stop3187-0"
+ style="stop-color:#189415;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3189-3"
+ style="stop-color:#2be126;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="348.60065"
+ y1="338.07721"
+ x2="375.36154"
+ y2="318.01028"
+ id="linearGradient6468-0"
+ xlink:href="#linearGradient3185-9"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.119358,37.589137)" />
+ <linearGradient
+ x1="348.60065"
+ y1="338.07721"
+ x2="375.36154"
+ y2="318.01028"
+ id="linearGradient6563-3"
+ xlink:href="#linearGradient3185-9"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(28.320583,70.029077)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3185-9"
+ id="linearGradient5783-6-3"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8269532,0,0,0.8236011,90.718402,44.233294)"
+ x1="348.60065"
+ y1="338.07721"
+ x2="375.36154"
+ y2="318.01028" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3185-9"
+ id="linearGradient6583-7"
+ x1="371.23682"
+ y1="322.88614"
+ x2="395.26917"
+ y2="322.88614"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.33790588,-0.16552734)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3550-8-4"
+ id="linearGradient7199-9"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.03020671,-0.0376286,0.03121585,0.02458273,840.07621,-472.64274)"
+ x1="148.57143"
+ y1="580.93359"
+ x2="403.95001"
+ y2="556.64789" />
+ <linearGradient
+ id="linearGradient3550-8-4">
+ <stop
+ id="stop3552-7-9"
+ style="stop-color:#d01e1e;stop-opacity:1;"
+ offset="0" />
+ <stop
+ offset="0.25"
+ style="stop-color:#d24949;stop-opacity:1;"
+ id="stop7121-9" />
+ <stop
+ offset="0.5"
+ style="stop-color:#d57575;stop-opacity:1;"
+ id="stop7119-1" />
+ <stop
+ id="stop3554-0-9"
+ style="stop-color:#dacccc;stop-opacity:1;"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3466-1-2"
+ id="linearGradient7201-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.78857386,0.7805965,-0.7805965,0.78857386,713.6582,12.339179)"
+ x1="337.11661"
+ y1="117.24895"
+ x2="338.0838"
+ y2="126.52245" />
+ <linearGradient
+ id="linearGradient3466-1-2">
+ <stop
+ id="stop3468-8-0"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3470-9-6"
+ style="stop-color:#a0a0a0;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5704-6-9"
+ id="linearGradient7203-5"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.00564085,1.1095707,-1.1095707,0.00564085,1019.2742,0.51541278)"
+ x1="332.87787"
+ y1="121.99369"
+ x2="336.84845"
+ y2="124.19406" />
+ <linearGradient
+ id="linearGradient5704-6-9">
+ <stop
+ id="stop5706-5-5"
+ style="stop-color:#5a5a5a;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop5708-5-6"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <inkscape:perspective
+ id="perspective5649"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10585-7"
+ id="linearGradient5209"
+ gradientUnits="userSpaceOnUse"
+ x1="5.6449146"
+ y1="209.98189"
+ x2="13.522233"
+ y2="214.77893" />
+ <linearGradient
+ id="linearGradient10585-7">
+ <stop
+ style="stop-color:#d7d7d7;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop10587-0" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop10595-2" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient10585-7"
+ y2="214.77893"
+ x2="13.522233"
+ y1="209.98189"
+ x1="5.6449146"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient8278-4"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient5658-5">
+ <stop
+ style="stop-color:#d7d7d7;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop5660" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop5662" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient10585-7"
+ y2="214.77893"
+ x2="13.522233"
+ y1="209.98189"
+ x1="5.6449146"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient8276-2"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient5665">
+ <stop
+ style="stop-color:#d7d7d7;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop5667-5" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop5669" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient10585-7"
+ y2="214.77893"
+ x2="13.522233"
+ y1="209.98189"
+ x1="5.6449146"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient8290-1"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient5672">
+ <stop
+ style="stop-color:#d7d7d7;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop5674" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop5676" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient10585-7"
+ y2="214.77893"
+ x2="13.522233"
+ y1="209.98189"
+ x1="5.6449146"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient8288-3"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient5679-3">
+ <stop
+ style="stop-color:#d7d7d7;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop5681" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop5683" />
+ </linearGradient>
</defs>
<sodipodi:namedview
inkscape:guide-bbox="true"
@@ -4935,9 +5198,9 @@
inkscape:window-x="0"
inkscape:window-height="737"
inkscape:window-width="1024"
- inkscape:cy="439.31911"
- inkscape:cx="846.86933"
- inkscape:zoom="2.7464742"
+ inkscape:cy="142.58814"
+ inkscape:cx="464.32174"
+ inkscape:zoom="1.3732371"
gridtolerance="6"
snaptogrid="false"
showgrid="true"
@@ -4958,7 +5221,8 @@
inkscape:snap-midpoints="false"
inkscape:snap-intersection-paths="false"
inkscape:object-paths="false"
- inkscape:snap-object-midpoints="false">
+ inkscape:snap-object-midpoints="false"
+ inkscape:window-maximized="0">
<inkscape:grid
type="xygrid"
id="grid9252"
@@ -13661,92 +13925,6 @@ http://www.inkscape.org/</dc:description>
id="path4622"
sodipodi:nodetypes="cccccccc" />
</g>
- <g
- id="connector-ignore"
- inkscape:label="#g8308">
- <g
- id="g5802"
- style="stroke:url(#linearGradient8290);stroke-opacity:1"
- transform="matrix(0.625904,0,0,0.672041,489.16821,222.32729)">
- <rect
- style="color:#000000;fill:none;stroke:url(#linearGradient8288);stroke-width:1.54186893;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline"
- id="rect5792"
- width="7.9986801"
- height="2.959625"
- x="8.5082998"
- y="211.5502" />
- </g>
- <path
- style="fill:none;stroke:#3c3c3c;stroke-width:1.00000024px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:0.8469945"
- d="m 494.5,361.4977 6,8"
- id="path7667"
- sodipodi:nodetypes="cc" />
- <g
- transform="matrix(0.689556,0,0,0.507098,484.56529,256.2643)"
- id="g5761"
- style="stroke:#000000;stroke-opacity:1">
- <rect
- style="color:#000000;fill:none;stroke:#000000;stroke-width:1.69109905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline"
- id="rect5763"
- width="4.5088892"
- height="2.0118859"
- x="11.50698"
- y="205.5087" />
- </g>
- <use
- xlink:href="#g5761"
- height="1250"
- width="1250"
- transform="matrix(0.997702,0,0,1.018967,8.1086669,2.1407896)"
- id="use5785"
- y="0"
- x="0" />
- </g>
- <g
- id="connector-avoid"
- inkscape:label="#g8327">
- <path
- style="fill:none;stroke:#3c3c3c;stroke-width:1.00000024px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:0.83060111"
- d="m 517.5,361.4977 5,3 0,5"
- id="path12164"
- sodipodi:nodetypes="ccc" />
- <g
- transform="matrix(0.689556,0,0,0.507098,506.56529,256.2643)"
- id="use5787"
- style="stroke:#000000;stroke-opacity:1">
- <rect
- style="color:#000000;fill:none;stroke:#000000;stroke-width:1.69109905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline"
- id="rect8286"
- width="4.5088892"
- height="2.0118859"
- x="11.50698"
- y="205.5087" />
- </g>
- <g
- transform="matrix(0.689556,0,0,0.507098,513.514,265.26677)"
- id="use5790"
- style="stroke:#000000;stroke-opacity:1">
- <rect
- style="color:#000000;fill:none;stroke:#000000;stroke-width:1.69109905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline"
- id="rect8282"
- width="4.5088892"
- height="2.0118859"
- x="11.50698"
- y="205.5087" />
- </g>
- <g
- id="use5814"
- style="stroke:url(#linearGradient8278);stroke-opacity:1"
- transform="matrix(0.625904,0,0,0.672041,509.17462,223.32729)">
- <rect
- style="color:#000000;fill:none;stroke:url(#linearGradient8276);stroke-width:1.54186893;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline"
- id="rect8274"
- width="7.9986801"
- height="2.959625"
- x="8.5082998"
- y="211.5502" />
- </g>
- </g>
<use
xlink:href="#properties_fill"
height="1250"
@@ -19650,4 +19828,730 @@ http://www.inkscape.org/</dc:description>
d="m 910.68469,121.666 c 0.89363,0.12497 1.4826,1.05773 1.2925,1.92328 -0.0941,1.00279 -1.11367,1.5906 -2.04198,1.62018 -0.72256,0.0699 -1.45173,-0.0589 -2.13313,-0.29781 0,-0.27759 0,-0.55517 0,-0.83276 0.83664,0.45611 1.92451,0.60201 2.80073,0.17757 0.80169,-0.43444 0.69059,-1.81155 -0.19684,-2.08095 -0.48076,-0.18386 -1.00008,-0.10942 -1.50209,-0.12512 0,-0.2363 0,-0.47261 0,-0.70891 0.6676,-0.0288 1.50939,0.14892 1.9565,-0.47536 0.4177,-0.66094 -0.14468,-1.53437 -0.90782,-1.51097 -0.66571,-0.0681 -1.33009,0.0928 -1.95831,0.2995 0,-0.25623 0,-0.51247 0,-0.7687 1.08005,-0.28661 2.40764,-0.52909 3.35334,0.23188 0.80208,0.64443 0.62653,2.14224 -0.3992,2.46393 l -0.12785,0.0456 -0.13585,0.0387" />
</g>
</g>
+ <g
+ transform="matrix(0.04789205,0,0,0.04789205,455.86867,510.0249)"
+ id="tool-spray">
+ <g
+ transform="matrix(-0.94143174,-0.33720363,-0.33720363,0.94143174,720.80661,-81.205214)"
+ id="g9509">
+ <path
+ d="m 438.15602,87.082496 -55.9059,66.568004 22.80746,20.82679 36.56243,-43.53544 c -1.294,-3.25228 -0.58217,-7.44694 2.10329,-10.64455 2.68545,-3.19761 6.57911,-4.48676 9.84153,-3.57832 l 7.39866,-8.80969 -22.80747,-20.826794 z"
+ id="rect2774-1"
+ style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.24399996;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 314.28571,330.93362 a 135.71428,135.71428 0 1 1 -271.428563,0 135.71428,135.71428 0 1 1 271.428563,0 z"
+ transform="matrix(0.43213144,0.39460388,-0.4413757,0.52555273,428.57034,-40.143962)"
+ id="path2776"
+ style="fill:#b8b8b8;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:11.57818031;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ width="159.96521"
+ height="287.74951"
+ x="327.78137"
+ y="-119.49641"
+ transform="matrix(0.73844372,0.67431511,-0.6431164,0.76576844,0,0)"
+ id="rect2774-3"
+ style="fill:url(#linearGradient9514-8);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:7.22261095;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ <g
+ transform="matrix(-0.7512503,-0.20129692,-0.20129692,0.7512503,613.4079,-111.64166)"
+ id="g9516">
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.47520756,0.70195011,-0.67326918,0.49534453,466.98533,-132.476)"
+ id="path3599"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.23528449,0.67141567,-0.64400457,0.24522185,681.59007,-129.97399)"
+ id="path3601"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.55375067,0.61475467,-0.5896225,0.57723652,476.58624,-132.31409)"
+ id="path3603"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.33445431,0.65112443,-0.62453097,0.34861091,652.26955,-183.56984)"
+ id="path3605"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.27828,0.74781303,-0.7172813,0.29003798,627.53269,-164.64526)"
+ id="path3607"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.49032601,0.68961049,-0.66143135,0.51110713,640.27079,-195.75188)"
+ id="path3609"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.41674056,0.57738271,-0.55371602,0.43455271,467.75556,-241.39201)"
+ id="path3611"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29145432;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.55251369,0.61604388,-0.59085924,0.5759468,474.99185,-135.85699)"
+ id="path3613"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.47258702,0.4856349,-0.46577779,0.49263449,374.91635,-122.028)"
+ id="path3615"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.49703855,0.58813893,-0.56409817,0.51811541,576.10428,-185.32735)"
+ id="path3617"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.31461336,0.79763843,-0.76507062,0.32791137,543.40186,-108.86608)"
+ id="path3619"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.43193517,0.73167878,-0.70178959,0.45022897,489.14342,-132.12767)"
+ id="path3621"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.40456762,0.62087357,-0.59550694,0.42170884,630.76331,-168.65799)"
+ id="path3623"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.57353443,0.59247606,-0.56825063,0.59786383,455.6305,-132.04336)"
+ id="path3625"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.63006282,0.56602991,-0.54287749,0.65679877,459.86442,-107.56064)"
+ id="path3627"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(-0.1983519,0.82551639,-0.79186345,-0.20687051,898.06846,25.460342)"
+ id="path3629"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(-0.2458629,0.8135784,-0.78041723,-0.2564007,918.63978,42.528998)"
+ id="path3631"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.31409671,0.667486,-0.6402272,0.32738595,614.15155,-150.39368)"
+ id="path3633"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.03063804,0.72511034,-0.69552978,0.03186738,816.92733,-126.20221)"
+ id="path3635"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.46033764,0.57656967,-0.55300455,0.47985498,482.13936,-194.03029)"
+ id="path3637"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.60162945,0.55546522,-0.53269692,0.62734404,401.99584,-244.95759)"
+ id="path3639"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29145432;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.52595624,0.60244374,-0.57781654,0.54826139,579.5719,-185.82295)"
+ id="path3641"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.37305621,0.58918111,-0.56511041,0.38886063,581.3744,-126.97008)"
+ id="path3643"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.39417287,0.62024258,-0.59490274,0.41087214,579.31683,-134.01961)"
+ id="path3645"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.37494905,0.58206185,-0.55828136,0.39083469,618.05277,-126.73792)"
+ id="path3647"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.47220324,0.5168641,-0.49567804,0.49238595,366.51392,-220.32748)"
+ id="path3649"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29145432;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.55637359,0.6434196,-0.61711791,0.57996807,367.16353,-109.78265)"
+ id="path3651"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.56655772,0.57316188,-0.54972499,0.59059241,521.88966,-141.55567)"
+ id="path3653"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.61514533,0.73099436,-0.70103119,0.64143761,496.58722,-369.79801)"
+ id="path3655"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29145432;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.28771238,0.75147664,-0.72079451,0.29987111,591.19628,-157.05351)"
+ id="path3657"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.56631856,0.61943061,-0.59410643,0.59033838,303.76998,-208.44611)"
+ id="path3659"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.4929128,0.52616161,-0.50464934,0.51382051,522.36167,-108.57976)"
+ id="path3661"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.35098984,0.55235846,-0.52979201,0.36585963,509.19171,-152.16385)"
+ id="path3663"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.17650292,0.66162285,-0.63461717,0.18394159,748.84341,-122.89488)"
+ id="path3665"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.42628761,0.5263415,-0.50482865,0.44436207,399.21769,-141.83818)"
+ id="path3667"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.43287629,0.61015892,-0.58522646,0.45122242,532.45836,-146.29388)"
+ id="path3669"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.46956225,0.67290143,-0.64540597,0.4894621,434.99739,-55.33732)"
+ id="path3671"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.43889456,0.63736413,-0.61123882,0.4576536,435.47355,-331.48855)"
+ id="path3673"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29145432;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.61360527,0.58953593,-0.56542636,0.63963898,549.16036,-157.74722)"
+ id="path3675"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.32809642,0.49654591,-0.47625839,0.34199833,468.08659,-119.57341)"
+ id="path3677-9"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(-0.08338906,0.76251997,-0.73142503,-0.0870125,820.83709,-79.153239)"
+ id="path3679"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.10282914,0.76713446,-0.7358324,0.10712414,709.02409,-133.60265)"
+ id="path3681"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.56922558,0.59684162,-0.57243855,0.59337132,562.50285,-188.35402)"
+ id="path3683"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.52586224,0.5977614,-0.5733252,0.54816386,570.59228,-195.83416)"
+ id="path3685"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.34955854,0.49388172,-0.47370069,0.36437339,484.0619,-109.93119)"
+ id="path3687"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.22819514,0.55936211,-0.53652242,0.23784239,568.03778,-125.28098)"
+ id="path3689"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.30712819,0.67002137,-0.64265986,0.32012083,666.14384,-189.4803)"
+ id="path3691"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.40900903,0.62238246,-0.59695383,0.42633897,629.70039,-171.20121)"
+ id="path3693"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.44879149,0.60505052,-0.58032482,0.46781493,454.95879,-119.24367)"
+ id="path3695"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.37369945,0.72343719,-0.69378378,0.38967195,480.48271,-367.11927)"
+ id="path3697"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29145432;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.26607441,0.68878858,-0.66066572,0.27731935,718.19588,-137.79167)"
+ id="path3699"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.2757404,0.52962938,-0.50799768,0.28741252,506.63841,-126.75106)"
+ id="path3701"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.56236328,0.53040763,-0.50871512,0.58622393,431.21262,-210.35965)"
+ id="path3703"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.66961659,0.60167977,-0.57701715,0.69823705,253.41874,-410.88154)"
+ id="path3705"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29145432;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.32903138,0.74281819,-0.71248505,0.34294808,576.69189,-156.07083)"
+ id="path3707"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.41989145,0.60368439,-0.57901736,0.43768607,598.80486,-130.94614)"
+ id="path3709"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.50568145,0.667589,-0.64030657,0.52711779,508.05486,-143.94461)"
+ id="path3711"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.56991181,0.5273505,-0.50578193,0.59409376,463.17516,-114.1298)"
+ id="path3713"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.38328825,0.61417645,-0.58908514,0.39952525,528.50516,-179.36895)"
+ id="path3715"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.21228283,0.6694725,-0.642143,0.22124223,736.24094,-145.48175)"
+ id="path3717"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.52690686,0.65971841,-0.63275486,0.54924661,385.49523,-151.70652)"
+ id="path3719-0"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.41957988,0.47252748,-0.4532104,0.43737455,434.38962,-118.51804)"
+ id="path3721-8"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(-0.19273964,0.6687388,-0.64148031,-0.20100369,946.5828,-14.710004)"
+ id="path3723-3"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.47101974,0.47621255,-0.45673995,0.49100151,375.78838,-117.43423)"
+ id="path3725-8"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(-0.15857073,0.66640619,-0.63909046,-0.16534829,765.95393,-149.94831)"
+ id="path3727"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29145432;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.45835154,0.47927283,-0.45967667,0.47779429,385.71237,-117.12216)"
+ id="path3729"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.4276062,0.48742288,-0.4674974,0.44574067,400.45691,-121.55545)"
+ id="path3731-1"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.2133432,0.78684264,-0.75472547,0.2223358,639.43024,-145.65066)"
+ id="path3733-6"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.35200522,0.77626244,-0.74456278,0.36689548,618.16456,-166.14695)"
+ id="path3735"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 581.84786,283.6361 0.24239,11.1012 9.28231,6.09376 -10.48296,3.66098 -2.92713,10.71108 -6.72121,-8.83858 -11.09137,0.52604 6.32902,-9.12352 -3.92772,-10.38597 10.63277,3.19994 8.6639,-6.94493 z"
+ transform="matrix(0.55587905,0.62577173,-0.60018995,0.57945429,398.38029,-123.74225)"
+ id="path3737"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.62631679;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ </g>
+ <g
+ transform="matrix(0.8557944,0,0,0.8106021,188.92188,242.35843)"
+ id="spray-copy-mode">
+ <path
+ d="m 368.21875,315.40625 c -0.5938,0 -1.09375,0.49995 -1.09375,1.09375 l 0,8.1875 -6.625,0 c -0.5938,0 -1.09375,0.4687 -1.09375,1.0625 l 0,18.96875 c 0,0.41391 0.2519,0.75879 0.59375,0.9375 0.026,0.0136 0.0353,0.051 0.0625,0.0625 0.17831,0.34313 0.52264,0.59376 0.9375,0.59375 l 24.625,0 c 0.5938,0 1.09376,-0.46869 1.09375,-1.0625 l 0,-8.71875 6.125,0 c 0.5938,0 1.06251,-0.46869 1.0625,-1.0625 l 0,-18.96875 c 0,-0.5938 -0.4687,-1.09375 -1.0625,-1.09375 l -24.625,0 z"
+ id="rect6196"
+ style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.20000005;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <g
+ transform="translate(-3.5450574e-7,0.5149192)"
+ id="g6335">
+ <rect
+ width="26.775824"
+ height="21.111708"
+ ry="1.0718389"
+ x="367.13776"
+ y="315.42078"
+ id="rect6337"
+ style="fill:url(#linearGradient6466-2);fill-opacity:1;stroke:#000000;stroke-width:1.20000005;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <g
+ transform="translate(7.2088757,-31.410101)"
+ id="g6339">
+ <rect
+ width="26.775824"
+ height="21.111708"
+ ry="1.0718389"
+ x="352.72"
+ y="356.61435"
+ id="rect6341"
+ style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.20000005;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ width="26.775824"
+ height="21.111708"
+ ry="1.0718389"
+ x="352.20511"
+ y="356.09943"
+ id="rect6343"
+ style="fill:url(#linearGradient6468-0);fill-opacity:1;stroke:#000000;stroke-width:1.20000005;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ </g>
+ </g>
+ <g
+ transform="matrix(0.8413762,0,0,0.8105392,266.3079,183.1218)"
+ id="spray-union-mode">
+ <path
+ d="m 377.48731,389.03977 c -0.5938,0 -1.09375,0.49995 -1.09375,1.09375 l 0,8.1875 -6.625,0 c -0.5938,0 -1.09375,0.4687 -1.09375,1.0625 l 0,18.96875 c 0,0.41391 0.2519,0.75879 0.59375,0.9375 0.026,0.0136 0.0353,0.0511 0.0625,0.0625 0.17831,0.34313 0.52264,0.59376 0.9375,0.59375 l 24.625,0 c 0.5938,0 1.09376,-0.46869 1.09375,-1.0625 l 0,-8.71875 6.125,0 c 0.5938,0 1.06251,-0.46869 1.0625,-1.0625 l 0,-18.96875 c 0,-0.5938 -0.4687,-1.09375 -1.0625,-1.09375 l -24.625,0 z"
+ id="path6506"
+ style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.20000005;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 377.47944,388.53223 c -0.5938,0 -1.0625,0.49995 -1.0625,1.09375 l 0,8.1875 -6.65625,0 c -0.5938,0 -1.09375,0.4687 -1.09375,1.0625 l 0,18.96875 c 0,0.44535 0.27129,0.83772 0.65625,1 0.17597,0.35015 0.51748,0.59376 0.9375,0.59375 l 24.65625,0 c 0.5938,0 1.06251,-0.46869 1.0625,-1.0625 l 0,-8.71875 6.125,0 c 0.5938,0 1.06251,-0.46869 1.0625,-1.0625 l 0,-18.96875 c 0,-0.5938 -0.4687,-1.09375 -1.0625,-1.09375 l -24.625,0 z"
+ id="rect6510"
+ style="fill:url(#linearGradient6563-3);fill-opacity:1;stroke:#000000;stroke-width:1.20000005;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ <g
+ transform="translate(164.42529,191.5008)"
+ id="spray-clone-mode"
+ inkscape:label="#g5793">
+ <path
+ transform="matrix(0.8269532,0,0,0.8236011,70.705122,33.206996)"
+ d="m 373.36795,331.88368 c -0.5938,0 -1.09375,0.49995 -1.09375,1.09375 l 0,8.1875 -6.625,0 c -0.5938,0 -1.09375,0.4687 -1.09375,1.0625 l 0,18.96875 c 0,0.41391 0.2519,0.75879 0.59375,0.9375 0.026,0.0136 0.0353,0.051 0.0625,0.0625 0.17831,0.34313 0.52264,0.59376 0.9375,0.59375 l 24.625,0 c 0.5938,0 1.09376,-0.46869 1.09375,-1.0625 l 0,-8.71875 6.125,0 c 0.5938,0 1.06251,-0.46869 1.0625,-1.0625 l 0,-18.96875 c 0,-0.5938 -0.4687,-1.09375 -1.0625,-1.09375 l -24.625,0 z"
+ id="path6442"
+ style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.20000005;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <g
+ id="g5785">
+ <g
+ id="g5780">
+ <rect
+ width="22.142353"
+ height="17.387625"
+ ry="0.88276768"
+ x="378.569"
+ y="306.55872"
+ id="rect6446"
+ style="fill:url(#linearGradient5783-6-3);fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ <g
+ id="g5775">
+ <rect
+ transform="matrix(0.8269532,0,0,0.8236011,80.498855,-10.474112)"
+ width="26.775824"
+ height="21.111708"
+ ry="1.0718389"
+ x="353.23492"
+ y="394.71841"
+ id="rect6450"
+ style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.20000005;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ width="22.142353"
+ height="17.387625"
+ ry="0.88276768"
+ x="372.51971"
+ y="314.02679"
+ id="rect6452"
+ style="fill:url(#linearGradient6583-7);fill-opacity:1;stroke:#c2c2c2;stroke-width:1.88999999;stroke-linejoin:miter;stroke-miterlimit:4.19999981;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1.88999999;stroke-linejoin:miter;stroke-miterlimit:4.19999981;stroke-opacity:1;stroke-dasharray:3.77999997, 3.77999997;stroke-dashoffset:0"
+ id="rect6585"
+ y="314.02679"
+ x="372.51971"
+ ry="0.88276768"
+ height="17.387625"
+ width="22.142353" />
+ </g>
+ </g>
+ </g>
+ <g
+ id="dialog-spray-options"
+ transform="matrix(1.4792628,0,0,1.4792628,-674.73187,-34.196449)"
+ inkscape:label="spray-options">
+ <path
+ style="fill:#d32b2b;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.70700002;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect2774-1-5"
+ d="m 889.56228,361.00892 -3.20403,2.65834 0.89649,1.17656 2.09543,-1.73855 c -0.0331,-0.16432 0.0363,-0.35589 0.1902,-0.48358 0.15391,-0.1277 0.34842,-0.15512 0.49437,-0.0844 l 0.42403,-0.3518 -0.89649,-1.17657 z" />
+ <path
+ style="fill:#de7c7c;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.75099999;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path2776-8"
+ d="m 887.1665,368.88345 a 3.7917328,4.4707858 44.150037 0 1 -4.61038,-6.05077 3.7917328,4.4707858 44.150037 0 1 4.61038,6.05077 z" />
+ <rect
+ style="fill:url(#linearGradient7199-9);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.84636402;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect2774-7"
+ transform="matrix(0.60606627,0.79541416,-0.76960011,0.63852617,0,0)"
+ y="-483.83899"
+ x="843.50018"
+ height="13.780915"
+ width="7.6610627" />
+ <path
+ d="m 881.92186,374.5484 c 0.008,1.66436 -1.0983,2.22479 -2.20786,2.23043 l -2.77394,0.0141 -0.56042,-1.10675 -0.006,-1.10957 2.21914,-0.0113 -0.0226,-4.43829 -2.21914,0.0113 -0.006,-1.10957 0.54914,-1.1124 2.77393,-0.0141 c 1.10957,-0.006 2.22196,0.54351 2.23042,2.20786 l 5.54785,-0.0282 c -0.008,-1.66435 1.0983,-2.22479 2.20786,-2.23043 l 2.77393,-0.0141 0.56043,1.10676 0.006,1.10956 -2.21914,0.0113 0.0226,4.43829 2.21914,-0.0113 0.006,1.10958 -0.54916,1.11239 -2.77392,0.0141 c -0.55478,0.003 -2.22196,-0.5435 -2.23042,-2.20786 l -5.54785,0.0282 z"
+ id="path11005-9"
+ style="fill:url(#linearGradient7201-4);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient7203-5);stroke-width:1.1095854px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+ </g>
+ <g
+ id="connector-ignore"
+ inkscape:label="#g8308"
+ transform="translate(16.916975,1.0009742)">
+ <g
+ id="g5802"
+ style="stroke:url(#linearGradient8290-1);stroke-opacity:1"
+ transform="matrix(0.625904,0,0,0.672041,489.16821,222.32729)">
+ <rect
+ style="fill:none;stroke:url(#linearGradient8288-3);stroke-width:1.54186893;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline"
+ id="rect5792"
+ width="7.9986801"
+ height="2.959625"
+ x="8.5082998"
+ y="211.5502" />
+ </g>
+ <path
+ style="fill:none;stroke:#3c3c3c;stroke-width:1.00000024px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:0.8469945"
+ d="m 494.5,361.4977 6,8"
+ id="path7667"
+ sodipodi:nodetypes="cc" />
+ <g
+ transform="matrix(0.689556,0,0,0.507098,484.56529,256.2643)"
+ id="g5761"
+ style="stroke:#000000;stroke-opacity:1">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1.69109905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline"
+ id="rect5763"
+ width="4.5088892"
+ height="2.0118859"
+ x="11.50698"
+ y="205.5087" />
+ </g>
+ <use
+ xlink:href="#g5761"
+ height="1250"
+ width="1250"
+ transform="matrix(0.997702,0,0,1.018967,8.1086669,2.1407896)"
+ id="use5785"
+ y="0"
+ x="0" />
+ </g>
+ <g
+ id="connector-avoid"
+ inkscape:label="#g8327"
+ transform="translate(16.916975,1.0009742)">
+ <path
+ style="fill:none;stroke:#3c3c3c;stroke-width:1.00000024px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:0.83060111"
+ d="m 517.5,361.4977 5,3 0,5"
+ id="path12164"
+ sodipodi:nodetypes="ccc" />
+ <g
+ transform="matrix(0.689556,0,0,0.507098,506.56529,256.2643)"
+ id="use5787"
+ style="stroke:#000000;stroke-opacity:1">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1.69109905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline"
+ id="rect8286"
+ width="4.5088892"
+ height="2.0118859"
+ x="11.50698"
+ y="205.5087" />
+ </g>
+ <g
+ transform="matrix(0.689556,0,0,0.507098,513.514,265.26677)"
+ id="use5790"
+ style="stroke:#000000;stroke-opacity:1">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1.69109905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline"
+ id="rect8282"
+ width="4.5088892"
+ height="2.0118859"
+ x="11.50698"
+ y="205.5087" />
+ </g>
+ <g
+ id="use5814"
+ style="stroke:url(#linearGradient8278-4);stroke-opacity:1"
+ transform="matrix(0.625904,0,0,0.672041,509.17462,223.32729)">
+ <rect
+ style="fill:none;stroke:url(#linearGradient8276-2);stroke-width:1.54186893;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline"
+ id="rect8274"
+ width="7.9986801"
+ height="2.959625"
+ x="8.5082998"
+ y="211.5502" />
+ </g>
+ </g>
+ <g
+ id="connector-orthogonal"
+ inkscape:label="#g8327"
+ transform="matrix(-1,0,0,1,1072.9748,1.0009342)">
+ <path
+ style="fill:none;stroke:#3c3c3c;stroke-width:1.00000024px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:0.83060111"
+ d="m 517.5,360.9977 2,0.002 0,9.00234 3,-0.002"
+ id="path5193"
+ sodipodi:nodetypes="cccc" />
+ <g
+ transform="matrix(0.689556,0,0,0.507098,506.56529,256.2643)"
+ id="g5195"
+ style="stroke:#000000;stroke-opacity:1">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1.69109905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline"
+ id="rect5197"
+ width="4.5088892"
+ height="2.0118859"
+ x="11.50698"
+ y="205.5087" />
+ </g>
+ <g
+ transform="matrix(0.689556,0,0,0.507098,513.514,265.26677)"
+ id="g5199"
+ style="stroke:#000000;stroke-opacity:1">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1.69109905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline"
+ id="rect5201"
+ width="4.5088892"
+ height="2.0118859"
+ x="11.50698"
+ y="205.5087" />
+ </g>
+ <g
+ id="g5203"
+ style="stroke:url(#linearGradient5209);stroke-opacity:1"
+ transform="matrix(0.625904,0,0,0.672041,509.17462,223.32729)" />
+ </g>
+ <g
+ id="connector-edit"
+ transform="matrix(0.5008045,0,0,0.5008045,547.98616,270.83347)"
+ inkscape:label="#draw_node">
+ <rect
+ y="180"
+ x="-110"
+ height="24"
+ width="24"
+ id="rect5213"
+ style="fill:none;stroke:none;stroke-width:1;marker:none;display:inline" />
+ <rect
+ style="fill:#ff0000;fill-opacity:0.39215692;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.99678624;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline"
+ id="rect5217"
+ width="6.1177049"
+ height="5.9961362"
+ x="-108.26915"
+ y="181.73476" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path5221"
+ d="m -104.98202,185.05712 10.198948,18.1231 6.79927,-6.79616 -16.998218,-11.32694 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99839354;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ <g
+ transform="translate(-11.083035,0.97828419)"
+ id="connector-new-connpoint"
+ inkscape:label="#g6061">
+ <path
+ sodipodi:end="4.7170453"
+ sodipodi:start="3.1455643"
+ d="m 578.00008,371.96028 c 0.0219,-5.5228 4.51683,-9.98214 10.03964,-9.9602 0.002,10e-6 0.005,2e-5 0.007,3e-5 L 588,372 z"
+ sodipodi:ry="10"
+ sodipodi:rx="10"
+ sodipodi:cy="372"
+ sodipodi:cx="588"
+ id="path6018"
+ style="fill:#b0c5da;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1.5;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ <rect
+ y="360.98068"
+ x="577"
+ height="12.019308"
+ width="12.019308"
+ id="rect5199"
+ style="fill:none;stroke:none;stroke-width:1;marker:none;display:inline" />
+ <rect
+ style="fill:#ff7777;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.99999952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:0.94117647;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline"
+ id="rect5202"
+ width="3"
+ height="3"
+ x="580"
+ y="363" />
+ </g>
+ <g
+ transform="translate(-11.083035,0.97828419)"
+ id="connector-remove-connpoint"
+ inkscape:label="#g6098">
+ <rect
+ style="fill:none;stroke:none;stroke-width:1;marker:none;display:inline"
+ id="rect6086"
+ width="12.019308"
+ height="12.019308"
+ x="591.5"
+ y="361" />
+ <g
+ transform="matrix(0.5555556,0,0,0.5555556,57.499957,271.55555)"
+ id="g6088">
+ <path
+ id="path6090"
+ d="m 972,171 1,-1 7,0 1,1 0,7 -1,1 -7,0 -1,-1 0,-7 z"
+ style="fill:#aa0000;fill-opacity:1;fill-rule:evenodd;stroke:#aa0000;stroke-width:1.79999971px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ style="fill:none;stroke:#ffffff;stroke-width:2.15999985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 974,171.85 5,5"
+ id="path6092"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ffffff;stroke-width:2.15999985;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 979,171.85 -5,5"
+ id="path6094"
+ sodipodi:nodetypes="cc" />
+ </g>
+ <rect
+ y="363"
+ x="593"
+ height="3"
+ width="3"
+ id="rect6096"
+ style="fill:#ff7777;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.99999952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:0.94117647;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline" />
+ </g>
</svg>
diff --git a/share/icons/out-of-gamut-icon.png b/share/icons/out-of-gamut-icon.png
new file mode 100644
index 000000000..1e96a9563
--- /dev/null
+++ b/share/icons/out-of-gamut-icon.png
Binary files differ
diff --git a/share/icons/out-of-gamut-icon.svg b/share/icons/out-of-gamut-icon.svg
new file mode 100644
index 000000000..4fb171139
--- /dev/null
+++ b/share/icons/out-of-gamut-icon.svg
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ version="1.1"
+ width="249.50522"
+ height="249.50523"
+ id="svg2">
+ <defs
+ id="defs4" />
+ <g
+ transform="translate(-218.10454,-476.18098)"
+ id="layer1">
+ <path
+ d="m 462.85715,600.93359 c 0,66.27417 -53.72583,120 -120,120 -66.27417,0 -120,-53.72583 -120,-120 0,-66.27417 53.72583,-120 120,-120 66.27417,0 120,53.72583 120,120 z m 182.9912,0 c 0,167.33742 -135.65378,302.99121 -302.9912,302.99121 -167.33743,0 -302.991208,-135.65379 -302.991208,-302.99121 0,-167.33742 135.653778,-302.9912 302.991208,-302.9912 167.33742,0 302.9912,135.65378 302.9912,302.9912 z"
+ transform="matrix(0.3960511,0,0,0.3960511,207.0682,362.93318)"
+ id="path2818"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:24;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/share/icons/too-much-ink-icon.png b/share/icons/too-much-ink-icon.png
new file mode 100644
index 000000000..14fed033d
--- /dev/null
+++ b/share/icons/too-much-ink-icon.png
Binary files differ
diff --git a/share/icons/too-much-ink-icon.svg b/share/icons/too-much-ink-icon.svg
new file mode 100644
index 000000000..a2f688498
--- /dev/null
+++ b/share/icons/too-much-ink-icon.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.1"
+ width="249.50522"
+ height="249.50523"
+ id="svg2"
+ inkscape:version="0.47+devel"
+ sodipodi:docname="too-much-ink-icon.svg"
+ inkscape:export-filename="/home/felipe/devel/bzr-inkscape/inkscape/share/icons/too-much-ink-icon.png"
+ inkscape:export-xdpi="5.6999998"
+ inkscape:export-ydpi="5.6999998">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1024"
+ inkscape:window-height="693"
+ id="namedview6"
+ showgrid="false"
+ inkscape:zoom="0.33866729"
+ inkscape:cx="194.49558"
+ inkscape:cy="191.55723"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 124.75262 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="249.50522 : 124.75262 : 1"
+ inkscape:persp3d-origin="124.75261 : 83.168411 : 1"
+ id="perspective10" />
+ </defs>
+ <g
+ transform="translate(-218.10454,-476.18098)"
+ id="layer1" />
+ <path
+ id="path2988"
+ style="fill:#200e13;fill-opacity:0.96862745;fill-rule:evenodd;stroke:#20241d;stroke-width:5.49399996000000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 44.205845,53.627099 c 6.538205,8.776404 7.179182,14.929511 7.184639,20.799914 0.0043,4.681179 -10.770356,1.897693 -15.869168,-0.2132 -7.694024,-3.185304 -15.824487,-9.784438 -17.689511,-16.915388 -1.158352,-4.428985 0.749479,-10.229203 5.19903,-11.623732 6.495074,-2.035617 16.872258,2.176709 21.17501,7.952406 z M 30.008964,205.99522 c 9.10047,-17.44806 19.580437,-23.91826 30.209061,-29.20542 8.475488,-4.21608 14.636139,14.03423 16.113709,23.38441 2.229628,14.10927 -1.271148,31.92641 -12.249789,41.06491 -6.81876,5.67586 -19.309578,8.10365 -26.46219,2.85474 -10.440776,-7.6619 -13.599752,-26.61618 -7.610791,-38.09864 z M 173.64367,123.09593 c 1.4357,-39.91444 54.53677,19.12723 69.59235,-3.63891 8.93961,-13.51796 5.32456,-38.561425 -7.86464,-47.97932 -9.68684,-6.916994 -50.66722,5.557227 -60.7695,-0.737512 -18.8117,-11.721606 7.93318,-34.929939 -8.70266,-49.576607 -24.86167,-21.88894402 -44.62485,-21.29438502 -68.539321,1.625623 -15.178156,14.546991 10.871641,22.047341 3.192441,41.61827 -10.607154,27.033004 -39.063593,8.120474 -45.546174,36.427236 -4.104651,17.9233 1.357147,48.93421 19.081937,53.82552 13.316852,3.6749 13.818475,-22.5941 38.882527,-4.90635 25.06405,17.68776 4.4552,41.49178 10.10048,65.11007 5.64529,23.61827 22.84904,17.71636 35.42061,15.11786 15.97666,-3.30232 11.12595,-30.4217 33.70881,-33.39655 22.58287,-2.97487 16.69776,21.8648 41.58646,-0.63804 41.60195,-37.61392 -49.85797,-50.12848 -60.14333,-72.85127 l 10e-6,-2e-5 z" />
+</svg>