audio-tuner-gui 0.10.0__py3-none-any.whl → 0.11.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. audio_tuner_gui/__init__.py +1 -1
  2. audio_tuner_gui/analysis.py +107 -81
  3. audio_tuner_gui/common.py +77 -25
  4. audio_tuner_gui/file_selector.py +71 -21
  5. audio_tuner_gui/icons/fallback/README +4 -0
  6. audio_tuner_gui/icons/fallback/application-exit.svg +457 -0
  7. audio_tuner_gui/icons/fallback/audio-card.svg +434 -0
  8. audio_tuner_gui/icons/fallback/audio-x-generic.svg +180 -0
  9. audio_tuner_gui/icons/fallback/dialog-warning.svg +373 -0
  10. audio_tuner_gui/icons/fallback/document-save.svg +619 -0
  11. audio_tuner_gui/icons/fallback/edit-delete.svg +896 -0
  12. audio_tuner_gui/icons/fallback/folder.svg +424 -0
  13. audio_tuner_gui/icons/fallback/format-justify-left.svg +271 -0
  14. audio_tuner_gui/icons/fallback/go-home.svg +445 -0
  15. audio_tuner_gui/icons/fallback/go-next.svg +192 -0
  16. audio_tuner_gui/icons/fallback/go-previous.svg +854 -0
  17. audio_tuner_gui/icons/fallback/go-up.svg +196 -0
  18. audio_tuner_gui/icons/fallback/media-playback-pause.svg +641 -0
  19. audio_tuner_gui/icons/fallback/media-playback-start.svg +319 -0
  20. audio_tuner_gui/icons/fallback/media-playback-stop.svg +651 -0
  21. audio_tuner_gui/icons/fallback/media-seek-backward.svg +374 -0
  22. audio_tuner_gui/icons/fallback/media-seek-forward.svg +383 -0
  23. audio_tuner_gui/icons/fallback/preferences-system.svg +398 -0
  24. audio_tuner_gui/icons/fallback/process-stop.svg +336 -0
  25. audio_tuner_gui/option_panel.py +49 -21
  26. audio_tuner_gui/scripts/tuner_gui.py +137 -21
  27. {audio_tuner_gui-0.10.0.dist-info → audio_tuner_gui-0.11.1.dist-info}/METADATA +4 -3
  28. audio_tuner_gui-0.11.1.dist-info/RECORD +45 -0
  29. audio_tuner_gui/icons/folder.png +0 -0
  30. audio_tuner_gui/icons/preferences-other.png +0 -0
  31. audio_tuner_gui/icons/process-stop.png +0 -0
  32. audio_tuner_gui-0.10.0.dist-info/RECORD +0 -28
  33. {audio_tuner_gui-0.10.0.dist-info → audio_tuner_gui-0.11.1.dist-info}/WHEEL +0 -0
  34. {audio_tuner_gui-0.10.0.dist-info → audio_tuner_gui-0.11.1.dist-info}/entry_points.txt +0 -0
  35. {audio_tuner_gui-0.10.0.dist-info → audio_tuner_gui-0.11.1.dist-info}/licenses/COPYING +0 -0
@@ -38,6 +38,8 @@ from PyQt6.QtCore import (
38
38
  QDir,
39
39
  pyqtSignal,
40
40
  QModelIndex,
41
+ QMutex,
42
+ QMutexLocker,
41
43
  )
42
44
  from PyQt6.QtWidgets import (
43
45
  QWidget,
@@ -147,13 +149,13 @@ class FileSelector(QWidget):
147
149
  The option panel widget to get analysis options from.
148
150
  """
149
151
 
150
- SelectForAnalysis = pyqtSignal(str, gcom.Options)
152
+ SelectForAnalysis = pyqtSignal(str)
151
153
  """Signal emitted when a file is selected.
152
154
 
153
155
  Parameters
154
156
  ----------
155
- audio_tuner_gui.common.Options
156
- The options to use when the file is analyzed.
157
+ str
158
+ The path of the audio file.
157
159
  """
158
160
 
159
161
  UpdateStatusbar = pyqtSignal(str)
@@ -169,6 +171,8 @@ class FileSelector(QWidget):
169
171
  def __init__(self, option_panel):
170
172
  super().__init__()
171
173
 
174
+ self._init_complete = False
175
+
172
176
  self.option_panel = option_panel
173
177
 
174
178
  vbox = QVBoxLayout(self)
@@ -184,6 +188,12 @@ class FileSelector(QWidget):
184
188
  vbox.addWidget(self.panel)
185
189
  vbox.addWidget(self.view)
186
190
 
191
+ self._scroll_positions = {}
192
+ self._scroll_mutex = QMutex()
193
+ self._scroll_update_needed = False
194
+
195
+ self._init_complete = True
196
+
187
197
  def _init_file_view(self):
188
198
  model = QFileSystemModel(self)
189
199
 
@@ -203,7 +213,15 @@ class FileSelector(QWidget):
203
213
  self.model = model
204
214
  self.view = view
205
215
 
206
- def _set_show_hidden(self, checked):
216
+ def set_show_hidden(self, checked):
217
+ """Select whether to show hidden files.
218
+
219
+ Parameters
220
+ ----------
221
+ checked : bool
222
+ Whether or not to show hidden files.
223
+ """
224
+
207
225
  if checked:
208
226
  self.model.setFilter(self.showhidden_filter)
209
227
  else:
@@ -274,11 +292,7 @@ class FileSelector(QWidget):
274
292
  self._cd(QDir.fromNativeSeparators(self.pathedit.text()))
275
293
  except NotADirectoryError:
276
294
  path = self.pathedit.text()
277
- options = self.option_panel.get_options()
278
- if options is None:
279
- self.option_panel.ensure_visible()
280
- else:
281
- self.SelectForAnalysis.emit(path, options)
295
+ self.SelectForAnalysis.emit(path)
282
296
  self._select_filename()
283
297
 
284
298
  def handle_command_line_arg(self, arg):
@@ -300,11 +314,7 @@ class FileSelector(QWidget):
300
314
  try:
301
315
  self._cd(QDir.fromNativeSeparators(arg))
302
316
  except NotADirectoryError:
303
- options = self.option_panel.get_options()
304
- if options is None:
305
- self.option_panel.ensure_visible()
306
- else:
307
- self.SelectForAnalysis.emit(arg, options)
317
+ self.SelectForAnalysis.emit(arg)
308
318
 
309
319
  def handle_drop(self, path):
310
320
  """If `path` is a file, act like it's been selected and send it
@@ -346,9 +356,35 @@ class FileSelector(QWidget):
346
356
  dest)
347
357
  path = dest
348
358
  index = self.model.index(dest)
359
+
360
+ if self._init_complete:
361
+ self._save_scroll_position()
362
+ self.model.directoryLoaded.connect(self._load_scroll_position,
363
+ Qt.ConnectionType.SingleShotConnection)
364
+
365
+ self._scroll_update_needed = True
349
366
  self.model.setRootPath(path)
350
367
  self.view.setRootIndex(index)
368
+
369
+ # The directoryLoaded signal is NOT always emitted when the
370
+ # directory is finished loading, so this is necessary to make
371
+ # sure the scroll position is updated anyway.
372
+ testindex = self.model.index(path)
373
+ if testindex.isValid():
374
+ try:
375
+ # testindex being valid means the new directory is
376
+ # already loaded, so we'll go ahead and update the
377
+ # scroll position and not bother to wait for the signal
378
+ self.model.directoryLoaded.disconnect(
379
+ self._load_scroll_position)
380
+ self._load_scroll_position(path)
381
+ except TypeError:
382
+ # The signal's already been emitted, so there's nothing
383
+ # to do
384
+ pass
385
+
351
386
  self.pathedit.setText(QDir(path).absolutePath())
387
+
352
388
  if hist == 'previous':
353
389
  self.path_history.back()
354
390
  elif hist == 'next':
@@ -400,6 +436,25 @@ class FileSelector(QWidget):
400
436
  if self.up_button.underMouse():
401
437
  self.UpdateStatusbar.emit(status)
402
438
 
439
+ def _save_scroll_position(self):
440
+ current_path = QDir(self.model.rootPath()).absolutePath()
441
+ point = self.view.rect().topLeft()
442
+ position = self.view.indexAt(point).data()
443
+ self._scroll_positions[current_path] = position
444
+
445
+ def _load_scroll_position(self, path):
446
+ with QMutexLocker(self._scroll_mutex):
447
+ if not self._scroll_update_needed:
448
+ return
449
+ abs_path = QDir(path).absolutePath()
450
+ position = self._scroll_positions.get(abs_path)
451
+ if position:
452
+ rowindex = self.model.index(os.path.join(path, position))
453
+ if rowindex.isValid():
454
+ self.view.scrollTo(rowindex,
455
+ QAbstractItemView.ScrollHint.PositionAtTop)
456
+ self._scroll_update_needed = False
457
+
403
458
  def _file_selector_doubleclick(self, index):
404
459
  if self.model.isDir(index):
405
460
  self._cd(index)
@@ -411,13 +466,8 @@ class FileSelector(QWidget):
411
466
  if len(selected) == 1 and self.model.isDir(selected[0]):
412
467
  self._cd(selected[0])
413
468
  else:
414
- options = self.option_panel.get_options()
415
- if options is None:
416
- self.option_panel.ensure_visible()
417
- else:
418
- for index in selected:
419
- self.SelectForAnalysis.emit(self.model.filePath(index),
420
- options)
469
+ for index in selected:
470
+ self.SelectForAnalysis.emit(self.model.filePath(index))
421
471
 
422
472
  def _updir(self):
423
473
  directory = self.model.rootDirectory()
@@ -0,0 +1,4 @@
1
+ Icons from the Tango icon theme.
2
+
3
+ exit.svg has been renamed application-exit.svg to make it conform to the
4
+ freedesktop.org Icon Naming Specification.
@@ -0,0 +1,457 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+ <svg
4
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
5
+ xmlns:cc="http://creativecommons.org/ns#"
6
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
7
+ xmlns:svg="http://www.w3.org/2000/svg"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ xmlns:xlink="http://www.w3.org/1999/xlink"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ inkscape:export-ydpi="90.000000"
13
+ inkscape:export-xdpi="90.000000"
14
+ inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
15
+ width="48px"
16
+ height="48px"
17
+ id="svg11300"
18
+ sodipodi:version="0.32"
19
+ inkscape:version="0.46"
20
+ sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
21
+ sodipodi:docname="system-log-out.svg"
22
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
23
+ sodipodi:modified="true">
24
+ <defs
25
+ id="defs3">
26
+ <inkscape:perspective
27
+ sodipodi:type="inkscape:persp3d"
28
+ inkscape:vp_x="0 : 24 : 1"
29
+ inkscape:vp_y="0 : 1000 : 0"
30
+ inkscape:vp_z="48 : 24 : 1"
31
+ inkscape:persp3d-origin="24 : 16 : 1"
32
+ id="perspective70" />
33
+ <linearGradient
34
+ inkscape:collect="always"
35
+ id="linearGradient6467">
36
+ <stop
37
+ style="stop-color:#babdb6;stop-opacity:1;"
38
+ offset="0"
39
+ id="stop6469" />
40
+ <stop
41
+ style="stop-color:#babdb6;stop-opacity:0;"
42
+ offset="1"
43
+ id="stop6471" />
44
+ </linearGradient>
45
+ <linearGradient
46
+ inkscape:collect="always"
47
+ id="linearGradient6365">
48
+ <stop
49
+ style="stop-color:#ffffff;stop-opacity:1;"
50
+ offset="0"
51
+ id="stop6367" />
52
+ <stop
53
+ style="stop-color:#ffffff;stop-opacity:0;"
54
+ offset="1"
55
+ id="stop6369" />
56
+ </linearGradient>
57
+ <linearGradient
58
+ id="linearGradient6347">
59
+ <stop
60
+ style="stop-color:#4e9a06;stop-opacity:1;"
61
+ offset="0"
62
+ id="stop6349" />
63
+ <stop
64
+ style="stop-color:#2d5903;stop-opacity:1;"
65
+ offset="1"
66
+ id="stop6351" />
67
+ </linearGradient>
68
+ <linearGradient
69
+ id="linearGradient9896">
70
+ <stop
71
+ id="stop9898"
72
+ offset="0"
73
+ style="stop-color:#cecece;stop-opacity:1;" />
74
+ <stop
75
+ id="stop9900"
76
+ offset="1.0000000"
77
+ style="stop-color:#9e9e9e;stop-opacity:1.0000000;" />
78
+ </linearGradient>
79
+ <linearGradient
80
+ id="linearGradient9888"
81
+ inkscape:collect="always">
82
+ <stop
83
+ id="stop9890"
84
+ offset="0"
85
+ style="stop-color:#ffffff;stop-opacity:1;" />
86
+ <stop
87
+ id="stop9892"
88
+ offset="1"
89
+ style="stop-color:#ffffff;stop-opacity:0;" />
90
+ </linearGradient>
91
+ <linearGradient
92
+ id="linearGradient9880"
93
+ inkscape:collect="always">
94
+ <stop
95
+ id="stop9882"
96
+ offset="0"
97
+ style="stop-color:#525252;stop-opacity:1;" />
98
+ <stop
99
+ id="stop9884"
100
+ offset="1"
101
+ style="stop-color:#525252;stop-opacity:0;" />
102
+ </linearGradient>
103
+ <linearGradient
104
+ id="linearGradient9868">
105
+ <stop
106
+ style="stop-color:#4e4e4e;stop-opacity:1.0000000;"
107
+ offset="0.0000000"
108
+ id="stop9870" />
109
+ <stop
110
+ style="stop-color:#616161;stop-opacity:0.0000000;"
111
+ offset="1.0000000"
112
+ id="stop9872" />
113
+ </linearGradient>
114
+ <linearGradient
115
+ id="linearGradient9854">
116
+ <stop
117
+ id="stop9856"
118
+ offset="0.0000000"
119
+ style="stop-color:#4e4e4e;stop-opacity:1.0000000;" />
120
+ <stop
121
+ id="stop9858"
122
+ offset="1.0000000"
123
+ style="stop-color:#ababab;stop-opacity:1.0000000;" />
124
+ </linearGradient>
125
+ <linearGradient
126
+ id="linearGradient9830">
127
+ <stop
128
+ id="stop9832"
129
+ offset="0.0000000"
130
+ style="stop-color:#505050;stop-opacity:1.0000000;" />
131
+ <stop
132
+ id="stop9834"
133
+ offset="1.0000000"
134
+ style="stop-color:#181818;stop-opacity:1.0000000;" />
135
+ </linearGradient>
136
+ <linearGradient
137
+ inkscape:collect="always"
138
+ id="linearGradient8662">
139
+ <stop
140
+ style="stop-color:#000000;stop-opacity:1;"
141
+ offset="0"
142
+ id="stop8664" />
143
+ <stop
144
+ style="stop-color:#000000;stop-opacity:0;"
145
+ offset="1"
146
+ id="stop8666" />
147
+ </linearGradient>
148
+ <linearGradient
149
+ inkscape:collect="always"
150
+ id="linearGradient8650">
151
+ <stop
152
+ style="stop-color:#ffffff;stop-opacity:1;"
153
+ offset="0"
154
+ id="stop8652" />
155
+ <stop
156
+ style="stop-color:#ffffff;stop-opacity:0;"
157
+ offset="1"
158
+ id="stop8654" />
159
+ </linearGradient>
160
+ <radialGradient
161
+ inkscape:collect="always"
162
+ xlink:href="#linearGradient8650"
163
+ id="radialGradient8656"
164
+ cx="19.701141"
165
+ cy="2.8969381"
166
+ fx="19.701141"
167
+ fy="2.8969381"
168
+ r="17.171415"
169
+ gradientTransform="matrix(1.253442,-2.296195e-16,1.747460e-16,0.953900,-15.47908,11.27663)"
170
+ gradientUnits="userSpaceOnUse" />
171
+ <radialGradient
172
+ r="15.644737"
173
+ fy="36.421127"
174
+ fx="24.837126"
175
+ cy="36.421127"
176
+ cx="24.837126"
177
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,1.673575e-15,16.87306)"
178
+ gradientUnits="userSpaceOnUse"
179
+ id="radialGradient9826"
180
+ xlink:href="#linearGradient8662"
181
+ inkscape:collect="always" />
182
+ <linearGradient
183
+ gradientUnits="userSpaceOnUse"
184
+ y2="27.759069"
185
+ x2="18.031221"
186
+ y1="19.804117"
187
+ x1="46.845825"
188
+ id="linearGradient9864"
189
+ xlink:href="#linearGradient9854"
190
+ inkscape:collect="always"
191
+ gradientTransform="translate(-12.020815,0)" />
192
+ <radialGradient
193
+ gradientUnits="userSpaceOnUse"
194
+ gradientTransform="matrix(2.565823,0,0,1.403262,-49.804045,-9.483303)"
195
+ r="9.7227182"
196
+ fy="7.1396070"
197
+ fx="27.883883"
198
+ cy="7.1396070"
199
+ cx="27.883883"
200
+ id="radialGradient9876"
201
+ xlink:href="#linearGradient9868"
202
+ inkscape:collect="always" />
203
+ <linearGradient
204
+ gradientTransform="translate(-13.136935,0)"
205
+ gradientUnits="userSpaceOnUse"
206
+ y2="24.764584"
207
+ x2="34.007416"
208
+ y1="19.107729"
209
+ x1="31.852951"
210
+ id="linearGradient9886"
211
+ xlink:href="#linearGradient9880"
212
+ inkscape:collect="always" />
213
+ <linearGradient
214
+ gradientUnits="userSpaceOnUse"
215
+ y2="43.449947"
216
+ x2="19.755548"
217
+ y1="13.663074"
218
+ x1="8.7600641"
219
+ id="linearGradient9894"
220
+ xlink:href="#linearGradient9888"
221
+ inkscape:collect="always" />
222
+ <linearGradient
223
+ gradientUnits="userSpaceOnUse"
224
+ y2="18.064039"
225
+ x2="33.710651"
226
+ y1="21.511185"
227
+ x1="31.078955"
228
+ id="linearGradient9902"
229
+ xlink:href="#linearGradient9896"
230
+ inkscape:collect="always"
231
+ gradientTransform="translate(-12.020815,0)" />
232
+ <linearGradient
233
+ inkscape:collect="always"
234
+ xlink:href="#linearGradient6365"
235
+ id="linearGradient6371"
236
+ x1="40.25"
237
+ y1="31.625"
238
+ x2="40.25"
239
+ y2="43.25"
240
+ gradientUnits="userSpaceOnUse"
241
+ gradientTransform="translate(-12.020815,0)" />
242
+ <filter
243
+ inkscape:collect="always"
244
+ x="-0.14153846"
245
+ width="1.2830769"
246
+ y="-0.10415094"
247
+ height="1.2083019"
248
+ id="filter6421">
249
+ <feGaussianBlur
250
+ inkscape:collect="always"
251
+ stdDeviation="2.07"
252
+ id="feGaussianBlur6423" />
253
+ </filter>
254
+ <filter
255
+ inkscape:collect="always"
256
+ x="-0.066812893"
257
+ width="1.1336258"
258
+ y="-0.11952912"
259
+ height="1.2390582"
260
+ id="filter6451">
261
+ <feGaussianBlur
262
+ inkscape:collect="always"
263
+ stdDeviation="0.76879489"
264
+ id="feGaussianBlur6453" />
265
+ </filter>
266
+ <radialGradient
267
+ inkscape:collect="always"
268
+ xlink:href="#linearGradient8662"
269
+ id="radialGradient6461"
270
+ gradientUnits="userSpaceOnUse"
271
+ gradientTransform="matrix(1,0,0,0.536723,0,16.87306)"
272
+ cx="24.837126"
273
+ cy="36.421127"
274
+ fx="24.837126"
275
+ fy="36.421127"
276
+ r="15.644737" />
277
+ <radialGradient
278
+ inkscape:collect="always"
279
+ xlink:href="#linearGradient8650"
280
+ id="radialGradient6463"
281
+ gradientUnits="userSpaceOnUse"
282
+ gradientTransform="matrix(1.253442,0,0,0.9539,-15.47908,11.27663)"
283
+ cx="19.701141"
284
+ cy="2.8969381"
285
+ fx="19.701141"
286
+ fy="2.8969381"
287
+ r="17.171415" />
288
+ <linearGradient
289
+ inkscape:collect="always"
290
+ xlink:href="#linearGradient9888"
291
+ id="linearGradient6465"
292
+ gradientUnits="userSpaceOnUse"
293
+ x1="8.7600641"
294
+ y1="13.663074"
295
+ x2="19.755548"
296
+ y2="43.449947"
297
+ gradientTransform="matrix(0.968718,0,0,0.9689198,0.3616813,0.7378237)" />
298
+ <linearGradient
299
+ inkscape:collect="always"
300
+ xlink:href="#linearGradient6467"
301
+ id="linearGradient6473"
302
+ x1="18.729185"
303
+ y1="44"
304
+ x2="18.729185"
305
+ y2="29.068014"
306
+ gradientUnits="userSpaceOnUse" />
307
+ </defs>
308
+ <sodipodi:namedview
309
+ stroke="#a40000"
310
+ fill="#727e0a"
311
+ id="base"
312
+ pagecolor="#ffffff"
313
+ bordercolor="#666666"
314
+ borderopacity="0.25490196"
315
+ inkscape:pageopacity="0.0"
316
+ inkscape:pageshadow="2"
317
+ inkscape:zoom="1"
318
+ inkscape:cx="-103.37653"
319
+ inkscape:cy="5.4914491"
320
+ inkscape:current-layer="layer1"
321
+ showgrid="false"
322
+ inkscape:grid-bbox="true"
323
+ inkscape:document-units="px"
324
+ inkscape:showpageshadow="false"
325
+ inkscape:window-width="966"
326
+ inkscape:window-height="762"
327
+ inkscape:window-x="468"
328
+ inkscape:window-y="86" />
329
+ <metadata
330
+ id="metadata4">
331
+ <rdf:RDF>
332
+ <cc:Work
333
+ rdf:about="">
334
+ <dc:format>image/svg+xml</dc:format>
335
+ <dc:type
336
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
337
+ <dc:creator>
338
+ <cc:Agent>
339
+ <dc:title>Jakub Steiner</dc:title>
340
+ </cc:Agent>
341
+ </dc:creator>
342
+ <dc:source>http://jimmac.musichall.cz</dc:source>
343
+ <cc:license
344
+ rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
345
+ <dc:title>System Log Out</dc:title>
346
+ <dc:subject>
347
+ <rdf:Bag>
348
+ <rdf:li>log out</rdf:li>
349
+ <rdf:li>logout</rdf:li>
350
+ <rdf:li>exit</rdf:li>
351
+ </rdf:Bag>
352
+ </dc:subject>
353
+ </cc:Work>
354
+ <cc:License
355
+ rdf:about="http://creativecommons.org/licenses/publicdomain/">
356
+ <cc:permits
357
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
358
+ <cc:permits
359
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
360
+ <cc:permits
361
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
362
+ </cc:License>
363
+ </rdf:RDF>
364
+ </metadata>
365
+ <g
366
+ id="layer1"
367
+ inkscape:label="Layer 1"
368
+ inkscape:groupmode="layer">
369
+ <rect
370
+ ry="0.7071048"
371
+ rx="0.70710522"
372
+ y="2.5692098"
373
+ x="1.4809071"
374
+ height="41.942028"
375
+ width="31.99555"
376
+ id="rect9828"
377
+ style="opacity:1;color:#000000;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:#555753;stroke-width:1.00000048;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
378
+ inkscape:r_cx="true"
379
+ inkscape:r_cy="true" />
380
+ <rect
381
+ y="17.240852"
382
+ x="1.9791847"
383
+ height="26.759148"
384
+ width="30.999998"
385
+ id="rect9840"
386
+ style="opacity:1;color:#000000;fill:url(#linearGradient6473);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
387
+ inkscape:r_cx="true"
388
+ inkscape:r_cy="true" />
389
+ <path
390
+ style="opacity:0.55428569;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6451)"
391
+ d="M 2.1041847,43.875 L 23.479185,35 C 23.479185,35 26.992726,32.780416 23.729185,31.5 C 20.314184,30.16016 16.729185,32 16.729185,32 L 2.1041847,43.875 z "
392
+ id="path6425"
393
+ sodipodi:nodetypes="cczcc" />
394
+ <path
395
+ sodipodi:nodetypes="ccccc"
396
+ id="path9852"
397
+ d="M 2.0168467,43.944859 L 1.9780137,3.0545252 L 21.92031,3.0987194 L 21.964504,33.018175 L 2.0168467,43.944859 z "
398
+ style="opacity:1;color:#000000;fill:url(#linearGradient9864);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
399
+ <path
400
+ style="opacity:0.42222224;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
401
+ d="M 1.9489857,43.944859 L 22.097088,33.062369 L 3.5355337,41.989592 L 3.5355337,3.0103306 L 1.9650707,3.0103306 L 1.9489857,43.944859 z "
402
+ id="path1360"
403
+ inkscape:r_cx="true"
404
+ inkscape:r_cy="true"
405
+ sodipodi:nodetypes="cccccc" />
406
+ <path
407
+ style="opacity:1;color:#000000;fill:url(#radialGradient9876);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
408
+ d="M 2.0239957,43.757359 L 1.9791847,3.0545252 L 21.92031,3.0545252 L 21.741064,33.681088 L 2.0239957,43.757359 z "
409
+ id="path9866"
410
+ sodipodi:nodetypes="ccccc"
411
+ inkscape:r_cx="true"
412
+ inkscape:r_cy="true" />
413
+ <path
414
+ sodipodi:nodetypes="cccsscc"
415
+ id="path9878"
416
+ d="M 17.62221,18.456195 L 19.544657,20.908971 L 18.086249,25.726136 C 18.086249,25.726136 18.351414,27.228738 19.124812,26.212272 C 19.89821,25.195806 22.097267,22.630218 21.710171,20.754291 C 21.422909,19.362175 20.627414,18.699263 20.627414,18.699263 L 17.62221,18.456195 z "
417
+ style="opacity:1;color:#000000;fill:url(#linearGradient9886);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
418
+ <path
419
+ sodipodi:nodetypes="csccscs"
420
+ id="path9862"
421
+ d="M 19.456269,17.35134 C 19.456269,17.35134 21.619539,18.353058 21.688074,19.229593 C 21.789855,20.531315 17.445433,24.665476 17.445433,24.665476 C 16.9372,25.284194 16.097511,24.731767 16.56155,24.135146 C 16.56155,24.135146 20.028154,20.017173 19.809822,19.693631 C 19.536211,19.288174 17.843181,18.655068 17.843181,18.655068 C 16.826715,17.903768 18.110802,16.349605 19.456269,17.35134 z "
422
+ style="opacity:1;color:#000000;fill:url(#linearGradient9902);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
423
+ <path
424
+ style="fill:url(#linearGradient6371);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6421);opacity:0.87428571"
425
+ d="M 22.229185,3.5 L 21.729185,33.25 L 3.7291847,43 L 32.979185,43.25 L 32.729185,3.5 L 22.229185,3.5 z "
426
+ id="path6355" />
427
+ <g
428
+ id="g6455"
429
+ transform="matrix(-1,0,0,1,48.201368,-4.7335e-2)">
430
+ <path
431
+ transform="matrix(0.77849,0,0,0.77849,-7.579815,1.598139)"
432
+ d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1 9.1923885,36.421127 A 15.644737 8.3968935 0 1 1 40.481863 36.421127 z"
433
+ sodipodi:ry="8.3968935"
434
+ sodipodi:rx="15.644737"
435
+ sodipodi:cy="36.421127"
436
+ sodipodi:cx="24.837126"
437
+ id="path8660"
438
+ style="opacity:0.29946522;color:#000000;fill:url(#radialGradient6461);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
439
+ sodipodi:type="arc" />
440
+ <path
441
+ sodipodi:nodetypes="cccccccc"
442
+ id="path8643"
443
+ d="M 1.7317981,17.593819 L 1.7317981,30.355364 L 9.6641034,30.355364 L 9.6641034,36.176147 L 21.887745,23.952503 L 9.5913424,11.656101 L 9.5913424,17.597067 L 1.7317981,17.593819 z "
444
+ style="opacity:1;color:#000000;fill:#cc0000;fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
445
+ <path
446
+ sodipodi:nodetypes="cccccc"
447
+ id="path8645"
448
+ d="M 9.9240084,12.478043 L 9.9240084,18.115661 L 2.0746151,18.115661 L 2.0746151,24.53144 C 12.332521,20.703863 11.954992,27.773987 21.29428,23.94641 L 9.9240084,12.478043 z "
449
+ style="opacity:0.5080214;color:#000000;fill:url(#radialGradient6463);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
450
+ <path
451
+ style="opacity:0.48128339;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6465);stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
452
+ d="M 2.6834412,18.565933 L 2.6834412,29.355867 L 10.584702,29.355867 L 10.584702,33.481479 L 20.127982,23.941908 L 10.522155,13.997214 L 10.522155,18.568726 L 2.6834412,18.565933 z "
453
+ id="path8658"
454
+ sodipodi:nodetypes="cccccccc" />
455
+ </g>
456
+ </g>
457
+ </svg>